GNU libmicrohttpd 1.0.9
Loading...
Searching...
No Matches
microhttpd.h
Go to the documentation of this file.
1/*
2 This file is part of libmicrohttpd
3 Copyright (C) 2006-2021 Christian Grothoff (and other contributing authors)
4 Copyright (C) 2014-2023 Evgeny Grin (Karlson2k)
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with this library; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19*/
20
80#ifndef MHD_MICROHTTPD_H
81#define MHD_MICROHTTPD_H
82
83#ifndef __cplusplus
84# define MHD_C_DECLRATIONS_START_HERE_ /* Empty */
85# define MHD_C_DECLRATIONS_FINISH_HERE_ /* Empty */
86#else /* __cplusplus */
87/* *INDENT-OFF* */
88# define MHD_C_DECLRATIONS_START_HERE_ extern "C" {
89# define MHD_C_DECLRATIONS_FINISH_HERE_ }
90/* *INDENT-ON* */
91#endif /* __cplusplus */
92
93
95
96
104#define MHD_VERSION 0x01000900
105
106/* If generic headers don't work on your platform, include headers
107 which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',
108 'uint8_t', 'uint16_t', 'int32_t', 'uint32_t', 'int64_t', 'uint64_t',
109 'struct sockaddr', 'socklen_t', 'fd_set' and "#define MHD_PLATFORM_H" before
110 including "microhttpd.h". Then the following "standard"
111 includes won't be used (which might be a good idea, especially
112 on platforms where they do not exist).
113 */
114#ifndef MHD_PLATFORM_H
115#if defined(_WIN32) && ! defined(__CYGWIN__) && \
116 ! defined(_CRT_DECLARE_NONSTDC_NAMES)
117/* Declare POSIX-compatible names */
118#define _CRT_DECLARE_NONSTDC_NAMES 1
119#endif /* _WIN32 && ! __CYGWIN__ && ! _CRT_DECLARE_NONSTDC_NAMES */
120#include <stdarg.h>
121#include <stdint.h>
122#include <sys/types.h>
123#if ! defined(_WIN32) || defined(__CYGWIN__)
124#include <unistd.h>
125#include <sys/time.h>
126#include <sys/socket.h>
127#else /* _WIN32 && ! __CYGWIN__ */
128#include <ws2tcpip.h>
129#if defined(_MSC_FULL_VER) && ! defined(_SSIZE_T_DEFINED)
130#define _SSIZE_T_DEFINED
131typedef intptr_t ssize_t;
132#endif /* !_SSIZE_T_DEFINED */
133#endif /* _WIN32 && ! __CYGWIN__ */
134#endif
135
136#if defined(__CYGWIN__) && ! defined(_SYS_TYPES_FD_SET)
137/* Do not define __USE_W32_SOCKETS under Cygwin! */
138#error Cygwin with winsock fd_set is not supported
139#endif
140
141#ifdef __has_attribute
142#if __has_attribute (flag_enum)
143#define _MHD_FLAGS_ENUM __attribute__((flag_enum))
144#endif /* flag_enum */
145#if __has_attribute (enum_extensibility)
146#define _MHD_FIXED_ENUM __attribute__((enum_extensibility (closed)))
147#endif /* enum_extensibility */
148#endif /* __has_attribute */
149
150#ifndef _MHD_FLAGS_ENUM
151#define _MHD_FLAGS_ENUM
152#endif /* _MHD_FLAGS_ENUM */
153#ifndef _MHD_FIXED_ENUM
154#define _MHD_FIXED_ENUM
155#endif /* _MHD_FIXED_ENUM */
156
157#define _MHD_FIXED_FLAGS_ENUM _MHD_FIXED_ENUM _MHD_FLAGS_ENUM
158
163{
168
172 MHD_YES = 1
173
175
180#ifdef UINT64_MAX
181#define MHD_SIZE_UNKNOWN UINT64_MAX
182#else
183#define MHD_SIZE_UNKNOWN ((uint64_t) -1LL)
184#endif
185
186#define MHD_CONTENT_READER_END_OF_STREAM ((ssize_t) -1)
187#define MHD_CONTENT_READER_END_WITH_ERROR ((ssize_t) -2)
188
189#ifndef _MHD_EXTERN
190#if defined(_WIN32) && defined(MHD_W32LIB)
191#define _MHD_EXTERN extern
192#elif defined(_WIN32) && defined(MHD_W32DLL)
193/* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */
194#define _MHD_EXTERN __declspec(dllimport)
195#else
196#define _MHD_EXTERN extern
197#endif
198#endif
199
200#ifndef MHD_SOCKET_DEFINED
204#if ! defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
205#define MHD_POSIX_SOCKETS 1
206typedef int MHD_socket;
207#define MHD_INVALID_SOCKET (-1)
208#else /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
209#define MHD_WINSOCK_SOCKETS 1
210#include <winsock2.h>
211typedef SOCKET MHD_socket;
212#define MHD_INVALID_SOCKET (INVALID_SOCKET)
213#endif /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
214#define MHD_SOCKET_DEFINED 1
215#endif /* MHD_SOCKET_DEFINED */
216
220#ifdef MHD_NO_DEPRECATION
221#define _MHD_DEPR_MACRO(msg)
222#define _MHD_NO_DEPR_IN_MACRO 1
223#define _MHD_DEPR_IN_MACRO(msg)
224#define _MHD_NO_DEPR_FUNC 1
225#define _MHD_DEPR_FUNC(msg)
226#endif /* MHD_NO_DEPRECATION */
227
228#ifndef _MHD_DEPR_MACRO
229#if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1500
230/* VS 2008 or later */
231/* Stringify macros */
232#define _MHD_INSTRMACRO(a) #a
233#define _MHD_STRMACRO(a) _MHD_INSTRMACRO (a)
234/* deprecation message */
235#define _MHD_DEPR_MACRO(msg) \
236 __pragma \
237 (message (__FILE__ "(" _MHD_STRMACRO ( __LINE__) "): warning: " msg))
238#define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
239#elif defined(__clang__) || defined(__GNUC_PATCHLEVEL__)
240/* clang or GCC since 3.0 */
241#define _MHD_GCC_PRAG(x) _Pragma(#x)
242#if (defined(__clang__) && \
243 (__clang_major__ + 0 >= 5 || \
244 (! defined(__apple_build_version__) && \
245 (__clang_major__ + 0 > 3 || \
246 (__clang_major__ + 0 == 3 && __clang_minor__ >= 3))))) || \
247 __GNUC__ + 0 > 4 || (__GNUC__ + 0 == 4 && __GNUC_MINOR__ + 0 >= 8)
248/* clang >= 3.3 (or XCode's clang >= 5.0) or
249 GCC >= 4.8 */
250#define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (GCC warning msg)
251#define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
252#else /* older clang or GCC */
253/* clang < 3.3, XCode's clang < 5.0, 3.0 <= GCC < 4.8 */
254#define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (message msg)
255#if (defined(__clang__) && \
256 (__clang_major__ + 0 > 2 || \
257 (__clang_major__ + 0 == 2 && __clang_minor__ >= 9))) /* clang >= 2.9 */
258/* clang handles inline pragmas better than GCC */
259#define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
260#endif /* clang >= 2.9 */
261#endif /* older clang or GCC */
262/* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
263#endif /* clang || GCC >= 3.0 */
264#endif /* !_MHD_DEPR_MACRO */
265
266#ifndef _MHD_DEPR_MACRO
267#define _MHD_DEPR_MACRO(msg)
268#endif /* !_MHD_DEPR_MACRO */
269
270#ifndef _MHD_DEPR_IN_MACRO
271#define _MHD_NO_DEPR_IN_MACRO 1
272#define _MHD_DEPR_IN_MACRO(msg)
273#endif /* !_MHD_DEPR_IN_MACRO */
274
275#ifndef _MHD_DEPR_FUNC
276#if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1400
277/* VS 2005 or later */
278#define _MHD_DEPR_FUNC(msg) __declspec(deprecated (msg))
279#elif defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1310
280/* VS .NET 2003 deprecation does not support custom messages */
281#define _MHD_DEPR_FUNC(msg) __declspec(deprecated)
282#elif (__GNUC__ + 0 >= 5) || (defined(__clang__) && \
283 (__clang_major__ + 0 > 2 || \
284 (__clang_major__ + 0 == 2 && __clang_minor__ >= 9)))
285/* GCC >= 5.0 or clang >= 2.9 */
286#define _MHD_DEPR_FUNC(msg) __attribute__((deprecated (msg)))
287#elif defined(__clang__) || __GNUC__ + 0 > 3 || \
288 (__GNUC__ + 0 == 3 && __GNUC_MINOR__ + 0 >= 1)
289/* 3.1 <= GCC < 5.0 or clang < 2.9 */
290/* old GCC-style deprecation does not support custom messages */
291#define _MHD_DEPR_FUNC(msg) __attribute__((__deprecated__))
292/* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
293#endif /* clang < 2.9 || GCC >= 3.1 */
294#endif /* !_MHD_DEPR_FUNC */
295
296#ifndef _MHD_DEPR_FUNC
297#define _MHD_NO_DEPR_FUNC 1
298#define _MHD_DEPR_FUNC(msg)
299#endif /* !_MHD_DEPR_FUNC */
300
306#ifndef MHD_LONG_LONG
310#define MHD_LONG_LONG long long
311#define MHD_UNSIGNED_LONG_LONG unsigned long long
312#else /* MHD_LONG_LONG */
314 "Macro MHD_LONG_LONG is deprecated, use MHD_UNSIGNED_LONG_LONG")
315#endif
320#ifndef MHD_LONG_LONG_PRINTF
324#define MHD_LONG_LONG_PRINTF "ll"
325#define MHD_UNSIGNED_LONG_LONG_PRINTF "%llu"
326#else /* MHD_LONG_LONG_PRINTF */
328 "Macro MHD_LONG_LONG_PRINTF is deprecated, use MHD_UNSIGNED_LONG_LONG_PRINTF")
329#endif
330
331
340/* 100 "Continue". RFC9110, Section 15.2.1. */
341#define MHD_HTTP_CONTINUE 100
342/* 101 "Switching Protocols". RFC9110, Section 15.2.2. */
343#define MHD_HTTP_SWITCHING_PROTOCOLS 101
344/* 102 "Processing". RFC2518. */
345#define MHD_HTTP_PROCESSING 102
346/* 103 "Early Hints". RFC8297. */
347#define MHD_HTTP_EARLY_HINTS 103
348
349/* 200 "OK". RFC9110, Section 15.3.1. */
350#define MHD_HTTP_OK 200
351/* 201 "Created". RFC9110, Section 15.3.2. */
352#define MHD_HTTP_CREATED 201
353/* 202 "Accepted". RFC9110, Section 15.3.3. */
354#define MHD_HTTP_ACCEPTED 202
355/* 203 "Non-Authoritative Information". RFC9110, Section 15.3.4. */
356#define MHD_HTTP_NON_AUTHORITATIVE_INFORMATION 203
357/* 204 "No Content". RFC9110, Section 15.3.5. */
358#define MHD_HTTP_NO_CONTENT 204
359/* 205 "Reset Content". RFC9110, Section 15.3.6. */
360#define MHD_HTTP_RESET_CONTENT 205
361/* 206 "Partial Content". RFC9110, Section 15.3.7. */
362#define MHD_HTTP_PARTIAL_CONTENT 206
363/* 207 "Multi-Status". RFC4918. */
364#define MHD_HTTP_MULTI_STATUS 207
365/* 208 "Already Reported". RFC5842. */
366#define MHD_HTTP_ALREADY_REPORTED 208
367
368/* 226 "IM Used". RFC3229. */
369#define MHD_HTTP_IM_USED 226
370
371/* 300 "Multiple Choices". RFC9110, Section 15.4.1. */
372#define MHD_HTTP_MULTIPLE_CHOICES 300
373/* 301 "Moved Permanently". RFC9110, Section 15.4.2. */
374#define MHD_HTTP_MOVED_PERMANENTLY 301
375/* 302 "Found". RFC9110, Section 15.4.3. */
376#define MHD_HTTP_FOUND 302
377/* 303 "See Other". RFC9110, Section 15.4.4. */
378#define MHD_HTTP_SEE_OTHER 303
379/* 304 "Not Modified". RFC9110, Section 15.4.5. */
380#define MHD_HTTP_NOT_MODIFIED 304
381/* 305 "Use Proxy". RFC9110, Section 15.4.6. */
382#define MHD_HTTP_USE_PROXY 305
383/* 306 "Switch Proxy". Not used! RFC9110, Section 15.4.7. */
384#define MHD_HTTP_SWITCH_PROXY 306
385/* 307 "Temporary Redirect". RFC9110, Section 15.4.8. */
386#define MHD_HTTP_TEMPORARY_REDIRECT 307
387/* 308 "Permanent Redirect". RFC9110, Section 15.4.9. */
388#define MHD_HTTP_PERMANENT_REDIRECT 308
389
390/* 400 "Bad Request". RFC9110, Section 15.5.1. */
391#define MHD_HTTP_BAD_REQUEST 400
392/* 401 "Unauthorized". RFC9110, Section 15.5.2. */
393#define MHD_HTTP_UNAUTHORIZED 401
394/* 402 "Payment Required". RFC9110, Section 15.5.3. */
395#define MHD_HTTP_PAYMENT_REQUIRED 402
396/* 403 "Forbidden". RFC9110, Section 15.5.4. */
397#define MHD_HTTP_FORBIDDEN 403
398/* 404 "Not Found". RFC9110, Section 15.5.5. */
399#define MHD_HTTP_NOT_FOUND 404
400/* 405 "Method Not Allowed". RFC9110, Section 15.5.6. */
401#define MHD_HTTP_METHOD_NOT_ALLOWED 405
402/* 406 "Not Acceptable". RFC9110, Section 15.5.7. */
403#define MHD_HTTP_NOT_ACCEPTABLE 406
404/* 407 "Proxy Authentication Required". RFC9110, Section 15.5.8. */
405#define MHD_HTTP_PROXY_AUTHENTICATION_REQUIRED 407
406/* 408 "Request Timeout". RFC9110, Section 15.5.9. */
407#define MHD_HTTP_REQUEST_TIMEOUT 408
408/* 409 "Conflict". RFC9110, Section 15.5.10. */
409#define MHD_HTTP_CONFLICT 409
410/* 410 "Gone". RFC9110, Section 15.5.11. */
411#define MHD_HTTP_GONE 410
412/* 411 "Length Required". RFC9110, Section 15.5.12. */
413#define MHD_HTTP_LENGTH_REQUIRED 411
414/* 412 "Precondition Failed". RFC9110, Section 15.5.13. */
415#define MHD_HTTP_PRECONDITION_FAILED 412
416/* 413 "Content Too Large". RFC9110, Section 15.5.14. */
417#define MHD_HTTP_CONTENT_TOO_LARGE 413
418/* 414 "URI Too Long". RFC9110, Section 15.5.15. */
419#define MHD_HTTP_URI_TOO_LONG 414
420/* 415 "Unsupported Media Type". RFC9110, Section 15.5.16. */
421#define MHD_HTTP_UNSUPPORTED_MEDIA_TYPE 415
422/* 416 "Range Not Satisfiable". RFC9110, Section 15.5.17. */
423#define MHD_HTTP_RANGE_NOT_SATISFIABLE 416
424/* 417 "Expectation Failed". RFC9110, Section 15.5.18. */
425#define MHD_HTTP_EXPECTATION_FAILED 417
426
427
428/* 421 "Misdirected Request". RFC9110, Section 15.5.20. */
429#define MHD_HTTP_MISDIRECTED_REQUEST 421
430/* 422 "Unprocessable Content". RFC9110, Section 15.5.21. */
431#define MHD_HTTP_UNPROCESSABLE_CONTENT 422
432/* 423 "Locked". RFC4918. */
433#define MHD_HTTP_LOCKED 423
434/* 424 "Failed Dependency". RFC4918. */
435#define MHD_HTTP_FAILED_DEPENDENCY 424
436/* 425 "Too Early". RFC8470. */
437#define MHD_HTTP_TOO_EARLY 425
438/* 426 "Upgrade Required". RFC9110, Section 15.5.22. */
439#define MHD_HTTP_UPGRADE_REQUIRED 426
440
441/* 428 "Precondition Required". RFC6585. */
442#define MHD_HTTP_PRECONDITION_REQUIRED 428
443/* 429 "Too Many Requests". RFC6585. */
444#define MHD_HTTP_TOO_MANY_REQUESTS 429
445
446/* 431 "Request Header Fields Too Large". RFC6585. */
447#define MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
448
449/* 451 "Unavailable For Legal Reasons". RFC7725. */
450#define MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
451
452/* 500 "Internal Server Error". RFC9110, Section 15.6.1. */
453#define MHD_HTTP_INTERNAL_SERVER_ERROR 500
454/* 501 "Not Implemented". RFC9110, Section 15.6.2. */
455#define MHD_HTTP_NOT_IMPLEMENTED 501
456/* 502 "Bad Gateway". RFC9110, Section 15.6.3. */
457#define MHD_HTTP_BAD_GATEWAY 502
458/* 503 "Service Unavailable". RFC9110, Section 15.6.4. */
459#define MHD_HTTP_SERVICE_UNAVAILABLE 503
460/* 504 "Gateway Timeout". RFC9110, Section 15.6.5. */
461#define MHD_HTTP_GATEWAY_TIMEOUT 504
462/* 505 "HTTP Version Not Supported". RFC9110, Section 15.6.6. */
463#define MHD_HTTP_HTTP_VERSION_NOT_SUPPORTED 505
464/* 506 "Variant Also Negotiates". RFC2295. */
465#define MHD_HTTP_VARIANT_ALSO_NEGOTIATES 506
466/* 507 "Insufficient Storage". RFC4918. */
467#define MHD_HTTP_INSUFFICIENT_STORAGE 507
468/* 508 "Loop Detected". RFC5842. */
469#define MHD_HTTP_LOOP_DETECTED 508
470
471/* 510 "Not Extended". (OBSOLETED) RFC2774; status-change-http-experiments-to-historic. */
472#define MHD_HTTP_NOT_EXTENDED 510
473/* 511 "Network Authentication Required". RFC6585. */
474#define MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED 511
475
476
477/* Not registered non-standard codes */
478/* 449 "Reply With". MS IIS extension. */
479#define MHD_HTTP_RETRY_WITH 449
480
481/* 450 "Blocked by Windows Parental Controls". MS extension. */
482#define MHD_HTTP_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS 450
483
484/* 509 "Bandwidth Limit Exceeded". Apache extension. */
485#define MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED 509
486
487/* Deprecated names and codes */
489#define MHD_HTTP_METHOD_NOT_ACCEPTABLE _MHD_DEPR_IN_MACRO ( \
490 "Value MHD_HTTP_METHOD_NOT_ACCEPTABLE is deprecated, use MHD_HTTP_NOT_ACCEPTABLE" \
491 ) 406
492
494#define MHD_HTTP_REQUEST_ENTITY_TOO_LARGE _MHD_DEPR_IN_MACRO ( \
495 "Value MHD_HTTP_REQUEST_ENTITY_TOO_LARGE is deprecated, use MHD_HTTP_CONTENT_TOO_LARGE" \
496 ) 413
497
499#define MHD_HTTP_PAYLOAD_TOO_LARGE _MHD_DEPR_IN_MACRO ( \
500 "Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated use MHD_HTTP_CONTENT_TOO_LARGE" \
501 ) 413
502
504#define MHD_HTTP_REQUEST_URI_TOO_LONG _MHD_DEPR_IN_MACRO ( \
505 "Value MHD_HTTP_REQUEST_URI_TOO_LONG is deprecated, use MHD_HTTP_URI_TOO_LONG" \
506 ) 414
507
509#define MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE _MHD_DEPR_IN_MACRO ( \
510 "Value MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE is deprecated, use MHD_HTTP_RANGE_NOT_SATISFIABLE" \
511 ) 416
512
514#define MHD_HTTP_UNPROCESSABLE_ENTITY _MHD_DEPR_IN_MACRO ( \
515 "Value MHD_HTTP_UNPROCESSABLE_ENTITY is deprecated, use MHD_HTTP_UNPROCESSABLE_CONTENT" \
516 ) 422
517
519#define MHD_HTTP_UNORDERED_COLLECTION _MHD_DEPR_IN_MACRO ( \
520 "Value MHD_HTTP_UNORDERED_COLLECTION is deprecated as it was removed from RFC" \
521 ) 425
522
524#define MHD_HTTP_NO_RESPONSE _MHD_DEPR_IN_MACRO ( \
525 "Value MHD_HTTP_NO_RESPONSE is deprecated as it is nginx internal code for logs only" \
526 ) 444
527
528
529 /* end of group httpcode */
530
537_MHD_EXTERN const char *
538MHD_get_reason_phrase_for (unsigned int code);
539
540
547_MHD_EXTERN size_t
548MHD_get_reason_phrase_len_for (unsigned int code);
549
556#define MHD_ICY_FLAG ((uint32_t) (((uint32_t) 1) << 31))
557
566/* Main HTTP headers. */
567/* Permanent. RFC9110, Section 12.5.1: HTTP Semantics */
568#define MHD_HTTP_HEADER_ACCEPT "Accept"
569/* Deprecated. RFC9110, Section 12.5.2: HTTP Semantics */
570#define MHD_HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset"
571/* Permanent. RFC9110, Section 12.5.3: HTTP Semantics */
572#define MHD_HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding"
573/* Permanent. RFC9110, Section 12.5.4: HTTP Semantics */
574#define MHD_HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language"
575/* Permanent. RFC9110, Section 14.3: HTTP Semantics */
576#define MHD_HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges"
577/* Permanent. RFC9111, Section 5.1: HTTP Caching */
578#define MHD_HTTP_HEADER_AGE "Age"
579/* Permanent. RFC9110, Section 10.2.1: HTTP Semantics */
580#define MHD_HTTP_HEADER_ALLOW "Allow"
581/* Permanent. RFC9110, Section 11.6.3: HTTP Semantics */
582#define MHD_HTTP_HEADER_AUTHENTICATION_INFO "Authentication-Info"
583/* Permanent. RFC9110, Section 11.6.2: HTTP Semantics */
584#define MHD_HTTP_HEADER_AUTHORIZATION "Authorization"
585/* Permanent. RFC9111, Section 5.2 */
586#define MHD_HTTP_HEADER_CACHE_CONTROL "Cache-Control"
587/* Permanent. RFC9112, Section 9.6: HTTP/1.1 */
588#define MHD_HTTP_HEADER_CLOSE "Close"
589/* Permanent. RFC9110, Section 7.6.1: HTTP Semantics */
590#define MHD_HTTP_HEADER_CONNECTION "Connection"
591/* Permanent. RFC9110, Section 8.4: HTTP Semantics */
592#define MHD_HTTP_HEADER_CONTENT_ENCODING "Content-Encoding"
593/* Permanent. RFC9110, Section 8.5: HTTP Semantics */
594#define MHD_HTTP_HEADER_CONTENT_LANGUAGE "Content-Language"
595/* Permanent. RFC9110, Section 8.6: HTTP Semantics */
596#define MHD_HTTP_HEADER_CONTENT_LENGTH "Content-Length"
597/* Permanent. RFC9110, Section 8.7: HTTP Semantics */
598#define MHD_HTTP_HEADER_CONTENT_LOCATION "Content-Location"
599/* Permanent. RFC9110, Section 14.4: HTTP Semantics */
600#define MHD_HTTP_HEADER_CONTENT_RANGE "Content-Range"
601/* Permanent. RFC9110, Section 8.3: HTTP Semantics */
602#define MHD_HTTP_HEADER_CONTENT_TYPE "Content-Type"
603/* Permanent. RFC9110, Section 6.6.1: HTTP Semantics */
604#define MHD_HTTP_HEADER_DATE "Date"
605/* Permanent. RFC9110, Section 8.8.3: HTTP Semantics */
606#define MHD_HTTP_HEADER_ETAG "ETag"
607/* Permanent. RFC9110, Section 10.1.1: HTTP Semantics */
608#define MHD_HTTP_HEADER_EXPECT "Expect"
609/* Permanent. RFC9111, Section 5.3: HTTP Caching */
610#define MHD_HTTP_HEADER_EXPIRES "Expires"
611/* Permanent. RFC9110, Section 10.1.2: HTTP Semantics */
612#define MHD_HTTP_HEADER_FROM "From"
613/* Permanent. RFC9110, Section 7.2: HTTP Semantics */
614#define MHD_HTTP_HEADER_HOST "Host"
615/* Permanent. RFC9110, Section 13.1.1: HTTP Semantics */
616#define MHD_HTTP_HEADER_IF_MATCH "If-Match"
617/* Permanent. RFC9110, Section 13.1.3: HTTP Semantics */
618#define MHD_HTTP_HEADER_IF_MODIFIED_SINCE "If-Modified-Since"
619/* Permanent. RFC9110, Section 13.1.2: HTTP Semantics */
620#define MHD_HTTP_HEADER_IF_NONE_MATCH "If-None-Match"
621/* Permanent. RFC9110, Section 13.1.5: HTTP Semantics */
622#define MHD_HTTP_HEADER_IF_RANGE "If-Range"
623/* Permanent. RFC9110, Section 13.1.4: HTTP Semantics */
624#define MHD_HTTP_HEADER_IF_UNMODIFIED_SINCE "If-Unmodified-Since"
625/* Permanent. RFC9110, Section 8.8.2: HTTP Semantics */
626#define MHD_HTTP_HEADER_LAST_MODIFIED "Last-Modified"
627/* Permanent. RFC9110, Section 10.2.2: HTTP Semantics */
628#define MHD_HTTP_HEADER_LOCATION "Location"
629/* Permanent. RFC9110, Section 7.6.2: HTTP Semantics */
630#define MHD_HTTP_HEADER_MAX_FORWARDS "Max-Forwards"
631/* Permanent. RFC9112, Appendix B.1: HTTP/1.1 */
632#define MHD_HTTP_HEADER_MIME_VERSION "MIME-Version"
633/* Deprecated. RFC9111, Section 5.4: HTTP Caching */
634#define MHD_HTTP_HEADER_PRAGMA "Pragma"
635/* Permanent. RFC9110, Section 11.7.1: HTTP Semantics */
636#define MHD_HTTP_HEADER_PROXY_AUTHENTICATE "Proxy-Authenticate"
637/* Permanent. RFC9110, Section 11.7.3: HTTP Semantics */
638#define MHD_HTTP_HEADER_PROXY_AUTHENTICATION_INFO "Proxy-Authentication-Info"
639/* Permanent. RFC9110, Section 11.7.2: HTTP Semantics */
640#define MHD_HTTP_HEADER_PROXY_AUTHORIZATION "Proxy-Authorization"
641/* Permanent. RFC9110, Section 14.2: HTTP Semantics */
642#define MHD_HTTP_HEADER_RANGE "Range"
643/* Permanent. RFC9110, Section 10.1.3: HTTP Semantics */
644#define MHD_HTTP_HEADER_REFERER "Referer"
645/* Permanent. RFC9110, Section 10.2.3: HTTP Semantics */
646#define MHD_HTTP_HEADER_RETRY_AFTER "Retry-After"
647/* Permanent. RFC9110, Section 10.2.4: HTTP Semantics */
648#define MHD_HTTP_HEADER_SERVER "Server"
649/* Permanent. RFC9110, Section 10.1.4: HTTP Semantics */
650#define MHD_HTTP_HEADER_TE "TE"
651/* Permanent. RFC9110, Section 6.6.2: HTTP Semantics */
652#define MHD_HTTP_HEADER_TRAILER "Trailer"
653/* Permanent. RFC9112, Section 6.1: HTTP Semantics */
654#define MHD_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"
655/* Permanent. RFC9110, Section 7.8: HTTP Semantics */
656#define MHD_HTTP_HEADER_UPGRADE "Upgrade"
657/* Permanent. RFC9110, Section 10.1.5: HTTP Semantics */
658#define MHD_HTTP_HEADER_USER_AGENT "User-Agent"
659/* Permanent. RFC9110, Section 12.5.5: HTTP Semantics */
660#define MHD_HTTP_HEADER_VARY "Vary"
661/* Permanent. RFC9110, Section 7.6.3: HTTP Semantics */
662#define MHD_HTTP_HEADER_VIA "Via"
663/* Permanent. RFC9110, Section 11.6.1: HTTP Semantics */
664#define MHD_HTTP_HEADER_WWW_AUTHENTICATE "WWW-Authenticate"
665/* Permanent. RFC9110, Section 12.5.5: HTTP Semantics */
666#define MHD_HTTP_HEADER_ASTERISK "*"
667
668/* Additional HTTP headers. */
669/* Permanent. RFC 3229: Delta encoding in HTTP */
670#define MHD_HTTP_HEADER_A_IM "A-IM"
671/* Permanent. RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) */
672#define MHD_HTTP_HEADER_ACCEPT_ADDITIONS "Accept-Additions"
673/* Permanent. RFC 8942, Section 3.1: HTTP Client Hints */
674#define MHD_HTTP_HEADER_ACCEPT_CH "Accept-CH"
675/* Permanent. RFC 7089: HTTP Framework for Time-Based Access to Resource States -- Memento */
676#define MHD_HTTP_HEADER_ACCEPT_DATETIME "Accept-Datetime"
677/* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
678#define MHD_HTTP_HEADER_ACCEPT_FEATURES "Accept-Features"
679/* Permanent. RFC 5789: PATCH Method for HTTP */
680#define MHD_HTTP_HEADER_ACCEPT_PATCH "Accept-Patch"
681/* Permanent. Linked Data Platform 1.0 */
682#define MHD_HTTP_HEADER_ACCEPT_POST "Accept-Post"
683/* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 5.1: HTTP Message Signatures */
684#define MHD_HTTP_HEADER_ACCEPT_SIGNATURE "Accept-Signature"
685/* Permanent. Fetch */
686#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS \
687 "Access-Control-Allow-Credentials"
688/* Permanent. Fetch */
689#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_HEADERS \
690 "Access-Control-Allow-Headers"
691/* Permanent. Fetch */
692#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_METHODS \
693 "Access-Control-Allow-Methods"
694/* Permanent. Fetch */
695#define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN \
696 "Access-Control-Allow-Origin"
697/* Permanent. Fetch */
698#define MHD_HTTP_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS \
699 "Access-Control-Expose-Headers"
700/* Permanent. Fetch */
701#define MHD_HTTP_HEADER_ACCESS_CONTROL_MAX_AGE "Access-Control-Max-Age"
702/* Permanent. Fetch */
703#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_HEADERS \
704 "Access-Control-Request-Headers"
705/* Permanent. Fetch */
706#define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_METHOD \
707 "Access-Control-Request-Method"
708/* Permanent. RFC 7639, Section 2: The ALPN HTTP Header Field */
709#define MHD_HTTP_HEADER_ALPN "ALPN"
710/* Permanent. RFC 7838: HTTP Alternative Services */
711#define MHD_HTTP_HEADER_ALT_SVC "Alt-Svc"
712/* Permanent. RFC 7838: HTTP Alternative Services */
713#define MHD_HTTP_HEADER_ALT_USED "Alt-Used"
714/* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
715#define MHD_HTTP_HEADER_ALTERNATES "Alternates"
716/* Permanent. RFC 4437: Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources */
717#define MHD_HTTP_HEADER_APPLY_TO_REDIRECT_REF "Apply-To-Redirect-Ref"
718/* Permanent. RFC 8053, Section 4: HTTP Authentication Extensions for Interactive Clients */
719#define MHD_HTTP_HEADER_AUTHENTICATION_CONTROL "Authentication-Control"
720/* Permanent. RFC9211: The Cache-Status HTTP Response Header Field */
721#define MHD_HTTP_HEADER_CACHE_STATUS "Cache-Status"
722/* Permanent. RFC 8607, Section 5.1: Calendaring Extensions to WebDAV (CalDAV): Managed Attachments */
723#define MHD_HTTP_HEADER_CAL_MANAGED_ID "Cal-Managed-ID"
724/* Permanent. RFC 7809, Section 7.1: Calendaring Extensions to WebDAV (CalDAV): Time Zones by Reference */
725#define MHD_HTTP_HEADER_CALDAV_TIMEZONES "CalDAV-Timezones"
726/* Permanent. RFC9297 */
727#define MHD_HTTP_HEADER_CAPSULE_PROTOCOL "Capsule-Protocol"
728/* Permanent. RFC9213: Targeted HTTP Cache Control */
729#define MHD_HTTP_HEADER_CDN_CACHE_CONTROL "CDN-Cache-Control"
730/* Permanent. RFC 8586: Loop Detection in Content Delivery Networks (CDNs) */
731#define MHD_HTTP_HEADER_CDN_LOOP "CDN-Loop"
732/* Permanent. RFC 8739, Section 3.3: Support for Short-Term, Automatically Renewed (STAR) Certificates in the Automated Certificate Management Environment (ACME) */
733#define MHD_HTTP_HEADER_CERT_NOT_AFTER "Cert-Not-After"
734/* Permanent. RFC 8739, Section 3.3: Support for Short-Term, Automatically Renewed (STAR) Certificates in the Automated Certificate Management Environment (ACME) */
735#define MHD_HTTP_HEADER_CERT_NOT_BEFORE "Cert-Not-Before"
736/* Permanent. Clear Site Data */
737#define MHD_HTTP_HEADER_CLEAR_SITE_DATA "Clear-Site-Data"
738/* Permanent. RFC9440, Section 2: Client-Cert HTTP Header Field */
739#define MHD_HTTP_HEADER_CLIENT_CERT "Client-Cert"
740/* Permanent. RFC9440, Section 2: Client-Cert HTTP Header Field */
741#define MHD_HTTP_HEADER_CLIENT_CERT_CHAIN "Client-Cert-Chain"
742/* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 2: Digest Fields */
743#define MHD_HTTP_HEADER_CONTENT_DIGEST "Content-Digest"
744/* Permanent. RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP) */
745#define MHD_HTTP_HEADER_CONTENT_DISPOSITION "Content-Disposition"
746/* Permanent. The HTTP Distribution and Replication Protocol */
747#define MHD_HTTP_HEADER_CONTENT_ID "Content-ID"
748/* Permanent. Content Security Policy Level 3 */
749#define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY "Content-Security-Policy"
750/* Permanent. Content Security Policy Level 3 */
751#define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY_REPORT_ONLY \
752 "Content-Security-Policy-Report-Only"
753/* Permanent. RFC 6265: HTTP State Management Mechanism */
754#define MHD_HTTP_HEADER_COOKIE "Cookie"
755/* Permanent. HTML */
756#define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY \
757 "Cross-Origin-Embedder-Policy"
758/* Permanent. HTML */
759#define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY_REPORT_ONLY \
760 "Cross-Origin-Embedder-Policy-Report-Only"
761/* Permanent. HTML */
762#define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY "Cross-Origin-Opener-Policy"
763/* Permanent. HTML */
764#define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY_REPORT_ONLY \
765 "Cross-Origin-Opener-Policy-Report-Only"
766/* Permanent. Fetch */
767#define MHD_HTTP_HEADER_CROSS_ORIGIN_RESOURCE_POLICY \
768 "Cross-Origin-Resource-Policy"
769/* Permanent. RFC 5323: Web Distributed Authoring and Versioning (WebDAV) SEARCH */
770#define MHD_HTTP_HEADER_DASL "DASL"
771/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
772#define MHD_HTTP_HEADER_DAV "DAV"
773/* Permanent. RFC 3229: Delta encoding in HTTP */
774#define MHD_HTTP_HEADER_DELTA_BASE "Delta-Base"
775/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
776#define MHD_HTTP_HEADER_DEPTH "Depth"
777/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
778#define MHD_HTTP_HEADER_DESTINATION "Destination"
779/* Permanent. The HTTP Distribution and Replication Protocol */
780#define MHD_HTTP_HEADER_DIFFERENTIAL_ID "Differential-ID"
781/* Permanent. RFC9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP) */
782#define MHD_HTTP_HEADER_DPOP "DPoP"
783/* Permanent. RFC9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP) */
784#define MHD_HTTP_HEADER_DPOP_NONCE "DPoP-Nonce"
785/* Permanent. RFC 8470: Using Early Data in HTTP */
786#define MHD_HTTP_HEADER_EARLY_DATA "Early-Data"
787/* Permanent. RFC9163: Expect-CT Extension for HTTP */
788#define MHD_HTTP_HEADER_EXPECT_CT "Expect-CT"
789/* Permanent. RFC 7239: Forwarded HTTP Extension */
790#define MHD_HTTP_HEADER_FORWARDED "Forwarded"
791/* Permanent. RFC 7486, Section 6.1.1: HTTP Origin-Bound Authentication (HOBA) */
792#define MHD_HTTP_HEADER_HOBAREG "Hobareg"
793/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
794#define MHD_HTTP_HEADER_IF "If"
795/* Permanent. RFC 6338: Scheduling Extensions to CalDAV */
796#define MHD_HTTP_HEADER_IF_SCHEDULE_TAG_MATCH "If-Schedule-Tag-Match"
797/* Permanent. RFC 3229: Delta encoding in HTTP */
798#define MHD_HTTP_HEADER_IM "IM"
799/* Permanent. RFC 8473: Token Binding over HTTP */
800#define MHD_HTTP_HEADER_INCLUDE_REFERRED_TOKEN_BINDING_ID \
801 "Include-Referred-Token-Binding-ID"
802/* Permanent. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
803#define MHD_HTTP_HEADER_KEEP_ALIVE "Keep-Alive"
804/* Permanent. RFC 3253: Versioning Extensions to WebDAV: (Web Distributed Authoring and Versioning) */
805#define MHD_HTTP_HEADER_LABEL "Label"
806/* Permanent. HTML */
807#define MHD_HTTP_HEADER_LAST_EVENT_ID "Last-Event-ID"
808/* Permanent. RFC 8288: Web Linking */
809#define MHD_HTTP_HEADER_LINK "Link"
810/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
811#define MHD_HTTP_HEADER_LOCK_TOKEN "Lock-Token"
812/* Permanent. RFC 7089: HTTP Framework for Time-Based Access to Resource States -- Memento */
813#define MHD_HTTP_HEADER_MEMENTO_DATETIME "Memento-Datetime"
814/* Permanent. RFC 2227: Simple Hit-Metering and Usage-Limiting for HTTP */
815#define MHD_HTTP_HEADER_METER "Meter"
816/* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
817#define MHD_HTTP_HEADER_NEGOTIATE "Negotiate"
818/* Permanent. Network Error Logging */
819#define MHD_HTTP_HEADER_NEL "NEL"
820/* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
821#define MHD_HTTP_HEADER_ODATA_ENTITYID "OData-EntityId"
822/* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
823#define MHD_HTTP_HEADER_ODATA_ISOLATION "OData-Isolation"
824/* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
825#define MHD_HTTP_HEADER_ODATA_MAXVERSION "OData-MaxVersion"
826/* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
827#define MHD_HTTP_HEADER_ODATA_VERSION "OData-Version"
828/* Permanent. RFC 8053, Section 3: HTTP Authentication Extensions for Interactive Clients */
829#define MHD_HTTP_HEADER_OPTIONAL_WWW_AUTHENTICATE "Optional-WWW-Authenticate"
830/* Permanent. RFC 3648: Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol */
831#define MHD_HTTP_HEADER_ORDERING_TYPE "Ordering-Type"
832/* Permanent. RFC 6454: The Web Origin Concept */
833#define MHD_HTTP_HEADER_ORIGIN "Origin"
834/* Permanent. HTML */
835#define MHD_HTTP_HEADER_ORIGIN_AGENT_CLUSTER "Origin-Agent-Cluster"
836/* Permanent. RFC 8613, Section 11.1: Object Security for Constrained RESTful Environments (OSCORE) */
837#define MHD_HTTP_HEADER_OSCORE "OSCORE"
838/* Permanent. OASIS Project Specification 01; OASIS; Chet_Ensign */
839#define MHD_HTTP_HEADER_OSLC_CORE_VERSION "OSLC-Core-Version"
840/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
841#define MHD_HTTP_HEADER_OVERWRITE "Overwrite"
842/* Permanent. HTML */
843#define MHD_HTTP_HEADER_PING_FROM "Ping-From"
844/* Permanent. HTML */
845#define MHD_HTTP_HEADER_PING_TO "Ping-To"
846/* Permanent. RFC 3648: Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol */
847#define MHD_HTTP_HEADER_POSITION "Position"
848/* Permanent. RFC 7240: Prefer Header for HTTP */
849#define MHD_HTTP_HEADER_PREFER "Prefer"
850/* Permanent. RFC 7240: Prefer Header for HTTP */
851#define MHD_HTTP_HEADER_PREFERENCE_APPLIED "Preference-Applied"
852/* Permanent. RFC9218: Extensible Prioritization Scheme for HTTP */
853#define MHD_HTTP_HEADER_PRIORITY "Priority"
854/* Permanent. RFC9209: The Proxy-Status HTTP Response Header Field */
855#define MHD_HTTP_HEADER_PROXY_STATUS "Proxy-Status"
856/* Permanent. RFC 7469: Public Key Pinning Extension for HTTP */
857#define MHD_HTTP_HEADER_PUBLIC_KEY_PINS "Public-Key-Pins"
858/* Permanent. RFC 7469: Public Key Pinning Extension for HTTP */
859#define MHD_HTTP_HEADER_PUBLIC_KEY_PINS_REPORT_ONLY \
860 "Public-Key-Pins-Report-Only"
861/* Permanent. RFC 4437: Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources */
862#define MHD_HTTP_HEADER_REDIRECT_REF "Redirect-Ref"
863/* Permanent. HTML */
864#define MHD_HTTP_HEADER_REFRESH "Refresh"
865/* Permanent. RFC 8555, Section 6.5.1: Automatic Certificate Management Environment (ACME) */
866#define MHD_HTTP_HEADER_REPLAY_NONCE "Replay-Nonce"
867/* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 3: Digest Fields */
868#define MHD_HTTP_HEADER_REPR_DIGEST "Repr-Digest"
869/* Permanent. RFC 6638: Scheduling Extensions to CalDAV */
870#define MHD_HTTP_HEADER_SCHEDULE_REPLY "Schedule-Reply"
871/* Permanent. RFC 6338: Scheduling Extensions to CalDAV */
872#define MHD_HTTP_HEADER_SCHEDULE_TAG "Schedule-Tag"
873/* Permanent. Fetch */
874#define MHD_HTTP_HEADER_SEC_PURPOSE "Sec-Purpose"
875/* Permanent. RFC 8473: Token Binding over HTTP */
876#define MHD_HTTP_HEADER_SEC_TOKEN_BINDING "Sec-Token-Binding"
877/* Permanent. RFC 6455: The WebSocket Protocol */
878#define MHD_HTTP_HEADER_SEC_WEBSOCKET_ACCEPT "Sec-WebSocket-Accept"
879/* Permanent. RFC 6455: The WebSocket Protocol */
880#define MHD_HTTP_HEADER_SEC_WEBSOCKET_EXTENSIONS "Sec-WebSocket-Extensions"
881/* Permanent. RFC 6455: The WebSocket Protocol */
882#define MHD_HTTP_HEADER_SEC_WEBSOCKET_KEY "Sec-WebSocket-Key"
883/* Permanent. RFC 6455: The WebSocket Protocol */
884#define MHD_HTTP_HEADER_SEC_WEBSOCKET_PROTOCOL "Sec-WebSocket-Protocol"
885/* Permanent. RFC 6455: The WebSocket Protocol */
886#define MHD_HTTP_HEADER_SEC_WEBSOCKET_VERSION "Sec-WebSocket-Version"
887/* Permanent. Server Timing */
888#define MHD_HTTP_HEADER_SERVER_TIMING "Server-Timing"
889/* Permanent. RFC 6265: HTTP State Management Mechanism */
890#define MHD_HTTP_HEADER_SET_COOKIE "Set-Cookie"
891/* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 4.2: HTTP Message Signatures */
892#define MHD_HTTP_HEADER_SIGNATURE "Signature"
893/* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 4.1: HTTP Message Signatures */
894#define MHD_HTTP_HEADER_SIGNATURE_INPUT "Signature-Input"
895/* Permanent. RFC 5023: The Atom Publishing Protocol */
896#define MHD_HTTP_HEADER_SLUG "SLUG"
897/* Permanent. Simple Object Access Protocol (SOAP) 1.1 */
898#define MHD_HTTP_HEADER_SOAPACTION "SoapAction"
899/* Permanent. RFC 2518: HTTP Extensions for Distributed Authoring -- WEBDAV */
900#define MHD_HTTP_HEADER_STATUS_URI "Status-URI"
901/* Permanent. RFC 6797: HTTP Strict Transport Security (HSTS) */
902#define MHD_HTTP_HEADER_STRICT_TRANSPORT_SECURITY "Strict-Transport-Security"
903/* Permanent. RFC 8594: The Sunset HTTP Header Field */
904#define MHD_HTTP_HEADER_SUNSET "Sunset"
905/* Permanent. Edge Architecture Specification */
906#define MHD_HTTP_HEADER_SURROGATE_CAPABILITY "Surrogate-Capability"
907/* Permanent. Edge Architecture Specification */
908#define MHD_HTTP_HEADER_SURROGATE_CONTROL "Surrogate-Control"
909/* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
910#define MHD_HTTP_HEADER_TCN "TCN"
911/* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
912#define MHD_HTTP_HEADER_TIMEOUT "Timeout"
913/* Permanent. RFC 8030, Section 5.4: Generic Event Delivery Using HTTP Push */
914#define MHD_HTTP_HEADER_TOPIC "Topic"
915/* Permanent. Trace Context */
916#define MHD_HTTP_HEADER_TRACEPARENT "Traceparent"
917/* Permanent. Trace Context */
918#define MHD_HTTP_HEADER_TRACESTATE "Tracestate"
919/* Permanent. RFC 8030, Section 5.2: Generic Event Delivery Using HTTP Push */
920#define MHD_HTTP_HEADER_TTL "TTL"
921/* Permanent. RFC 8030, Section 5.3: Generic Event Delivery Using HTTP Push */
922#define MHD_HTTP_HEADER_URGENCY "Urgency"
923/* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
924#define MHD_HTTP_HEADER_VARIANT_VARY "Variant-Vary"
925/* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 4: Digest Fields */
926#define MHD_HTTP_HEADER_WANT_CONTENT_DIGEST "Want-Content-Digest"
927/* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 4: Digest Fields */
928#define MHD_HTTP_HEADER_WANT_REPR_DIGEST "Want-Repr-Digest"
929/* Permanent. Fetch */
930#define MHD_HTTP_HEADER_X_CONTENT_TYPE_OPTIONS "X-Content-Type-Options"
931/* Permanent. HTML */
932#define MHD_HTTP_HEADER_X_FRAME_OPTIONS "X-Frame-Options"
933/* Provisional. AMP-Cache-Transform HTTP request header */
934#define MHD_HTTP_HEADER_AMP_CACHE_TRANSFORM "AMP-Cache-Transform"
935/* Provisional. OSLC Configuration Management Version 1.0. Part 3: Configuration Specification */
936#define MHD_HTTP_HEADER_CONFIGURATION_CONTEXT "Configuration-Context"
937/* Provisional. RFC 6017: Electronic Data Interchange - Internet Integration (EDIINT) Features Header Field */
938#define MHD_HTTP_HEADER_EDIINT_FEATURES "EDIINT-Features"
939/* Provisional. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
940#define MHD_HTTP_HEADER_ISOLATION "Isolation"
941/* Provisional. Permissions Policy */
942#define MHD_HTTP_HEADER_PERMISSIONS_POLICY "Permissions-Policy"
943/* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
944#define MHD_HTTP_HEADER_REPEATABILITY_CLIENT_ID "Repeatability-Client-ID"
945/* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
946#define MHD_HTTP_HEADER_REPEATABILITY_FIRST_SENT "Repeatability-First-Sent"
947/* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
948#define MHD_HTTP_HEADER_REPEATABILITY_REQUEST_ID "Repeatability-Request-ID"
949/* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
950#define MHD_HTTP_HEADER_REPEATABILITY_RESULT "Repeatability-Result"
951/* Provisional. Reporting API */
952#define MHD_HTTP_HEADER_REPORTING_ENDPOINTS "Reporting-Endpoints"
953/* Provisional. Global Privacy Control (GPC) */
954#define MHD_HTTP_HEADER_SEC_GPC "Sec-GPC"
955/* Provisional. Resource Timing Level 1 */
956#define MHD_HTTP_HEADER_TIMING_ALLOW_ORIGIN "Timing-Allow-Origin"
957/* Deprecated. PEP - an Extension Mechanism for HTTP; status-change-http-experiments-to-historic */
958#define MHD_HTTP_HEADER_C_PEP_INFO "C-PEP-Info"
959/* Deprecated. White Paper: Joint Electronic Payment Initiative */
960#define MHD_HTTP_HEADER_PROTOCOL_INFO "Protocol-Info"
961/* Deprecated. White Paper: Joint Electronic Payment Initiative */
962#define MHD_HTTP_HEADER_PROTOCOL_QUERY "Protocol-Query"
963/* Obsoleted. Access Control for Cross-site Requests */
964#define MHD_HTTP_HEADER_ACCESS_CONTROL "Access-Control"
965/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
966#define MHD_HTTP_HEADER_C_EXT "C-Ext"
967/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
968#define MHD_HTTP_HEADER_C_MAN "C-Man"
969/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
970#define MHD_HTTP_HEADER_C_OPT "C-Opt"
971/* Obsoleted. PEP - an Extension Mechanism for HTTP; status-change-http-experiments-to-historic */
972#define MHD_HTTP_HEADER_C_PEP "C-PEP"
973/* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1; RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 */
974#define MHD_HTTP_HEADER_CONTENT_BASE "Content-Base"
975/* Obsoleted. RFC 2616, Section 14.15: Hypertext Transfer Protocol -- HTTP/1.1; RFC 7231, Appendix B: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content */
976#define MHD_HTTP_HEADER_CONTENT_MD5 "Content-MD5"
977/* Obsoleted. HTML 4.01 Specification */
978#define MHD_HTTP_HEADER_CONTENT_SCRIPT_TYPE "Content-Script-Type"
979/* Obsoleted. HTML 4.01 Specification */
980#define MHD_HTTP_HEADER_CONTENT_STYLE_TYPE "Content-Style-Type"
981/* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
982#define MHD_HTTP_HEADER_CONTENT_VERSION "Content-Version"
983/* Obsoleted. RFC 2965: HTTP State Management Mechanism; RFC 6265: HTTP State Management Mechanism */
984#define MHD_HTTP_HEADER_COOKIE2 "Cookie2"
985/* Obsoleted. HTML 4.01 Specification */
986#define MHD_HTTP_HEADER_DEFAULT_STYLE "Default-Style"
987/* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
988#define MHD_HTTP_HEADER_DERIVED_FROM "Derived-From"
989/* Obsoleted. RFC 3230: Instance Digests in HTTP; RFC-ietf-httpbis-digest-headers-13, Section 1.3: Digest Fields */
990#define MHD_HTTP_HEADER_DIGEST "Digest"
991/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
992#define MHD_HTTP_HEADER_EXT "Ext"
993/* Obsoleted. Implementation of OPS Over HTTP */
994#define MHD_HTTP_HEADER_GETPROFILE "GetProfile"
995/* Obsoleted. RFC 7540, Section 3.2.1: Hypertext Transfer Protocol Version 2 (HTTP/2) */
996#define MHD_HTTP_HEADER_HTTP2_SETTINGS "HTTP2-Settings"
997/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
998#define MHD_HTTP_HEADER_MAN "Man"
999/* Obsoleted. Access Control for Cross-site Requests */
1000#define MHD_HTTP_HEADER_METHOD_CHECK "Method-Check"
1001/* Obsoleted. Access Control for Cross-site Requests */
1002#define MHD_HTTP_HEADER_METHOD_CHECK_EXPIRES "Method-Check-Expires"
1003/* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
1004#define MHD_HTTP_HEADER_OPT "Opt"
1005/* Obsoleted. The Platform for Privacy Preferences 1.0 (P3P1.0) Specification */
1006#define MHD_HTTP_HEADER_P3P "P3P"
1007/* Obsoleted. PEP - an Extension Mechanism for HTTP */
1008#define MHD_HTTP_HEADER_PEP "PEP"
1009/* Obsoleted. PEP - an Extension Mechanism for HTTP */
1010#define MHD_HTTP_HEADER_PEP_INFO "Pep-Info"
1011/* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1012#define MHD_HTTP_HEADER_PICS_LABEL "PICS-Label"
1013/* Obsoleted. Implementation of OPS Over HTTP */
1014#define MHD_HTTP_HEADER_PROFILEOBJECT "ProfileObject"
1015/* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1016#define MHD_HTTP_HEADER_PROTOCOL "Protocol"
1017/* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1018#define MHD_HTTP_HEADER_PROTOCOL_REQUEST "Protocol-Request"
1019/* Obsoleted. Notification for Proxy Caches */
1020#define MHD_HTTP_HEADER_PROXY_FEATURES "Proxy-Features"
1021/* Obsoleted. Notification for Proxy Caches */
1022#define MHD_HTTP_HEADER_PROXY_INSTRUCTION "Proxy-Instruction"
1023/* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
1024#define MHD_HTTP_HEADER_PUBLIC "Public"
1025/* Obsoleted. Access Control for Cross-site Requests */
1026#define MHD_HTTP_HEADER_REFERER_ROOT "Referer-Root"
1027/* Obsoleted. RFC 2310: The Safe Response Header Field; status-change-http-experiments-to-historic */
1028#define MHD_HTTP_HEADER_SAFE "Safe"
1029/* Obsoleted. RFC 2660: The Secure HyperText Transfer Protocol; status-change-http-experiments-to-historic */
1030#define MHD_HTTP_HEADER_SECURITY_SCHEME "Security-Scheme"
1031/* Obsoleted. RFC 2965: HTTP State Management Mechanism; RFC 6265: HTTP State Management Mechanism */
1032#define MHD_HTTP_HEADER_SET_COOKIE2 "Set-Cookie2"
1033/* Obsoleted. Implementation of OPS Over HTTP */
1034#define MHD_HTTP_HEADER_SETPROFILE "SetProfile"
1035/* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
1036#define MHD_HTTP_HEADER_URI "URI"
1037/* Obsoleted. RFC 3230: Instance Digests in HTTP; RFC-ietf-httpbis-digest-headers-13, Section 1.3: Digest Fields */
1038#define MHD_HTTP_HEADER_WANT_DIGEST "Want-Digest"
1039/* Obsoleted. RFC9111, Section 5.5: HTTP Caching */
1040#define MHD_HTTP_HEADER_WARNING "Warning"
1041
1042/* Headers removed from the registry. Do not use! */
1043/* Obsoleted. RFC4229 */
1044#define MHD_HTTP_HEADER_COMPLIANCE "Compliance"
1045/* Obsoleted. RFC4229 */
1046#define MHD_HTTP_HEADER_CONTENT_TRANSFER_ENCODING "Content-Transfer-Encoding"
1047/* Obsoleted. RFC4229 */
1048#define MHD_HTTP_HEADER_COST "Cost"
1049/* Obsoleted. RFC4229 */
1050#define MHD_HTTP_HEADER_MESSAGE_ID "Message-ID"
1051/* Obsoleted. RFC4229 */
1052#define MHD_HTTP_HEADER_NON_COMPLIANCE "Non-Compliance"
1053/* Obsoleted. RFC4229 */
1054#define MHD_HTTP_HEADER_OPTIONAL "Optional"
1055/* Obsoleted. RFC4229 */
1056#define MHD_HTTP_HEADER_RESOLUTION_HINT "Resolution-Hint"
1057/* Obsoleted. RFC4229 */
1058#define MHD_HTTP_HEADER_RESOLVER_LOCATION "Resolver-Location"
1059/* Obsoleted. RFC4229 */
1060#define MHD_HTTP_HEADER_SUBOK "SubOK"
1061/* Obsoleted. RFC4229 */
1062#define MHD_HTTP_HEADER_SUBST "Subst"
1063/* Obsoleted. RFC4229 */
1064#define MHD_HTTP_HEADER_TITLE "Title"
1065/* Obsoleted. RFC4229 */
1066#define MHD_HTTP_HEADER_UA_COLOR "UA-Color"
1067/* Obsoleted. RFC4229 */
1068#define MHD_HTTP_HEADER_UA_MEDIA "UA-Media"
1069/* Obsoleted. RFC4229 */
1070#define MHD_HTTP_HEADER_UA_PIXELS "UA-Pixels"
1071/* Obsoleted. RFC4229 */
1072#define MHD_HTTP_HEADER_UA_RESOLUTION "UA-Resolution"
1073/* Obsoleted. RFC4229 */
1074#define MHD_HTTP_HEADER_UA_WINDOWPIXELS "UA-Windowpixels"
1075/* Obsoleted. RFC4229 */
1076#define MHD_HTTP_HEADER_VERSION "Version"
1077/* Obsoleted. W3C Mobile Web Best Practices Working Group */
1078#define MHD_HTTP_HEADER_X_DEVICE_ACCEPT "X-Device-Accept"
1079/* Obsoleted. W3C Mobile Web Best Practices Working Group */
1080#define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_CHARSET "X-Device-Accept-Charset"
1081/* Obsoleted. W3C Mobile Web Best Practices Working Group */
1082#define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_ENCODING "X-Device-Accept-Encoding"
1083/* Obsoleted. W3C Mobile Web Best Practices Working Group */
1084#define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_LANGUAGE "X-Device-Accept-Language"
1085/* Obsoleted. W3C Mobile Web Best Practices Working Group */
1086#define MHD_HTTP_HEADER_X_DEVICE_USER_AGENT "X-Device-User-Agent"
1087
1088 /* end of group headers */
1089
1096#define MHD_HTTP_VERSION_1_0 "HTTP/1.0"
1097#define MHD_HTTP_VERSION_1_1 "HTTP/1.1"
1098
1099 /* end of group versions */
1100
1109/* Main HTTP methods. */
1110/* Safe. Idempotent. RFC9110, Section 9.3.1. */
1111#define MHD_HTTP_METHOD_GET "GET"
1112/* Safe. Idempotent. RFC9110, Section 9.3.2. */
1113#define MHD_HTTP_METHOD_HEAD "HEAD"
1114/* Not safe. Not idempotent. RFC9110, Section 9.3.3. */
1115#define MHD_HTTP_METHOD_POST "POST"
1116/* Not safe. Idempotent. RFC9110, Section 9.3.4. */
1117#define MHD_HTTP_METHOD_PUT "PUT"
1118/* Not safe. Idempotent. RFC9110, Section 9.3.5. */
1119#define MHD_HTTP_METHOD_DELETE "DELETE"
1120/* Not safe. Not idempotent. RFC9110, Section 9.3.6. */
1121#define MHD_HTTP_METHOD_CONNECT "CONNECT"
1122/* Safe. Idempotent. RFC9110, Section 9.3.7. */
1123#define MHD_HTTP_METHOD_OPTIONS "OPTIONS"
1124/* Safe. Idempotent. RFC9110, Section 9.3.8. */
1125#define MHD_HTTP_METHOD_TRACE "TRACE"
1126
1127/* Additional HTTP methods. */
1128/* Not safe. Idempotent. RFC3744, Section 8.1. */
1129#define MHD_HTTP_METHOD_ACL "ACL"
1130/* Not safe. Idempotent. RFC3253, Section 12.6. */
1131#define MHD_HTTP_METHOD_BASELINE_CONTROL "BASELINE-CONTROL"
1132/* Not safe. Idempotent. RFC5842, Section 4. */
1133#define MHD_HTTP_METHOD_BIND "BIND"
1134/* Not safe. Idempotent. RFC3253, Section 4.4, Section 9.4. */
1135#define MHD_HTTP_METHOD_CHECKIN "CHECKIN"
1136/* Not safe. Idempotent. RFC3253, Section 4.3, Section 8.8. */
1137#define MHD_HTTP_METHOD_CHECKOUT "CHECKOUT"
1138/* Not safe. Idempotent. RFC4918, Section 9.8. */
1139#define MHD_HTTP_METHOD_COPY "COPY"
1140/* Not safe. Idempotent. RFC3253, Section 8.2. */
1141#define MHD_HTTP_METHOD_LABEL "LABEL"
1142/* Not safe. Idempotent. RFC2068, Section 19.6.1.2. */
1143#define MHD_HTTP_METHOD_LINK "LINK"
1144/* Not safe. Not idempotent. RFC4918, Section 9.10. */
1145#define MHD_HTTP_METHOD_LOCK "LOCK"
1146/* Not safe. Idempotent. RFC3253, Section 11.2. */
1147#define MHD_HTTP_METHOD_MERGE "MERGE"
1148/* Not safe. Idempotent. RFC3253, Section 13.5. */
1149#define MHD_HTTP_METHOD_MKACTIVITY "MKACTIVITY"
1150/* Not safe. Idempotent. RFC4791, Section 5.3.1; RFC8144, Section 2.3. */
1151#define MHD_HTTP_METHOD_MKCALENDAR "MKCALENDAR"
1152/* Not safe. Idempotent. RFC4918, Section 9.3; RFC5689, Section 3; RFC8144, Section 2.3. */
1153#define MHD_HTTP_METHOD_MKCOL "MKCOL"
1154/* Not safe. Idempotent. RFC4437, Section 6. */
1155#define MHD_HTTP_METHOD_MKREDIRECTREF "MKREDIRECTREF"
1156/* Not safe. Idempotent. RFC3253, Section 6.3. */
1157#define MHD_HTTP_METHOD_MKWORKSPACE "MKWORKSPACE"
1158/* Not safe. Idempotent. RFC4918, Section 9.9. */
1159#define MHD_HTTP_METHOD_MOVE "MOVE"
1160/* Not safe. Idempotent. RFC3648, Section 7. */
1161#define MHD_HTTP_METHOD_ORDERPATCH "ORDERPATCH"
1162/* Not safe. Not idempotent. RFC5789, Section 2. */
1163#define MHD_HTTP_METHOD_PATCH "PATCH"
1164/* Safe. Idempotent. RFC9113, Section 3.4. */
1165#define MHD_HTTP_METHOD_PRI "PRI"
1166/* Safe. Idempotent. RFC4918, Section 9.1; RFC8144, Section 2.1. */
1167#define MHD_HTTP_METHOD_PROPFIND "PROPFIND"
1168/* Not safe. Idempotent. RFC4918, Section 9.2; RFC8144, Section 2.2. */
1169#define MHD_HTTP_METHOD_PROPPATCH "PROPPATCH"
1170/* Not safe. Idempotent. RFC5842, Section 6. */
1171#define MHD_HTTP_METHOD_REBIND "REBIND"
1172/* Safe. Idempotent. RFC3253, Section 3.6; RFC8144, Section 2.1. */
1173#define MHD_HTTP_METHOD_REPORT "REPORT"
1174/* Safe. Idempotent. RFC5323, Section 2. */
1175#define MHD_HTTP_METHOD_SEARCH "SEARCH"
1176/* Not safe. Idempotent. RFC5842, Section 5. */
1177#define MHD_HTTP_METHOD_UNBIND "UNBIND"
1178/* Not safe. Idempotent. RFC3253, Section 4.5. */
1179#define MHD_HTTP_METHOD_UNCHECKOUT "UNCHECKOUT"
1180/* Not safe. Idempotent. RFC2068, Section 19.6.1.3. */
1181#define MHD_HTTP_METHOD_UNLINK "UNLINK"
1182/* Not safe. Idempotent. RFC4918, Section 9.11. */
1183#define MHD_HTTP_METHOD_UNLOCK "UNLOCK"
1184/* Not safe. Idempotent. RFC3253, Section 7.1. */
1185#define MHD_HTTP_METHOD_UPDATE "UPDATE"
1186/* Not safe. Idempotent. RFC4437, Section 7. */
1187#define MHD_HTTP_METHOD_UPDATEREDIRECTREF "UPDATEREDIRECTREF"
1188/* Not safe. Idempotent. RFC3253, Section 3.5. */
1189#define MHD_HTTP_METHOD_VERSION_CONTROL "VERSION-CONTROL"
1190/* Not safe. Not idempotent. RFC9110, Section 18.2. */
1191#define MHD_HTTP_METHOD_ASTERISK "*"
1192
1193 /* end of group methods */
1194
1200#define MHD_HTTP_POST_ENCODING_FORM_URLENCODED \
1201 "application/x-www-form-urlencoded"
1202#define MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA "multipart/form-data"
1203
1204 /* end of group postenc */
1205
1206
1211struct MHD_Daemon;
1212
1221struct MHD_Connection;
1222
1227struct MHD_Response;
1228
1233struct MHD_PostProcessor;
1234
1235
1249{
1254
1261
1267
1272
1275#if 0
1276 /* let's do this later once versions that define MHD_USE_TLS a more widely deployed. */
1277#define MHD_USE_SSL \
1278 _MHD_DEPR_IN_MACRO ("Value MHD_USE_SSL is deprecated, use MHD_USE_TLS") \
1279 MHD_USE_TLS
1280#endif
1281
1292
1304
1307#if 0 /* Will be marked for real deprecation later. */
1308#define MHD_USE_SELECT_INTERNALLY \
1309 _MHD_DEPR_IN_MACRO ( \
1310 "Value MHD_USE_SELECT_INTERNALLY is deprecated, use MHD_USE_INTERNAL_POLLING_THREAD instead") \
1311 MHD_USE_INTERNAL_POLLING_THREAD
1312#endif /* 0 */
1313
1322
1331#if 0 /* Will be marked for real deprecation later. */
1332#define MHD_USE_PEDANTIC_CHECKS \
1333 _MHD_DEPR_IN_MACRO ( \
1334 "Flag MHD_USE_PEDANTIC_CHECKS is deprecated, " \
1335 "use option MHD_OPTION_CLIENT_DISCIPLINE_LVL instead") \
1336 32
1337#endif /* 0 */
1338
1349
1355
1358#if 0 /* Will be marked for real deprecation later. */
1359#define MHD_USE_POLL_INTERNALLY \
1360 _MHD_DEPR_IN_MACRO ( \
1361 "Value MHD_USE_POLL_INTERNALLY is deprecated, use MHD_USE_POLL_INTERNAL_THREAD instead") \
1362 MHD_USE_POLL_INTERNAL_THREAD
1363#endif /* 0 */
1364
1372
1375#if 0 /* Will be marked for real deprecation later. */
1376#define MHD_SUPPRESS_DATE_NO_CLOCK \
1377 _MHD_DEPR_IN_MACRO ( \
1378 "Value MHD_SUPPRESS_DATE_NO_CLOCK is deprecated, use MHD_USE_SUPPRESS_DATE_NO_CLOCK instead") \
1379 MHD_USE_SUPPRESS_DATE_NO_CLOCK
1380#endif /* 0 */
1381
1390
1399
1402#if 0 /* Will be marked for real deprecation later. */
1403#define MHD_USE_EPOLL_LINUX_ONLY \
1404 _MHD_DEPR_IN_MACRO ( \
1405 "Value MHD_USE_EPOLL_LINUX_ONLY is deprecated, use MHD_USE_EPOLL") \
1406 MHD_USE_EPOLL
1407#endif /* 0 */
1408
1417
1423#if 0 /* Will be marked for real deprecation later. */
1424#define MHD_USE_EPOLL_INTERNALLY \
1425 _MHD_DEPR_IN_MACRO ( \
1426 "Value MHD_USE_EPOLL_INTERNALLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1427 MHD_USE_EPOLL_INTERNAL_THREAD
1429#define MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY \
1430 _MHD_DEPR_IN_MACRO ( \
1431 "Value MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1432 MHD_USE_EPOLL_INTERNAL_THREAD
1433#endif /* 0 */
1434
1454
1457#if 0 /* Will be marked for real deprecation later. */
1458#define MHD_USE_PIPE_FOR_SHUTDOWN \
1459 _MHD_DEPR_IN_MACRO ( \
1460 "Value MHD_USE_PIPE_FOR_SHUTDOWN is deprecated, use MHD_USE_ITC") \
1461 MHD_USE_ITC
1462#endif /* 0 */
1463
1468
1476
1479#if 0 /* Will be marked for real deprecation later. */
1480#define MHD_USE_EPOLL_TURBO \
1481 _MHD_DEPR_IN_MACRO ( \
1482 "Value MHD_USE_EPOLL_TURBO is deprecated, use MHD_USE_TURBO") \
1483 MHD_USE_TURBO
1484#endif /* 0 */
1485
1491
1494#if 0 /* Will be marked for real deprecation later. */
1495#define MHD_USE_SUSPEND_RESUME \
1496 _MHD_DEPR_IN_MACRO ( \
1497 "Value MHD_USE_SUSPEND_RESUME is deprecated, use MHD_ALLOW_SUSPEND_RESUME instead") \
1498 MHD_ALLOW_SUSPEND_RESUME
1499#endif /* 0 */
1500
1507
1514
1527
1535
1541
1547
1558 MHD_USE_NO_THREAD_SAFETY = 1U << 19
1559
1561
1562
1571typedef void
1572(*MHD_LogCallback)(void *cls,
1573 const char *fm,
1574 va_list ap);
1575
1576
1591typedef int
1593 const struct MHD_Connection *connection,
1594 const char *username,
1595 void **psk,
1596 size_t *psk_size);
1597
1662
1669{
1670
1676
1687
1693
1702
1716
1728
1738
1770
1778
1786
1793
1806
1816
1831
1840
1861
1883
1898
1910
1916
1923
1931
1947
1956
1963
1972
1981
1992
2000
2019
2027
2038
2049
2060
2069
2084
2095
2107
2153
2175
2229
2231
2232
2245
2246
2251{
2257
2263 intptr_t value;
2264
2270
2271};
2272
2273
2279{
2280
2286#define MHD_RESPONSE_HEADER_KIND \
2287 _MHD_DEPR_IN_MACRO ( \
2288 "Value MHD_RESPONSE_HEADER_KIND is deprecated and not used") \
2289 MHD_RESPONSE_HEADER_KIND
2290
2295
2301
2311
2316
2320 MHD_FOOTER_KIND = 16
2322
2323
2380
2381
2403
2404
2409{
2410
2414 int /* enum gnutls_cipher_algorithm */ cipher_algorithm;
2415
2419 int /* enum gnutls_protocol */ protocol;
2420
2424 int /* MHD_YES or MHD_NO */ suspended;
2425
2432
2436 unsigned int http_status;
2437
2442
2449
2453 void * /* gnutls_session_t */ tls_session;
2454
2458 void * /* gnutls_x509_crt_t */ client_cert;
2459
2463 struct sockaddr *client_addr;
2464
2470
2476};
2477
2478
2484{
2488 const void *iov_base;
2489
2493 size_t iov_len;
2494};
2495
2496
2590
2591
2654
2655
2667typedef void
2668(*MHD_PanicCallback) (void *cls,
2669 const char *file,
2670 unsigned int line,
2671 const char *reason);
2672
2681typedef enum MHD_Result
2682(*MHD_AcceptPolicyCallback)(void *cls,
2683 const struct sockaddr *addr,
2684 socklen_t addrlen);
2685
2686
2753typedef enum MHD_Result
2754(*MHD_AccessHandlerCallback)(void *cls,
2755 struct MHD_Connection *connection,
2756 const char *url,
2757 const char *method,
2758 const char *version,
2759 const char *upload_data,
2760 size_t *upload_data_size,
2761 void **req_cls);
2762
2763
2776typedef void
2777(*MHD_RequestCompletedCallback) (void *cls,
2778 struct MHD_Connection *connection,
2779 void **req_cls,
2781
2782
2802typedef void
2803(*MHD_NotifyConnectionCallback) (void *cls,
2804 struct MHD_Connection *connection,
2805 void **socket_context,
2807
2808
2824typedef enum MHD_Result
2825(*MHD_KeyValueIterator)(void *cls,
2826 enum MHD_ValueKind kind,
2827 const char *key,
2828 const char *value);
2829
2830
2849typedef enum MHD_Result
2850(*MHD_KeyValueIteratorN)(void *cls,
2851 enum MHD_ValueKind kind,
2852 const char *key,
2853 size_t key_size,
2854 const char *value,
2855 size_t value_size);
2856
2857
2903typedef ssize_t
2904(*MHD_ContentReaderCallback) (void *cls,
2905 uint64_t pos,
2906 char *buf,
2907 size_t max);
2908
2909
2919typedef void
2920(*MHD_ContentReaderFreeCallback) (void *cls);
2921
2922
2943typedef enum MHD_Result
2944(*MHD_PostDataIterator)(void *cls,
2945 enum MHD_ValueKind kind,
2946 const char *key,
2947 const char *filename,
2948 const char *content_type,
2949 const char *transfer_encoding,
2950 const char *data,
2951 uint64_t off,
2952 size_t size);
2953
2954/* **************** Daemon handling functions ***************** */
2955
2977_MHD_EXTERN struct MHD_Daemon *
2978MHD_start_daemon_va (unsigned int flags,
2979 uint16_t port,
2981 MHD_AccessHandlerCallback dh, void *dh_cls,
2982 va_list ap);
2983
2984
3005_MHD_EXTERN struct MHD_Daemon *
3006MHD_start_daemon (unsigned int flags,
3007 uint16_t port,
3009 MHD_AccessHandlerCallback dh, void *dh_cls,
3010 ...);
3011
3012
3033MHD_quiesce_daemon (struct MHD_Daemon *daemon);
3034
3035
3042_MHD_EXTERN void
3043MHD_stop_daemon (struct MHD_Daemon *daemon);
3044
3045
3073MHD_add_connection (struct MHD_Daemon *daemon,
3074 MHD_socket client_socket,
3075 const struct sockaddr *addr,
3076 socklen_t addrlen);
3077
3078
3111MHD_get_fdset (struct MHD_Daemon *daemon,
3112 fd_set *read_fd_set,
3113 fd_set *write_fd_set,
3114 fd_set *except_fd_set,
3115 MHD_socket *max_fd);
3116
3117
3153MHD_get_fdset2 (struct MHD_Daemon *daemon,
3154 fd_set *read_fd_set,
3155 fd_set *write_fd_set,
3156 fd_set *except_fd_set,
3157 MHD_socket *max_fd,
3158 unsigned int fd_setsize);
3159
3160
3192#define MHD_get_fdset(daemon,read_fd_set,write_fd_set,except_fd_set,max_fd) \
3193 MHD_get_fdset2 ((daemon),(read_fd_set),(write_fd_set),(except_fd_set), \
3194 (max_fd),FD_SETSIZE)
3195
3196
3230MHD_get_timeout (struct MHD_Daemon *daemon,
3231 MHD_UNSIGNED_LONG_LONG *timeout);
3232
3233
3247_MHD_EXTERN void
3248MHD_free (void *ptr);
3249
3285MHD_get_timeout64 (struct MHD_Daemon *daemon,
3286 uint64_t *timeout);
3287
3288
3325_MHD_EXTERN int64_t
3327
3328
3366_MHD_EXTERN int
3368
3369
3398MHD_run (struct MHD_Daemon *daemon);
3399
3400
3440MHD_run_wait (struct MHD_Daemon *daemon,
3441 int32_t millisec);
3442
3443
3471MHD_run_from_select (struct MHD_Daemon *daemon,
3472 const fd_set *read_fd_set,
3473 const fd_set *write_fd_set,
3474 const fd_set *except_fd_set);
3475
3476
3509MHD_run_from_select2 (struct MHD_Daemon *daemon,
3510 const fd_set *read_fd_set,
3511 const fd_set *write_fd_set,
3512 const fd_set *except_fd_set,
3513 unsigned int fd_setsize);
3514
3515
3546#define MHD_run_from_select(d,r,w,e) \
3547 MHD_run_from_select2 ((d),(r),(w),(e),(unsigned int) (FD_SETSIZE))
3548
3549/* **************** Connection handling functions ***************** */
3550
3551
3581 const char **uri,
3582 size_t *uri_size);
3583
3596_MHD_EXTERN int
3597MHD_get_connection_values (struct MHD_Connection *connection,
3598 enum MHD_ValueKind kind,
3599 MHD_KeyValueIterator iterator,
3600 void *iterator_cls);
3601
3602
3616_MHD_EXTERN int
3618 enum MHD_ValueKind kind,
3619 MHD_KeyValueIteratorN iterator,
3620 void *iterator_cls);
3621
3622
3649MHD_set_connection_value (struct MHD_Connection *connection,
3650 enum MHD_ValueKind kind,
3651 const char *key,
3652 const char *value);
3653
3654
3682MHD_set_connection_value_n (struct MHD_Connection *connection,
3683 enum MHD_ValueKind kind,
3684 const char *key,
3685 size_t key_size,
3686 const char *value,
3687 size_t value_size);
3688
3689
3708_MHD_EXTERN void
3710
3711
3721_MHD_EXTERN size_t
3722MHD_http_unescape (char *val);
3723
3724
3735_MHD_EXTERN const char *
3737 enum MHD_ValueKind kind,
3738 const char *key);
3739
3740
3762 enum MHD_ValueKind kind,
3763 const char *key,
3764 size_t key_size,
3765 const char **value_ptr,
3766 size_t *value_size_ptr);
3767
3768
3815MHD_queue_response (struct MHD_Connection *connection,
3816 unsigned int status_code,
3817 struct MHD_Response *response);
3818
3819
3848_MHD_EXTERN void
3849MHD_suspend_connection (struct MHD_Connection *connection);
3850
3851
3876_MHD_EXTERN void
3877MHD_resume_connection (struct MHD_Connection *connection);
3878
3879
3880/* **************** Response manipulation functions ***************** */
3881
3882
3968
3969
3980
3981
3991MHD_set_response_options (struct MHD_Response *response,
3992 enum MHD_ResponseFlags flags,
3993 ...);
3994
3995
4019 size_t block_size,
4022
4023
4044 "MHD_create_response_from_data() is deprecated, use MHD_create_response_from_buffer()" \
4045 ) \
4046 _MHD_EXTERN struct MHD_Response *
4048 void *data,
4051
4052
4093
4094
4114 void *buffer,
4115 enum MHD_ResponseMemoryMode mode);
4116
4117
4141 const void *buffer);
4142
4143
4168 const void *buffer);
4169
4170
4191 void *buffer,
4193 crfc);
4194
4195
4219 const void *buffer,
4221 crfc,
4222 void *crfc_cls);
4223
4224
4244MHD_create_response_from_fd (size_t size,
4245 int fd);
4246
4247
4268
4269
4291MHD_create_response_from_fd64 (uint64_t size,
4292 int fd);
4293
4294
4319 "Function MHD_create_response_from_fd_at_offset() is deprecated, use MHD_create_response_from_fd_at_offset64()" \
4320 ) \
4321 _MHD_EXTERN struct MHD_Response *
4323 int fd,
4324 off_t offset);
4325
4326#if ! defined(_MHD_NO_DEPR_IN_MACRO) || defined(_MHD_NO_DEPR_FUNC)
4327/* Substitute MHD_create_response_from_fd_at_offset64() instead of MHD_create_response_from_fd_at_offset()
4328 to minimize potential problems with different off_t sizes */
4329#define MHD_create_response_from_fd_at_offset(size,fd,offset) \
4330 _MHD_DEPR_IN_MACRO ( \
4331 "Usage of MHD_create_response_from_fd_at_offset() is deprecated, use MHD_create_response_from_fd_at_offset64()") \
4332 MHD_create_response_from_fd_at_offset64 ((size),(fd),(offset))
4333#endif /* !_MHD_NO_DEPR_IN_MACRO || _MHD_NO_DEPR_FUNC */
4334
4335
4361 int fd,
4362 uint64_t offset);
4363
4364
4387MHD_create_response_from_iovec (const struct MHD_IoVec *iov,
4388 unsigned int iovcnt,
4390 void *cls);
4391
4392
4410
4411
4439
4440
4446struct MHD_UpgradeResponseHandle;
4447
4448
4462MHD_upgrade_action (struct MHD_UpgradeResponseHandle *urh,
4463 enum MHD_UpgradeAction action,
4464 ...);
4465
4466
4514typedef void
4515(*MHD_UpgradeHandler)(void *cls,
4516 struct MHD_Connection *connection,
4517 void *req_cls,
4518 const char *extra_in,
4519 size_t extra_in_size,
4520 MHD_socket sock,
4521 struct MHD_UpgradeResponseHandle *urh);
4522
4523
4555 void *upgrade_handler_cls);
4556
4557
4567_MHD_EXTERN void
4568MHD_destroy_response (struct MHD_Response *response);
4569
4570
4621MHD_add_response_header (struct MHD_Response *response,
4622 const char *header,
4623 const char *content);
4624
4625
4636MHD_add_response_footer (struct MHD_Response *response,
4637 const char *footer,
4638 const char *content);
4639
4640
4656MHD_del_response_header (struct MHD_Response *response,
4657 const char *header,
4658 const char *content);
4659
4660
4671_MHD_EXTERN int
4672MHD_get_response_headers (struct MHD_Response *response,
4673 MHD_KeyValueIterator iterator,
4674 void *iterator_cls);
4675
4676
4685_MHD_EXTERN const char *
4686MHD_get_response_header (struct MHD_Response *response,
4687 const char *key);
4688
4689
4690/* ********************** PostProcessor functions ********************** */
4691
4719 size_t buffer_size,
4720 MHD_PostDataIterator iter, void *iter_cls);
4721
4722
4738 const char *post_data,
4739 size_t post_data_len);
4740
4741
4754
4755
4756/* ********************* Digest Authentication functions *************** */
4757
4758
4764#define MHD_MD5_DIGEST_SIZE 16
4765
4771#define MHD_SHA256_DIGEST_SIZE 32
4772
4781#define MHD_SHA512_256_DIGEST_SIZE 32
4782
4815
4821#define MHD_DIGEST_AUTH_ALGO3_NON_SESSION (1 << 6)
4822
4828#define MHD_DIGEST_AUTH_ALGO3_SESSION (1 << 7)
4829
4884
4885
4900_MHD_EXTERN size_t
4902
4912{
4917
4922
4929
4934
4942
4947
4955
4962
4969
4978
4986
4993
5001
5009
5017
5024
5025
5068 const char *username,
5069 const char *realm,
5070 void *userhash_bin,
5071 size_t bin_buf_size);
5072
5073
5116 const char *username,
5117 const char *realm,
5118 char *userhash_hex,
5119 size_t hex_buf_size);
5120
5121
5174
5209
5263
5268#define MHD_DIGEST_AUTH_INVALID_NC_VALUE (0)
5269
5281{
5289
5294
5307
5313
5324
5331
5347
5354 char *opaque;
5355
5361
5368 char *realm;
5369
5375
5380
5390
5400 uint32_t nc;
5401};
5402
5403
5417
5418
5499
5500
5517
5518
5527{
5532
5537
5544
5549
5554
5559
5564
5569
5574
5575 /* The different form of naming is intentionally used for the results below,
5576 * as they are more important */
5577
5584
5598
5603
5610
5611
5644MHD_digest_auth_check3 (struct MHD_Connection *connection,
5645 const char *realm,
5646 const char *username,
5647 const char *password,
5648 unsigned int nonce_timeout,
5649 uint32_t max_nc,
5650 enum MHD_DigestAuthMultiQOP mqop,
5651 enum MHD_DigestAuthMultiAlgo3 malgo3);
5652
5653
5689 const char *username,
5690 const char *realm,
5691 const char *password,
5692 void *userdigest_bin,
5693 size_t bin_buf_size);
5694
5695
5740 const char *realm,
5741 const char *username,
5742 const void *userdigest,
5743 size_t userdigest_size,
5744 unsigned int nonce_timeout,
5745 uint32_t max_nc,
5746 enum MHD_DigestAuthMultiQOP mqop,
5747 enum MHD_DigestAuthMultiAlgo3 malgo3);
5748
5749
5814 const char *realm,
5815 const char *opaque,
5816 const char *domain,
5817 struct MHD_Response *response,
5818 int signal_stale,
5819 enum MHD_DigestAuthMultiQOP mqop,
5820 enum MHD_DigestAuthMultiAlgo3 algo,
5821 int userhash_support,
5822 int prefer_utf8);
5823
5824
5832#define MHD_INVALID_NONCE -1
5833
5834
5850_MHD_EXTERN char *
5851MHD_digest_auth_get_username (struct MHD_Connection *connection);
5852
5853
5878
5879
5896_MHD_EXTERN int
5897MHD_digest_auth_check2 (struct MHD_Connection *connection,
5898 const char *realm,
5899 const char *username,
5900 const char *password,
5901 unsigned int nonce_timeout,
5902 enum MHD_DigestAuthAlgorithm algo);
5903
5904
5923_MHD_EXTERN int
5924MHD_digest_auth_check (struct MHD_Connection *connection,
5925 const char *realm,
5926 const char *username,
5927 const char *password,
5928 unsigned int nonce_timeout);
5929
5930
5953_MHD_EXTERN int
5955 const char *realm,
5956 const char *username,
5957 const uint8_t *digest,
5958 size_t digest_size,
5959 unsigned int nonce_timeout,
5960 enum MHD_DigestAuthAlgorithm algo);
5961
5962
5982_MHD_EXTERN int
5984 const char *realm,
5985 const char *username,
5986 const uint8_t digest[MHD_MD5_DIGEST_SIZE],
5987 unsigned int nonce_timeout);
5988
5989
6012 const char *realm,
6013 const char *opaque,
6014 struct MHD_Response *response,
6015 int signal_stale,
6016 enum MHD_DigestAuthAlgorithm algo);
6017
6018
6041 const char *realm,
6042 const char *opaque,
6043 struct MHD_Response *response,
6044 int signal_stale);
6045
6046
6047/* ********************* Basic Authentication functions *************** */
6048
6049
6063{
6070
6075
6082
6088};
6089
6104
6133 const char *realm,
6134 int prefer_utf8,
6135 struct MHD_Response *response);
6136
6147_MHD_EXTERN char *
6149 char **password);
6150
6151
6167 const char *realm,
6168 struct MHD_Response *response);
6169
6170/* ********************** generic query functions ********************** */
6171
6172
6185_MHD_EXTERN const union MHD_ConnectionInfo *
6186MHD_get_connection_info (struct MHD_Connection *connection,
6187 enum MHD_ConnectionInfoType info_type,
6188 ...);
6189
6190
6210
6211
6222MHD_set_connection_option (struct MHD_Connection *connection,
6223 enum MHD_CONNECTION_OPTION option,
6224 ...);
6225
6226
6231{
6236 size_t key_size;
6237
6243
6248
6252 uint16_t port;
6253
6258
6262 unsigned int num_connections;
6263
6271};
6272
6273
6286_MHD_EXTERN const union MHD_DaemonInfo *
6287MHD_get_daemon_info (struct MHD_Daemon *daemon,
6288 enum MHD_DaemonInfoType info_type,
6289 ...);
6290
6291
6298_MHD_EXTERN const char *
6299MHD_get_version (void);
6300
6301
6310_MHD_EXTERN uint32_t
6311MHD_get_version_bin (void);
6312
6313
6319{
6325
6335
6341
6347
6355
6361
6368
6375
6381
6388
6395
6403
6411
6418
6428
6434
6441
6454
6460
6467
6474
6479
6485
6493
6502
6511
6520
6529
6537
6545
6553
6567
6575
6585
6586#define MHD_FEATURE_HTTPS_COOKIE_PARSING _MHD_DEPR_IN_MACRO ( \
6587 "Value MHD_FEATURE_HTTPS_COOKIE_PARSING is deprecated, use MHD_FEATURE_COOKIE_PARSING" \
6588 ) MHD_FEATURE_COOKIE_PARSING
6589
6603
6604
6606
6607#endif
_MHD_EXTERN enum MHD_Result MHD_digest_auth_calc_userdigest(enum MHD_DigestAuthAlgo3 algo3, const char *username, const char *realm, const char *password, void *userdigest_bin, size_t bin_buf_size)
_MHD_EXTERN enum MHD_Result MHD_queue_auth_fail_response(struct MHD_Connection *connection, const char *realm, const char *opaque, struct MHD_Response *response, int signal_stale)
_MHD_EXTERN int MHD_digest_auth_check2(struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout, enum MHD_DigestAuthAlgorithm algo)
_MHD_EXTERN enum MHD_Result MHD_queue_basic_auth_fail_response(struct MHD_Connection *connection, const char *realm, struct MHD_Response *response)
Definition basicauth.c:313
_MHD_EXTERN enum MHD_Result MHD_queue_auth_required_response3(struct MHD_Connection *connection, const char *realm, const char *opaque, const char *domain, struct MHD_Response *response, int signal_stale, enum MHD_DigestAuthMultiQOP mqop, enum MHD_DigestAuthMultiAlgo3 algo, int userhash_support, int prefer_utf8)
_MHD_EXTERN int MHD_digest_auth_check_digest2(struct MHD_Connection *connection, const char *realm, const char *username, const uint8_t *digest, size_t digest_size, unsigned int nonce_timeout, enum MHD_DigestAuthAlgorithm algo)
_MHD_EXTERN enum MHD_Result MHD_digest_auth_calc_userhash_hex(enum MHD_DigestAuthAlgo3 algo3, const char *username, const char *realm, char *userhash_hex, size_t hex_buf_size)
_MHD_EXTERN enum MHD_Result MHD_queue_basic_auth_required_response3(struct MHD_Connection *connection, const char *realm, int prefer_utf8, struct MHD_Response *response)
Definition basicauth.c:223
_MHD_EXTERN enum MHD_DigestAuthResult MHD_digest_auth_check_digest3(struct MHD_Connection *connection, const char *realm, const char *username, const void *userdigest, size_t userdigest_size, unsigned int nonce_timeout, uint32_t max_nc, enum MHD_DigestAuthMultiQOP mqop, enum MHD_DigestAuthMultiAlgo3 malgo3)
_MHD_EXTERN char * MHD_basic_auth_get_username_password(struct MHD_Connection *connection, char **password)
Definition basicauth.c:137
_MHD_EXTERN enum MHD_Result MHD_queue_auth_fail_response2(struct MHD_Connection *connection, const char *realm, const char *opaque, struct MHD_Response *response, int signal_stale, enum MHD_DigestAuthAlgorithm algo)
_MHD_EXTERN struct MHD_DigestAuthInfo * MHD_digest_auth_get_request_info3(struct MHD_Connection *connection)
_MHD_EXTERN size_t MHD_digest_get_hash_size(enum MHD_DigestAuthAlgo3 algo3)
Definition digestauth.c:296
_MHD_EXTERN int MHD_digest_auth_check_digest(struct MHD_Connection *connection, const char *realm, const char *username, const uint8_t digest[MHD_MD5_DIGEST_SIZE], unsigned int nonce_timeout)
_MHD_EXTERN char * MHD_digest_auth_get_username(struct MHD_Connection *connection)
_MHD_EXTERN int MHD_digest_auth_check(struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout)
_MHD_EXTERN enum MHD_DigestAuthResult MHD_digest_auth_check3(struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout, uint32_t max_nc, enum MHD_DigestAuthMultiQOP mqop, enum MHD_DigestAuthMultiAlgo3 malgo3)
_MHD_EXTERN struct MHD_BasicAuthInfo * MHD_basic_auth_get_username_password3(struct MHD_Connection *connection)
Definition basicauth.c:49
_MHD_EXTERN enum MHD_Result MHD_digest_auth_calc_userhash(enum MHD_DigestAuthAlgo3 algo3, const char *username, const char *realm, void *userhash_bin, size_t bin_buf_size)
_MHD_EXTERN struct MHD_DigestAuthUsernameInfo * MHD_digest_auth_get_username3(struct MHD_Connection *connection)
#define MHD_MD5_DIGEST_SIZE
_MHD_EXTERN int MHD_get_timeout_i(struct MHD_Daemon *daemon)
_MHD_EXTERN int64_t MHD_get_timeout64s(struct MHD_Daemon *daemon)
#define MHD_run_from_select(d, r, w, e)
_MHD_EXTERN void MHD_stop_daemon(struct MHD_Daemon *daemon)
Definition daemon.c:9415
_MHD_EXTERN struct MHD_Daemon * MHD_start_daemon_va(unsigned int flags, uint16_t port, MHD_AcceptPolicyCallback apc, void *apc_cls, MHD_AccessHandlerCallback dh, void *dh_cls, va_list ap)
Definition daemon.c:7801
_MHD_EXTERN enum MHD_Result MHD_run(struct MHD_Daemon *daemon)
Definition daemon.c:5938
_MHD_EXTERN enum MHD_Result MHD_get_fdset2(struct MHD_Daemon *daemon, fd_set *read_fd_set, fd_set *write_fd_set, fd_set *except_fd_set, MHD_socket *max_fd, unsigned int fd_setsize)
Definition daemon.c:1227
#define MHD_get_fdset(daemon, read_fd_set, write_fd_set, except_fd_set, max_fd)
_MHD_EXTERN enum MHD_Result MHD_get_timeout(struct MHD_Daemon *daemon, MHD_UNSIGNED_LONG_LONG *timeout)
Definition daemon.c:4252
_MHD_EXTERN enum MHD_Result MHD_get_timeout64(struct MHD_Daemon *daemon, uint64_t *timeout)
Definition daemon.c:4306
_MHD_EXTERN enum MHD_Result MHD_run_from_select2(struct MHD_Daemon *daemon, const fd_set *read_fd_set, const fd_set *write_fd_set, const fd_set *except_fd_set, unsigned int fd_setsize)
Definition daemon.c:4746
_MHD_EXTERN struct MHD_Daemon * MHD_start_daemon(unsigned int flags, uint16_t port, MHD_AcceptPolicyCallback apc, void *apc_cls, MHD_AccessHandlerCallback dh, void *dh_cls,...)
Definition daemon.c:6217
_MHD_EXTERN enum MHD_Result MHD_run_wait(struct MHD_Daemon *daemon, int32_t millisec)
Definition daemon.c:5988
void(* MHD_PanicCallback)(void *cls, const char *file, unsigned int line, const char *reason)
_MHD_EXTERN void MHD_set_panic_func(MHD_PanicCallback cb, void *cls)
Definition mhd_panic.c:94
void(* MHD_LogCallback)(void *cls, const char *fm, va_list ap)
MHD_ConnectionNotificationCode
_MHD_EXTERN enum MHD_Result MHD_destroy_post_processor(struct MHD_PostProcessor *pp)
_MHD_EXTERN enum MHD_Result MHD_set_connection_value(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key, const char *value)
enum MHD_Result(* MHD_KeyValueIterator)(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
_MHD_EXTERN const char * MHD_lookup_connection_value(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key)
_MHD_EXTERN enum MHD_Result MHD_post_process(struct MHD_PostProcessor *pp, const char *post_data, size_t post_data_len)
enum MHD_Result(* MHD_KeyValueIteratorN)(void *cls, enum MHD_ValueKind kind, const char *key, size_t key_size, const char *value, size_t value_size)
_MHD_EXTERN int MHD_get_connection_values_n(struct MHD_Connection *connection, enum MHD_ValueKind kind, MHD_KeyValueIteratorN iterator, void *iterator_cls)
Definition connection.c:913
_MHD_EXTERN int MHD_get_connection_values(struct MHD_Connection *connection, enum MHD_ValueKind kind, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition connection.c:874
void(* MHD_RequestCompletedCallback)(void *cls, struct MHD_Connection *connection, void **req_cls, enum MHD_RequestTerminationCode toe)
_MHD_EXTERN struct MHD_PostProcessor * MHD_create_post_processor(struct MHD_Connection *connection, size_t buffer_size, MHD_PostDataIterator iter, void *iter_cls)
_MHD_EXTERN enum MHD_Result MHD_get_connection_URI_path_n(struct MHD_Connection *connection, const char **uri, size_t *uri_size)
Definition connection.c:836
_MHD_EXTERN enum MHD_Result MHD_set_connection_value_n(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key, size_t key_size, const char *value, size_t value_size)
void(* MHD_NotifyConnectionCallback)(void *cls, struct MHD_Connection *connection, void **socket_context, enum MHD_ConnectionNotificationCode toe)
MHD_ConnectionInfoType
_MHD_EXTERN enum MHD_Result MHD_lookup_connection_value_n(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key, size_t key_size, const char **value_ptr, size_t *value_size_ptr)
#define _MHD_FIXED_ENUM
Definition microhttpd.h:154
MHD_RequestTerminationCode
@ MHD_CONNECTION_NOTIFY_STARTED
@ MHD_CONNECTION_NOTIFY_CLOSED
@ MHD_CONNECTION_INFO_CONNECTION_TIMEOUT
@ MHD_CONNECTION_INFO_SOCKET_CONTEXT
@ MHD_CONNECTION_INFO_GNUTLS_SESSION
@ MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE
@ MHD_CONNECTION_INFO_CIPHER_ALGO
@ MHD_CONNECTION_INFO_CONNECTION_SUSPENDED
@ MHD_CONNECTION_INFO_CLIENT_ADDRESS
@ MHD_CONNECTION_INFO_DAEMON
@ MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT
@ MHD_CONNECTION_INFO_HTTP_STATUS
@ MHD_CONNECTION_INFO_CONNECTION_FD
@ MHD_CONNECTION_INFO_PROTOCOL
@ MHD_REQUEST_TERMINATED_TIMEOUT_REACHED
@ MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN
@ MHD_REQUEST_TERMINATED_COMPLETED_OK
@ MHD_REQUEST_TERMINATED_WITH_ERROR
@ MHD_REQUEST_TERMINATED_READ_ERROR
@ MHD_REQUEST_TERMINATED_CLIENT_ABORT
_MHD_EXTERN int MHD_get_response_headers(struct MHD_Response *response, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition response.c:828
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_with_free_callback(size_t size, void *buffer, MHD_ContentReaderFreeCallback crfc)
Definition response.c:1598
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_iovec(const struct MHD_IoVec *iov, unsigned int iovcnt, MHD_ContentReaderFreeCallback free_cb, void *cls)
Definition response.c:1687
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_data(size_t size, void *data, int must_free, int must_copy)
Definition response.c:1434
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_copy(size_t size, const void *buffer)
Definition response.c:1545
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer(size_t size, void *buffer, enum MHD_ResponseMemoryMode mode)
Definition response.c:1470
_MHD_EXTERN enum MHD_Result MHD_del_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition response.c:746
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_pipe(int fd)
Definition response.c:1340
_MHD_EXTERN enum MHD_Result MHD_queue_response(struct MHD_Connection *connection, unsigned int status_code, struct MHD_Response *response)
_MHD_EXTERN void MHD_destroy_response(struct MHD_Response *response)
Definition response.c:2294
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd(size_t size, int fd)
Definition response.c:1375
_MHD_EXTERN struct MHD_Response * MHD_create_response_empty(enum MHD_ResponseFlags flags)
Definition response.c:1831
MHD_ResponseMemoryMode
_MHD_EXTERN const char * MHD_get_response_header(struct MHD_Response *response, const char *key)
Definition response.c:860
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_static(size_t size, const void *buffer)
Definition response.c:1512
void(* MHD_ContentReaderFreeCallback)(void *cls)
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd_at_offset64(uint64_t size, int fd, uint64_t offset)
Definition response.c:1289
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_with_free_callback_cls(size_t size, const void *buffer, MHD_ContentReaderFreeCallback crfc, void *crfc_cls)
Definition response.c:1632
_MHD_EXTERN enum MHD_Result MHD_add_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition response.c:625
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_callback(uint64_t size, size_t block_size, MHD_ContentReaderCallback crc, void *crc_cls, MHD_ContentReaderFreeCallback crfc)
Definition response.c:992
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd64(uint64_t size, int fd)
Definition response.c:1405
_MHD_EXTERN enum MHD_Result MHD_add_response_footer(struct MHD_Response *response, const char *footer, const char *content)
Definition response.c:720
@ MHD_RESPMEM_MUST_FREE
@ MHD_RESPMEM_PERSISTENT
@ MHD_RESPMEM_MUST_COPY
_MHD_EXTERN enum MHD_Result MHD_add_connection(struct MHD_Daemon *daemon, MHD_socket client_socket, const struct sockaddr *addr, socklen_t addrlen)
Definition daemon.c:3682
_MHD_EXTERN enum MHD_Result MHD_is_feature_supported(enum MHD_FEATURE feature)
Definition daemon.c:9722
_MHD_EXTERN enum MHD_Result MHD_set_connection_option(struct MHD_Connection *connection, enum MHD_CONNECTION_OPTION option,...)
_MHD_EXTERN MHD_socket MHD_quiesce_daemon(struct MHD_Daemon *daemon)
Definition daemon.c:6262
_MHD_EXTERN const union MHD_DaemonInfo * MHD_get_daemon_info(struct MHD_Daemon *daemon, enum MHD_DaemonInfoType info_type,...)
Definition daemon.c:9605
_MHD_EXTERN const union MHD_ConnectionInfo * MHD_get_connection_info(struct MHD_Connection *connection, enum MHD_ConnectionInfoType info_type,...)
_MHD_EXTERN uint32_t MHD_get_version_bin(void)
Definition daemon.c:9704
_MHD_EXTERN const char * MHD_get_version(void)
Definition daemon.c:9673
_MHD_EXTERN void MHD_free(void *ptr)
Definition daemon.c:213
int MHD_socket
Definition microhttpd.h:206
MHD_FEATURE
@ MHD_FEATURE_POSTPROCESSOR
@ MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
@ MHD_FEATURE_DIGEST_AUTH_USERHASH
@ MHD_FEATURE_THREADS
@ MHD_FEATURE_DIGEST_AUTH_AUTH_INT
@ MHD_FEATURE_DIGEST_AUTH_SHA256
@ MHD_FEATURE_SENDFILE
@ MHD_FEATURE_AUTODETECT_BIND_PORT
@ MHD_FEATURE_LARGE_FILE
@ MHD_FEATURE_DIGEST_AUTH_SHA512_256
@ MHD_FEATURE_EXTERN_HASH
@ MHD_FEATURE_HTTPS_CERT_CALLBACK
@ MHD_THREAD_NAMES
@ MHD_FEATURE_BASIC_AUTH
@ MHD_FEATURE_DIGEST_AUTH
@ MHD_FEATURE_IPv6
@ MHD_FEATURE_POLL
@ MHD_FEATURE_THREAD_NAMES
@ MHD_FEATURE_DEBUG_BUILD
@ MHD_FEATURE_FLEXIBLE_FD_SETSIZE
@ MHD_FEATURE_EPOLL
@ MHD_FEATURE_TLS
@ MHD_FEATURE_HTTPS_KEY_PASSWORD
@ MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
@ MHD_FEATURE_RESPONSES_SHARED_FD
@ MHD_FEATURE_MESSAGES
@ MHD_FEATURE_SSL
@ MHD_FEATURE_IPv6_ONLY
@ MHD_FEATURE_DIGEST_AUTH_ALGO_SESSION
@ MHD_FEATURE_COOKIE_PARSING
@ MHD_FEATURE_DIGEST_AUTH_MD5
@ MHD_FEATURE_UPGRADE
@ MHD_FEATURE_SOCKETPAIR
@ MHD_FEATURE_TCP_FASTOPEN
@ MHD_FEATURE_DIGEST_AUTH_RFC2069
@ MHD_FEATURE_HTTPS_CERT_CALLBACK2
MHD_OPTION
MHD options.
@ MHD_OPTION_HTTPS_PRIORITIES_APPEND
@ MHD_OPTION_CONNECTION_MEMORY_INCREMENT
@ MHD_OPTION_HTTPS_CRED_TYPE
@ MHD_OPTION_URI_LOG_CALLBACK
@ MHD_OPTION_HTTPS_CERT_CALLBACK2
@ MHD_OPTION_DIGEST_AUTH_DEFAULT_NONCE_TIMEOUT
@ MHD_OPTION_CLIENT_DISCIPLINE_LVL
@ MHD_OPTION_SOCK_ADDR_LEN
@ MHD_OPTION_APP_FD_SETSIZE
@ MHD_OPTION_SIGPIPE_HANDLED_BY_APP
@ MHD_OPTION_UNESCAPE_CALLBACK
@ MHD_OPTION_EXTERNAL_LOGGER
@ MHD_OPTION_TLS_NO_ALPN
@ MHD_OPTION_LISTEN_BACKLOG_SIZE
@ MHD_OPTION_HTTPS_PRIORITIES
@ MHD_OPTION_HTTPS_MEM_DHPARAMS
@ MHD_OPTION_NOTIFY_CONNECTION
@ MHD_OPTION_LISTENING_ADDRESS_REUSE
@ MHD_OPTION_THREAD_POOL_SIZE
@ MHD_OPTION_CONNECTION_LIMIT
@ MHD_OPTION_PER_IP_CONNECTION_LIMIT
@ MHD_OPTION_DIGEST_AUTH_DEFAULT_MAX_NC
@ MHD_OPTION_TCP_FASTOPEN_QUEUE_SIZE
@ MHD_OPTION_HTTPS_MEM_CERT
@ MHD_OPTION_SERVER_INSANITY
@ MHD_OPTION_LISTEN_SOCKET
@ MHD_OPTION_HTTPS_MEM_KEY
@ MHD_OPTION_DIGEST_AUTH_RANDOM
@ MHD_OPTION_HTTPS_KEY_PASSWORD
@ MHD_OPTION_NONCE_NC_SIZE
@ MHD_OPTION_ALLOW_BIN_ZERO_IN_URI_PATH
@ MHD_OPTION_CONNECTION_MEMORY_LIMIT
@ MHD_OPTION_THREAD_STACK_SIZE
@ MHD_OPTION_DIGEST_AUTH_RANDOM_COPY
@ MHD_OPTION_ARRAY
@ MHD_OPTION_STRICT_FOR_CLIENT
@ MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE
@ MHD_OPTION_SOCK_ADDR
@ MHD_OPTION_CONNECTION_TIMEOUT
@ MHD_OPTION_GNUTLS_PSK_CRED_HANDLER
@ MHD_OPTION_END
@ MHD_OPTION_HTTPS_MEM_TRUST
@ MHD_OPTION_HTTPS_CERT_CALLBACK
@ MHD_OPTION_NOTIFY_COMPLETED
#define MHD_RESPONSE_HEADER_KIND
MHD_DisableSanityCheck
@ MHD_DSC_SANE
MHD_DigestAuthResult
@ MHD_DAUTH_NONCE_WRONG
@ MHD_DAUTH_RESPONSE_WRONG
@ MHD_DAUTH_WRONG_HEADER
@ MHD_DAUTH_NONCE_STALE
@ MHD_DAUTH_ERROR
@ MHD_DAUTH_WRONG_QOP
@ MHD_DAUTH_OK
@ MHD_DAUTH_NONCE_OTHER_COND
@ MHD_DAUTH_WRONG_REALM
@ MHD_DAUTH_WRONG_URI
@ MHD_DAUTH_WRONG_ALGO
@ MHD_DAUTH_TOO_LARGE
@ MHD_DAUTH_WRONG_USERNAME
MHD_Result
Definition microhttpd.h:163
@ MHD_YES
Definition microhttpd.h:172
@ MHD_NO
Definition microhttpd.h:167
#define MHD_DIGEST_AUTH_ALGO3_SESSION
int off_t offset
#define _MHD_EXTERN
Definition microhttpd.h:196
#define MHD_DIGEST_AUTH_ALGO3_NON_SESSION
MHD_DigestAuthMultiQOP
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH_INT
@ MHD_DIGEST_AUTH_MULT_QOP_INVALID
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH
@ MHD_DIGEST_AUTH_MULT_QOP_ANY_NON_INT
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH_ANY
@ MHD_DIGEST_AUTH_MULT_QOP_NONE
#define _MHD_FLAGS_ENUM
Definition microhttpd.h:151
MHD_DigestBaseAlgo
@ MHD_DIGEST_BASE_ALGO_INVALID
@ MHD_DIGEST_BASE_ALGO_SHA256
@ MHD_DIGEST_BASE_ALGO_SHA512_256
@ MHD_DIGEST_BASE_ALGO_MD5
enum MHD_Result(* MHD_AcceptPolicyCallback)(void *cls, const struct sockaddr *addr, socklen_t addrlen)
void int int must_copy
#define MHD_create_response_from_fd_at_offset(size, fd, offset)
#define MHD_UNSIGNED_LONG_LONG
Definition microhttpd.h:311
_MHD_EXTERN struct MHD_Response * MHD_create_response_for_upgrade(MHD_UpgradeHandler upgrade_handler, void *upgrade_handler_cls)
#define _MHD_DEPR_MACRO(msg)
Definition microhttpd.h:267
enum MHD_Result(* MHD_AccessHandlerCallback)(void *cls, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **req_cls)
void int must_free
MHD_DigestAuthAlgo3
@ MHD_DIGEST_AUTH_ALGO3_MD5_SESSION
@ MHD_DIGEST_AUTH_ALGO3_MD5
@ MHD_DIGEST_AUTH_ALGO3_SHA256
@ MHD_DIGEST_AUTH_ALGO3_SHA512_256_SESSION
@ MHD_DIGEST_AUTH_ALGO3_INVALID
@ MHD_DIGEST_AUTH_ALGO3_SHA256_SESSION
@ MHD_DIGEST_AUTH_ALGO3_SHA512_256
MHD_DigestAuthQOP
@ MHD_DIGEST_AUTH_QOP_AUTH
@ MHD_DIGEST_AUTH_QOP_INVALID
@ MHD_DIGEST_AUTH_QOP_NONE
@ MHD_DIGEST_AUTH_QOP_AUTH_INT
int fd
_MHD_EXTERN void MHD_resume_connection(struct MHD_Connection *connection)
Definition daemon.c:3445
void * data
_MHD_EXTERN size_t MHD_get_reason_phrase_len_for(unsigned int code)
_MHD_EXTERN size_t MHD_http_unescape(char *val)
Definition internal.c:148
ssize_t(* MHD_ContentReaderCallback)(void *cls, uint64_t pos, char *buf, size_t max)
#define _MHD_FIXED_FLAGS_ENUM
Definition microhttpd.h:157
#define _MHD_DEPR_FUNC(msg)
Definition microhttpd.h:298
enum MHD_Result(* MHD_PostDataIterator)(void *cls, enum MHD_ValueKind kind, const char *key, const char *filename, const char *content_type, const char *transfer_encoding, const char *data, uint64_t off, size_t size)
_MHD_EXTERN const char * MHD_get_reason_phrase_for(unsigned int code)
MHD_UpgradeAction
@ MHD_UPGRADE_ACTION_CORK_ON
@ MHD_UPGRADE_ACTION_CLOSE
@ MHD_UPGRADE_ACTION_CORK_OFF
MHD_DigestAuthUsernameType
@ MHD_DIGEST_AUTH_UNAME_TYPE_STANDARD
@ MHD_DIGEST_AUTH_UNAME_TYPE_MISSING
@ MHD_DIGEST_AUTH_UNAME_TYPE_INVALID
@ MHD_DIGEST_AUTH_UNAME_TYPE_EXTENDED
@ MHD_DIGEST_AUTH_UNAME_TYPE_USERHASH
MHD_ValueKind
@ MHD_POSTDATA_KIND
@ MHD_FOOTER_KIND
@ MHD_COOKIE_KIND
@ MHD_HEADER_KIND
@ MHD_GET_ARGUMENT_KIND
void(* MHD_UpgradeHandler)(void *cls, struct MHD_Connection *connection, void *req_cls, const char *extra_in, size_t extra_in_size, MHD_socket sock, struct MHD_UpgradeResponseHandle *urh)
int(* MHD_PskServerCredentialsCallback)(void *cls, const struct MHD_Connection *connection, const char *username, void **psk, size_t *psk_size)
#define MHD_C_DECLRATIONS_START_HERE_
Definition microhttpd.h:84
MHD_DigestAuthMultiAlgo3
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256_ANY
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY_NON_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256_ANY
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_ANY
@ MHD_DIGEST_AUTH_MULT_ALGO3_INVALID
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5_ANY
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256_SESSION
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_NON_SESSION
MHD_DaemonInfoType
@ MHD_DAEMON_INFO_MAC_KEY_SIZE
@ MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY
@ MHD_DAEMON_INFO_BIND_PORT
@ MHD_DAEMON_INFO_EPOLL_FD
@ MHD_DAEMON_INFO_FLAGS
@ MHD_DAEMON_INFO_KEY_SIZE
@ MHD_DAEMON_INFO_CURRENT_CONNECTIONS
@ MHD_DAEMON_INFO_LISTEN_FD
#define MHD_C_DECLRATIONS_FINISH_HERE_
Definition microhttpd.h:85
MHD_FLAG
Flags for the struct MHD_Daemon.
@ MHD_USE_EPOLL
@ MHD_ALLOW_SUSPEND_RESUME
@ MHD_USE_TCP_FASTOPEN
@ MHD_USE_THREAD_PER_CONNECTION
@ MHD_USE_EPOLL_INTERNALLY
@ MHD_USE_AUTO
@ MHD_USE_EPOLL_LINUX_ONLY
@ MHD_SUPPRESS_DATE_NO_CLOCK
@ MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT
@ MHD_USE_DEBUG
@ MHD_USE_TURBO
@ MHD_USE_IPv6
@ MHD_USE_SUPPRESS_DATE_NO_CLOCK
@ MHD_USE_SUSPEND_RESUME
@ MHD_USE_DUAL_STACK
@ MHD_USE_POLL
@ MHD_NO_FLAG
@ MHD_USE_POLL_INTERNAL_THREAD
@ MHD_USE_SELECT_INTERNALLY
@ MHD_USE_EPOLL_INTERNAL_THREAD
@ MHD_USE_TLS
@ MHD_USE_PIPE_FOR_SHUTDOWN
@ MHD_USE_AUTO_INTERNAL_THREAD
@ MHD_USE_INSECURE_TLS_EARLY_DATA
@ MHD_USE_SSL
@ MHD_ALLOW_UPGRADE
@ MHD_USE_ERROR_LOG
@ MHD_USE_EPOLL_TURBO
@ MHD_USE_POLL_INTERNALLY
@ MHD_USE_NO_LISTEN_SOCKET
@ MHD_USE_PEDANTIC_CHECKS
@ MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY
@ MHD_USE_INTERNAL_POLLING_THREAD
@ MHD_USE_ITC
@ MHD_USE_NO_THREAD_SAFETY
MHD_ResponseOptions
@ MHD_RO_END
MHD_ResponseFlags
@ MHD_RF_SEND_KEEP_ALIVE_HEADER
@ MHD_RF_HTTP_VERSION_1_0_RESPONSE
@ MHD_RF_HEAD_ONLY_RESPONSE
@ MHD_RF_HTTP_1_0_COMPATIBLE_STRICT
@ MHD_RF_HTTP_1_0_SERVER
@ MHD_RF_INSANITY_HEADER_CONTENT_LENGTH
@ MHD_RF_HTTP_VERSION_1_0_ONLY
@ MHD_RF_NONE
MHD_DigestAuthAlgorithm
@ MHD_DIGEST_ALG_AUTO
@ MHD_DIGEST_ALG_MD5
@ MHD_DIGEST_ALG_SHA256
_MHD_EXTERN enum MHD_Result MHD_set_response_options(struct MHD_Response *response, enum MHD_ResponseFlags flags,...)
Definition response.c:1033
_MHD_EXTERN enum MHD_Result MHD_upgrade_action(struct MHD_UpgradeResponseHandle *urh, enum MHD_UpgradeAction action,...)
_MHD_EXTERN void MHD_suspend_connection(struct MHD_Connection *connection)
Definition daemon.c:3402
MHD_DAuthBindNonce
@ MHD_DAUTH_BIND_NONCE_NONE
@ MHD_DAUTH_BIND_NONCE_URI
@ MHD_DAUTH_BIND_NONCE_URI_PARAMS
@ MHD_DAUTH_BIND_NONCE_REALM
@ MHD_DAUTH_BIND_NONCE_CLIENT_IP
MHD_CONNECTION_OPTION
@ MHD_CONNECTION_OPTION_TIMEOUT
void * socket_context
Definition internal.h:1395
uint16_t port
Definition internal.h:2086
void * apc_cls
Definition internal.h:2032
MHD_AcceptPolicyCallback apc
Definition internal.h:2027
uint8_t * userhash_bin
enum MHD_DigestAuthQOP qop
enum MHD_DigestAuthUsernameType uname_type
enum MHD_DigestAuthAlgo3 algo3
enum MHD_DigestAuthAlgo3 algo3
enum MHD_DigestAuthUsernameType uname_type
const void * iov_base
size_t iov_len
enum MHD_OPTION option
struct MHD_Connection * connection
MHD_ContentReaderFreeCallback crfc
Definition internal.h:507
MHD_ContentReaderCallback crc
Definition internal.h:501
enum MHD_ResponseFlags flags
Definition internal.h:573
void * crc_cls
Definition internal.h:495
unsigned int connection_timeout
struct MHD_Daemon * daemon
unsigned int http_status
struct sockaddr * client_addr
MHD_socket connect_fd
enum MHD_FLAG flags
size_t mac_key_size
unsigned int num_connections
MHD_socket listen_fd