GNU libmicrohttpd  1.0.1
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 #ifdef __cplusplus
84 extern "C"
85 {
86 #if 0 /* keep Emacsens' auto-indent happy */
87 }
88 #endif
89 #endif
90 
91 
99 #define MHD_VERSION 0x01000100
100 
101 /* If generic headers don't work on your platform, include headers
102  which define 'va_list', 'size_t', 'ssize_t', 'intptr_t', 'off_t',
103  'uint8_t', 'uint16_t', 'int32_t', 'uint32_t', 'int64_t', 'uint64_t',
104  'struct sockaddr', 'socklen_t', 'fd_set' and "#define MHD_PLATFORM_H" before
105  including "microhttpd.h". Then the following "standard"
106  includes won't be used (which might be a good idea, especially
107  on platforms where they do not exist).
108  */
109 #ifndef MHD_PLATFORM_H
110 #if defined(_WIN32) && ! defined(__CYGWIN__) && \
111  ! defined(_CRT_DECLARE_NONSTDC_NAMES)
112 /* Declare POSIX-compatible names */
113 #define _CRT_DECLARE_NONSTDC_NAMES 1
114 #endif /* _WIN32 && ! __CYGWIN__ && ! _CRT_DECLARE_NONSTDC_NAMES */
115 #include <stdarg.h>
116 #include <stdint.h>
117 #include <sys/types.h>
118 #if ! defined(_WIN32) || defined(__CYGWIN__)
119 #include <unistd.h>
120 #include <sys/time.h>
121 #include <sys/socket.h>
122 #else /* _WIN32 && ! __CYGWIN__ */
123 #include <ws2tcpip.h>
124 #if defined(_MSC_FULL_VER) && ! defined(_SSIZE_T_DEFINED)
125 #define _SSIZE_T_DEFINED
126 typedef intptr_t ssize_t;
127 #endif /* !_SSIZE_T_DEFINED */
128 #endif /* _WIN32 && ! __CYGWIN__ */
129 #endif
130 
131 #if defined(__CYGWIN__) && ! defined(_SYS_TYPES_FD_SET)
132 /* Do not define __USE_W32_SOCKETS under Cygwin! */
133 #error Cygwin with winsock fd_set is not supported
134 #endif
135 
136 #ifdef __has_attribute
137 #if __has_attribute (flag_enum)
138 #define _MHD_FLAGS_ENUM __attribute__((flag_enum))
139 #endif /* flag_enum */
140 #if __has_attribute (enum_extensibility)
141 #define _MHD_FIXED_ENUM __attribute__((enum_extensibility (closed)))
142 #endif /* enum_extensibility */
143 #endif /* __has_attribute */
144 
145 #ifndef _MHD_FLAGS_ENUM
146 #define _MHD_FLAGS_ENUM
147 #endif /* _MHD_FLAGS_ENUM */
148 #ifndef _MHD_FIXED_ENUM
149 #define _MHD_FIXED_ENUM
150 #endif /* _MHD_FIXED_ENUM */
151 
152 #define _MHD_FIXED_FLAGS_ENUM _MHD_FIXED_ENUM _MHD_FLAGS_ENUM
153 
158 {
162  MHD_NO = 0,
163 
167  MHD_YES = 1
168 
170 
175 #ifdef UINT64_MAX
176 #define MHD_SIZE_UNKNOWN UINT64_MAX
177 #else
178 #define MHD_SIZE_UNKNOWN ((uint64_t) -1LL)
179 #endif
180 
181 #define MHD_CONTENT_READER_END_OF_STREAM ((ssize_t) -1)
182 #define MHD_CONTENT_READER_END_WITH_ERROR ((ssize_t) -2)
183 
184 #ifndef _MHD_EXTERN
185 #if defined(_WIN32) && defined(MHD_W32LIB)
186 #define _MHD_EXTERN extern
187 #elif defined(_WIN32) && defined(MHD_W32DLL)
188 /* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */
189 #define _MHD_EXTERN __declspec(dllimport)
190 #else
191 #define _MHD_EXTERN extern
192 #endif
193 #endif
194 
195 #ifndef MHD_SOCKET_DEFINED
199 #if ! defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
200 #define MHD_POSIX_SOCKETS 1
201 typedef int MHD_socket;
202 #define MHD_INVALID_SOCKET (-1)
203 #else /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
204 #define MHD_WINSOCK_SOCKETS 1
205 #include <winsock2.h>
206 typedef SOCKET MHD_socket;
207 #define MHD_INVALID_SOCKET (INVALID_SOCKET)
208 #endif /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
209 #define MHD_SOCKET_DEFINED 1
210 #endif /* MHD_SOCKET_DEFINED */
211 
215 #ifdef MHD_NO_DEPRECATION
216 #define _MHD_DEPR_MACRO(msg)
217 #define _MHD_NO_DEPR_IN_MACRO 1
218 #define _MHD_DEPR_IN_MACRO(msg)
219 #define _MHD_NO_DEPR_FUNC 1
220 #define _MHD_DEPR_FUNC(msg)
221 #endif /* MHD_NO_DEPRECATION */
222 
223 #ifndef _MHD_DEPR_MACRO
224 #if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1500
225 /* VS 2008 or later */
226 /* Stringify macros */
227 #define _MHD_INSTRMACRO(a) #a
228 #define _MHD_STRMACRO(a) _MHD_INSTRMACRO (a)
229 /* deprecation message */
230 #define _MHD_DEPR_MACRO(msg) \
231  __pragma(message (__FILE__ "(" _MHD_STRMACRO ( __LINE__) "): warning: " msg))
232 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
233 #elif defined(__clang__) || defined(__GNUC_PATCHLEVEL__)
234 /* clang or GCC since 3.0 */
235 #define _MHD_GCC_PRAG(x) _Pragma(#x)
236 #if (defined(__clang__) && \
237  (__clang_major__ + 0 >= 5 || \
238  (! defined(__apple_build_version__) && \
239  (__clang_major__ + 0 > 3 || \
240  (__clang_major__ + 0 == 3 && __clang_minor__ >= 3))))) || \
241  __GNUC__ + 0 > 4 || (__GNUC__ + 0 == 4 && __GNUC_MINOR__ + 0 >= 8)
242 /* clang >= 3.3 (or XCode's clang >= 5.0) or
243  GCC >= 4.8 */
244 #define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (GCC warning msg)
245 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
246 #else /* older clang or GCC */
247 /* clang < 3.3, XCode's clang < 5.0, 3.0 <= GCC < 4.8 */
248 #define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (message msg)
249 #if (defined(__clang__) && \
250  (__clang_major__ + 0 > 2 || \
251  (__clang_major__ + 0 == 2 && __clang_minor__ >= 9))) /* clang >= 2.9 */
252 /* clang handles inline pragmas better than GCC */
253 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
254 #endif /* clang >= 2.9 */
255 #endif /* older clang or GCC */
256 /* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
257 #endif /* clang || GCC >= 3.0 */
258 #endif /* !_MHD_DEPR_MACRO */
259 
260 #ifndef _MHD_DEPR_MACRO
261 #define _MHD_DEPR_MACRO(msg)
262 #endif /* !_MHD_DEPR_MACRO */
263 
264 #ifndef _MHD_DEPR_IN_MACRO
265 #define _MHD_NO_DEPR_IN_MACRO 1
266 #define _MHD_DEPR_IN_MACRO(msg)
267 #endif /* !_MHD_DEPR_IN_MACRO */
268 
269 #ifndef _MHD_DEPR_FUNC
270 #if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1400
271 /* VS 2005 or later */
272 #define _MHD_DEPR_FUNC(msg) __declspec(deprecated (msg))
273 #elif defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1310
274 /* VS .NET 2003 deprecation does not support custom messages */
275 #define _MHD_DEPR_FUNC(msg) __declspec(deprecated)
276 #elif (__GNUC__ + 0 >= 5) || (defined(__clang__) && \
277  (__clang_major__ + 0 > 2 || \
278  (__clang_major__ + 0 == 2 && __clang_minor__ >= 9)))
279 /* GCC >= 5.0 or clang >= 2.9 */
280 #define _MHD_DEPR_FUNC(msg) __attribute__((deprecated (msg)))
281 #elif defined(__clang__) || __GNUC__ + 0 > 3 || \
282  (__GNUC__ + 0 == 3 && __GNUC_MINOR__ + 0 >= 1)
283 /* 3.1 <= GCC < 5.0 or clang < 2.9 */
284 /* old GCC-style deprecation does not support custom messages */
285 #define _MHD_DEPR_FUNC(msg) __attribute__((__deprecated__))
286 /* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
287 #endif /* clang < 2.9 || GCC >= 3.1 */
288 #endif /* !_MHD_DEPR_FUNC */
289 
290 #ifndef _MHD_DEPR_FUNC
291 #define _MHD_NO_DEPR_FUNC 1
292 #define _MHD_DEPR_FUNC(msg)
293 #endif /* !_MHD_DEPR_FUNC */
294 
300 #ifndef MHD_LONG_LONG
304 #define MHD_LONG_LONG long long
305 #define MHD_UNSIGNED_LONG_LONG unsigned long long
306 #else /* MHD_LONG_LONG */
307 _MHD_DEPR_MACRO ( \
308  "Macro MHD_LONG_LONG is deprecated, use MHD_UNSIGNED_LONG_LONG")
309 #endif
314 #ifndef MHD_LONG_LONG_PRINTF
318 #define MHD_LONG_LONG_PRINTF "ll"
319 #define MHD_UNSIGNED_LONG_LONG_PRINTF "%llu"
320 #else /* MHD_LONG_LONG_PRINTF */
321 _MHD_DEPR_MACRO ( \
322  "Macro MHD_LONG_LONG_PRINTF is deprecated, use MHD_UNSIGNED_LONG_LONG_PRINTF")
323 #endif
324 
325 
334 /* 100 "Continue". RFC9110, Section 15.2.1. */
335 #define MHD_HTTP_CONTINUE 100
336 /* 101 "Switching Protocols". RFC9110, Section 15.2.2. */
337 #define MHD_HTTP_SWITCHING_PROTOCOLS 101
338 /* 102 "Processing". RFC2518. */
339 #define MHD_HTTP_PROCESSING 102
340 /* 103 "Early Hints". RFC8297. */
341 #define MHD_HTTP_EARLY_HINTS 103
342 
343 /* 200 "OK". RFC9110, Section 15.3.1. */
344 #define MHD_HTTP_OK 200
345 /* 201 "Created". RFC9110, Section 15.3.2. */
346 #define MHD_HTTP_CREATED 201
347 /* 202 "Accepted". RFC9110, Section 15.3.3. */
348 #define MHD_HTTP_ACCEPTED 202
349 /* 203 "Non-Authoritative Information". RFC9110, Section 15.3.4. */
350 #define MHD_HTTP_NON_AUTHORITATIVE_INFORMATION 203
351 /* 204 "No Content". RFC9110, Section 15.3.5. */
352 #define MHD_HTTP_NO_CONTENT 204
353 /* 205 "Reset Content". RFC9110, Section 15.3.6. */
354 #define MHD_HTTP_RESET_CONTENT 205
355 /* 206 "Partial Content". RFC9110, Section 15.3.7. */
356 #define MHD_HTTP_PARTIAL_CONTENT 206
357 /* 207 "Multi-Status". RFC4918. */
358 #define MHD_HTTP_MULTI_STATUS 207
359 /* 208 "Already Reported". RFC5842. */
360 #define MHD_HTTP_ALREADY_REPORTED 208
361 
362 /* 226 "IM Used". RFC3229. */
363 #define MHD_HTTP_IM_USED 226
364 
365 /* 300 "Multiple Choices". RFC9110, Section 15.4.1. */
366 #define MHD_HTTP_MULTIPLE_CHOICES 300
367 /* 301 "Moved Permanently". RFC9110, Section 15.4.2. */
368 #define MHD_HTTP_MOVED_PERMANENTLY 301
369 /* 302 "Found". RFC9110, Section 15.4.3. */
370 #define MHD_HTTP_FOUND 302
371 /* 303 "See Other". RFC9110, Section 15.4.4. */
372 #define MHD_HTTP_SEE_OTHER 303
373 /* 304 "Not Modified". RFC9110, Section 15.4.5. */
374 #define MHD_HTTP_NOT_MODIFIED 304
375 /* 305 "Use Proxy". RFC9110, Section 15.4.6. */
376 #define MHD_HTTP_USE_PROXY 305
377 /* 306 "Switch Proxy". Not used! RFC9110, Section 15.4.7. */
378 #define MHD_HTTP_SWITCH_PROXY 306
379 /* 307 "Temporary Redirect". RFC9110, Section 15.4.8. */
380 #define MHD_HTTP_TEMPORARY_REDIRECT 307
381 /* 308 "Permanent Redirect". RFC9110, Section 15.4.9. */
382 #define MHD_HTTP_PERMANENT_REDIRECT 308
383 
384 /* 400 "Bad Request". RFC9110, Section 15.5.1. */
385 #define MHD_HTTP_BAD_REQUEST 400
386 /* 401 "Unauthorized". RFC9110, Section 15.5.2. */
387 #define MHD_HTTP_UNAUTHORIZED 401
388 /* 402 "Payment Required". RFC9110, Section 15.5.3. */
389 #define MHD_HTTP_PAYMENT_REQUIRED 402
390 /* 403 "Forbidden". RFC9110, Section 15.5.4. */
391 #define MHD_HTTP_FORBIDDEN 403
392 /* 404 "Not Found". RFC9110, Section 15.5.5. */
393 #define MHD_HTTP_NOT_FOUND 404
394 /* 405 "Method Not Allowed". RFC9110, Section 15.5.6. */
395 #define MHD_HTTP_METHOD_NOT_ALLOWED 405
396 /* 406 "Not Acceptable". RFC9110, Section 15.5.7. */
397 #define MHD_HTTP_NOT_ACCEPTABLE 406
398 /* 407 "Proxy Authentication Required". RFC9110, Section 15.5.8. */
399 #define MHD_HTTP_PROXY_AUTHENTICATION_REQUIRED 407
400 /* 408 "Request Timeout". RFC9110, Section 15.5.9. */
401 #define MHD_HTTP_REQUEST_TIMEOUT 408
402 /* 409 "Conflict". RFC9110, Section 15.5.10. */
403 #define MHD_HTTP_CONFLICT 409
404 /* 410 "Gone". RFC9110, Section 15.5.11. */
405 #define MHD_HTTP_GONE 410
406 /* 411 "Length Required". RFC9110, Section 15.5.12. */
407 #define MHD_HTTP_LENGTH_REQUIRED 411
408 /* 412 "Precondition Failed". RFC9110, Section 15.5.13. */
409 #define MHD_HTTP_PRECONDITION_FAILED 412
410 /* 413 "Content Too Large". RFC9110, Section 15.5.14. */
411 #define MHD_HTTP_CONTENT_TOO_LARGE 413
412 /* 414 "URI Too Long". RFC9110, Section 15.5.15. */
413 #define MHD_HTTP_URI_TOO_LONG 414
414 /* 415 "Unsupported Media Type". RFC9110, Section 15.5.16. */
415 #define MHD_HTTP_UNSUPPORTED_MEDIA_TYPE 415
416 /* 416 "Range Not Satisfiable". RFC9110, Section 15.5.17. */
417 #define MHD_HTTP_RANGE_NOT_SATISFIABLE 416
418 /* 417 "Expectation Failed". RFC9110, Section 15.5.18. */
419 #define MHD_HTTP_EXPECTATION_FAILED 417
420 
421 
422 /* 421 "Misdirected Request". RFC9110, Section 15.5.20. */
423 #define MHD_HTTP_MISDIRECTED_REQUEST 421
424 /* 422 "Unprocessable Content". RFC9110, Section 15.5.21. */
425 #define MHD_HTTP_UNPROCESSABLE_CONTENT 422
426 /* 423 "Locked". RFC4918. */
427 #define MHD_HTTP_LOCKED 423
428 /* 424 "Failed Dependency". RFC4918. */
429 #define MHD_HTTP_FAILED_DEPENDENCY 424
430 /* 425 "Too Early". RFC8470. */
431 #define MHD_HTTP_TOO_EARLY 425
432 /* 426 "Upgrade Required". RFC9110, Section 15.5.22. */
433 #define MHD_HTTP_UPGRADE_REQUIRED 426
434 
435 /* 428 "Precondition Required". RFC6585. */
436 #define MHD_HTTP_PRECONDITION_REQUIRED 428
437 /* 429 "Too Many Requests". RFC6585. */
438 #define MHD_HTTP_TOO_MANY_REQUESTS 429
439 
440 /* 431 "Request Header Fields Too Large". RFC6585. */
441 #define MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
442 
443 /* 451 "Unavailable For Legal Reasons". RFC7725. */
444 #define MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
445 
446 /* 500 "Internal Server Error". RFC9110, Section 15.6.1. */
447 #define MHD_HTTP_INTERNAL_SERVER_ERROR 500
448 /* 501 "Not Implemented". RFC9110, Section 15.6.2. */
449 #define MHD_HTTP_NOT_IMPLEMENTED 501
450 /* 502 "Bad Gateway". RFC9110, Section 15.6.3. */
451 #define MHD_HTTP_BAD_GATEWAY 502
452 /* 503 "Service Unavailable". RFC9110, Section 15.6.4. */
453 #define MHD_HTTP_SERVICE_UNAVAILABLE 503
454 /* 504 "Gateway Timeout". RFC9110, Section 15.6.5. */
455 #define MHD_HTTP_GATEWAY_TIMEOUT 504
456 /* 505 "HTTP Version Not Supported". RFC9110, Section 15.6.6. */
457 #define MHD_HTTP_HTTP_VERSION_NOT_SUPPORTED 505
458 /* 506 "Variant Also Negotiates". RFC2295. */
459 #define MHD_HTTP_VARIANT_ALSO_NEGOTIATES 506
460 /* 507 "Insufficient Storage". RFC4918. */
461 #define MHD_HTTP_INSUFFICIENT_STORAGE 507
462 /* 508 "Loop Detected". RFC5842. */
463 #define MHD_HTTP_LOOP_DETECTED 508
464 
465 /* 510 "Not Extended". (OBSOLETED) RFC2774; status-change-http-experiments-to-historic. */
466 #define MHD_HTTP_NOT_EXTENDED 510
467 /* 511 "Network Authentication Required". RFC6585. */
468 #define MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED 511
469 
470 
471 /* Not registered non-standard codes */
472 /* 449 "Reply With". MS IIS extension. */
473 #define MHD_HTTP_RETRY_WITH 449
474 
475 /* 450 "Blocked by Windows Parental Controls". MS extension. */
476 #define MHD_HTTP_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS 450
477 
478 /* 509 "Bandwidth Limit Exceeded". Apache extension. */
479 #define MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED 509
480 
481 /* Deprecated names and codes */
483 #define MHD_HTTP_METHOD_NOT_ACCEPTABLE _MHD_DEPR_IN_MACRO (\
484  "Value MHD_HTTP_METHOD_NOT_ACCEPTABLE is deprecated, use MHD_HTTP_NOT_ACCEPTABLE" \
485  ) 406
486 
488 #define MHD_HTTP_REQUEST_ENTITY_TOO_LARGE _MHD_DEPR_IN_MACRO (\
489  "Value MHD_HTTP_REQUEST_ENTITY_TOO_LARGE is deprecated, use MHD_HTTP_CONTENT_TOO_LARGE"\
490  ) 413
491 
493 #define MHD_HTTP_PAYLOAD_TOO_LARGE _MHD_DEPR_IN_MACRO (\
494  "Value MHD_HTTP_PAYLOAD_TOO_LARGE is deprecated use MHD_HTTP_CONTENT_TOO_LARGE" \
495  ) 413
496 
498 #define MHD_HTTP_REQUEST_URI_TOO_LONG _MHD_DEPR_IN_MACRO (\
499  "Value MHD_HTTP_REQUEST_URI_TOO_LONG is deprecated, use MHD_HTTP_URI_TOO_LONG" \
500  ) 414
501 
503 #define MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE _MHD_DEPR_IN_MACRO (\
504  "Value MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE is deprecated, use MHD_HTTP_RANGE_NOT_SATISFIABLE" \
505  ) 416
506 
508 #define MHD_HTTP_UNPROCESSABLE_ENTITY _MHD_DEPR_IN_MACRO (\
509  "Value MHD_HTTP_UNPROCESSABLE_ENTITY is deprecated, use MHD_HTTP_UNPROCESSABLE_CONTENT" \
510  ) 422
511 
513 #define MHD_HTTP_UNORDERED_COLLECTION _MHD_DEPR_IN_MACRO (\
514  "Value MHD_HTTP_UNORDERED_COLLECTION is deprecated as it was removed from RFC" \
515  ) 425
516 
518 #define MHD_HTTP_NO_RESPONSE _MHD_DEPR_IN_MACRO (\
519  "Value MHD_HTTP_NO_RESPONSE is deprecated as it is nginx internal code for logs only"\
520  ) 444
521 
522  /* end of group httpcode */
524 
531 _MHD_EXTERN const char *
532 MHD_get_reason_phrase_for (unsigned int code);
533 
534 
541 _MHD_EXTERN size_t
542 MHD_get_reason_phrase_len_for (unsigned int code);
543 
550 #define MHD_ICY_FLAG ((uint32_t) (((uint32_t) 1) << 31))
551 
560 /* Main HTTP headers. */
561 /* Permanent. RFC9110, Section 12.5.1: HTTP Semantics */
562 #define MHD_HTTP_HEADER_ACCEPT "Accept"
563 /* Deprecated. RFC9110, Section 12.5.2: HTTP Semantics */
564 #define MHD_HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset"
565 /* Permanent. RFC9110, Section 12.5.3: HTTP Semantics */
566 #define MHD_HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding"
567 /* Permanent. RFC9110, Section 12.5.4: HTTP Semantics */
568 #define MHD_HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language"
569 /* Permanent. RFC9110, Section 14.3: HTTP Semantics */
570 #define MHD_HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges"
571 /* Permanent. RFC9111, Section 5.1: HTTP Caching */
572 #define MHD_HTTP_HEADER_AGE "Age"
573 /* Permanent. RFC9110, Section 10.2.1: HTTP Semantics */
574 #define MHD_HTTP_HEADER_ALLOW "Allow"
575 /* Permanent. RFC9110, Section 11.6.3: HTTP Semantics */
576 #define MHD_HTTP_HEADER_AUTHENTICATION_INFO "Authentication-Info"
577 /* Permanent. RFC9110, Section 11.6.2: HTTP Semantics */
578 #define MHD_HTTP_HEADER_AUTHORIZATION "Authorization"
579 /* Permanent. RFC9111, Section 5.2 */
580 #define MHD_HTTP_HEADER_CACHE_CONTROL "Cache-Control"
581 /* Permanent. RFC9112, Section 9.6: HTTP/1.1 */
582 #define MHD_HTTP_HEADER_CLOSE "Close"
583 /* Permanent. RFC9110, Section 7.6.1: HTTP Semantics */
584 #define MHD_HTTP_HEADER_CONNECTION "Connection"
585 /* Permanent. RFC9110, Section 8.4: HTTP Semantics */
586 #define MHD_HTTP_HEADER_CONTENT_ENCODING "Content-Encoding"
587 /* Permanent. RFC9110, Section 8.5: HTTP Semantics */
588 #define MHD_HTTP_HEADER_CONTENT_LANGUAGE "Content-Language"
589 /* Permanent. RFC9110, Section 8.6: HTTP Semantics */
590 #define MHD_HTTP_HEADER_CONTENT_LENGTH "Content-Length"
591 /* Permanent. RFC9110, Section 8.7: HTTP Semantics */
592 #define MHD_HTTP_HEADER_CONTENT_LOCATION "Content-Location"
593 /* Permanent. RFC9110, Section 14.4: HTTP Semantics */
594 #define MHD_HTTP_HEADER_CONTENT_RANGE "Content-Range"
595 /* Permanent. RFC9110, Section 8.3: HTTP Semantics */
596 #define MHD_HTTP_HEADER_CONTENT_TYPE "Content-Type"
597 /* Permanent. RFC9110, Section 6.6.1: HTTP Semantics */
598 #define MHD_HTTP_HEADER_DATE "Date"
599 /* Permanent. RFC9110, Section 8.8.3: HTTP Semantics */
600 #define MHD_HTTP_HEADER_ETAG "ETag"
601 /* Permanent. RFC9110, Section 10.1.1: HTTP Semantics */
602 #define MHD_HTTP_HEADER_EXPECT "Expect"
603 /* Permanent. RFC9111, Section 5.3: HTTP Caching */
604 #define MHD_HTTP_HEADER_EXPIRES "Expires"
605 /* Permanent. RFC9110, Section 10.1.2: HTTP Semantics */
606 #define MHD_HTTP_HEADER_FROM "From"
607 /* Permanent. RFC9110, Section 7.2: HTTP Semantics */
608 #define MHD_HTTP_HEADER_HOST "Host"
609 /* Permanent. RFC9110, Section 13.1.1: HTTP Semantics */
610 #define MHD_HTTP_HEADER_IF_MATCH "If-Match"
611 /* Permanent. RFC9110, Section 13.1.3: HTTP Semantics */
612 #define MHD_HTTP_HEADER_IF_MODIFIED_SINCE "If-Modified-Since"
613 /* Permanent. RFC9110, Section 13.1.2: HTTP Semantics */
614 #define MHD_HTTP_HEADER_IF_NONE_MATCH "If-None-Match"
615 /* Permanent. RFC9110, Section 13.1.5: HTTP Semantics */
616 #define MHD_HTTP_HEADER_IF_RANGE "If-Range"
617 /* Permanent. RFC9110, Section 13.1.4: HTTP Semantics */
618 #define MHD_HTTP_HEADER_IF_UNMODIFIED_SINCE "If-Unmodified-Since"
619 /* Permanent. RFC9110, Section 8.8.2: HTTP Semantics */
620 #define MHD_HTTP_HEADER_LAST_MODIFIED "Last-Modified"
621 /* Permanent. RFC9110, Section 10.2.2: HTTP Semantics */
622 #define MHD_HTTP_HEADER_LOCATION "Location"
623 /* Permanent. RFC9110, Section 7.6.2: HTTP Semantics */
624 #define MHD_HTTP_HEADER_MAX_FORWARDS "Max-Forwards"
625 /* Permanent. RFC9112, Appendix B.1: HTTP/1.1 */
626 #define MHD_HTTP_HEADER_MIME_VERSION "MIME-Version"
627 /* Deprecated. RFC9111, Section 5.4: HTTP Caching */
628 #define MHD_HTTP_HEADER_PRAGMA "Pragma"
629 /* Permanent. RFC9110, Section 11.7.1: HTTP Semantics */
630 #define MHD_HTTP_HEADER_PROXY_AUTHENTICATE "Proxy-Authenticate"
631 /* Permanent. RFC9110, Section 11.7.3: HTTP Semantics */
632 #define MHD_HTTP_HEADER_PROXY_AUTHENTICATION_INFO "Proxy-Authentication-Info"
633 /* Permanent. RFC9110, Section 11.7.2: HTTP Semantics */
634 #define MHD_HTTP_HEADER_PROXY_AUTHORIZATION "Proxy-Authorization"
635 /* Permanent. RFC9110, Section 14.2: HTTP Semantics */
636 #define MHD_HTTP_HEADER_RANGE "Range"
637 /* Permanent. RFC9110, Section 10.1.3: HTTP Semantics */
638 #define MHD_HTTP_HEADER_REFERER "Referer"
639 /* Permanent. RFC9110, Section 10.2.3: HTTP Semantics */
640 #define MHD_HTTP_HEADER_RETRY_AFTER "Retry-After"
641 /* Permanent. RFC9110, Section 10.2.4: HTTP Semantics */
642 #define MHD_HTTP_HEADER_SERVER "Server"
643 /* Permanent. RFC9110, Section 10.1.4: HTTP Semantics */
644 #define MHD_HTTP_HEADER_TE "TE"
645 /* Permanent. RFC9110, Section 6.6.2: HTTP Semantics */
646 #define MHD_HTTP_HEADER_TRAILER "Trailer"
647 /* Permanent. RFC9112, Section 6.1: HTTP Semantics */
648 #define MHD_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"
649 /* Permanent. RFC9110, Section 7.8: HTTP Semantics */
650 #define MHD_HTTP_HEADER_UPGRADE "Upgrade"
651 /* Permanent. RFC9110, Section 10.1.5: HTTP Semantics */
652 #define MHD_HTTP_HEADER_USER_AGENT "User-Agent"
653 /* Permanent. RFC9110, Section 12.5.5: HTTP Semantics */
654 #define MHD_HTTP_HEADER_VARY "Vary"
655 /* Permanent. RFC9110, Section 7.6.3: HTTP Semantics */
656 #define MHD_HTTP_HEADER_VIA "Via"
657 /* Permanent. RFC9110, Section 11.6.1: HTTP Semantics */
658 #define MHD_HTTP_HEADER_WWW_AUTHENTICATE "WWW-Authenticate"
659 /* Permanent. RFC9110, Section 12.5.5: HTTP Semantics */
660 #define MHD_HTTP_HEADER_ASTERISK "*"
661 
662 /* Additional HTTP headers. */
663 /* Permanent. RFC 3229: Delta encoding in HTTP */
664 #define MHD_HTTP_HEADER_A_IM "A-IM"
665 /* Permanent. RFC 2324: Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) */
666 #define MHD_HTTP_HEADER_ACCEPT_ADDITIONS "Accept-Additions"
667 /* Permanent. RFC 8942, Section 3.1: HTTP Client Hints */
668 #define MHD_HTTP_HEADER_ACCEPT_CH "Accept-CH"
669 /* Permanent. RFC 7089: HTTP Framework for Time-Based Access to Resource States -- Memento */
670 #define MHD_HTTP_HEADER_ACCEPT_DATETIME "Accept-Datetime"
671 /* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
672 #define MHD_HTTP_HEADER_ACCEPT_FEATURES "Accept-Features"
673 /* Permanent. RFC 5789: PATCH Method for HTTP */
674 #define MHD_HTTP_HEADER_ACCEPT_PATCH "Accept-Patch"
675 /* Permanent. Linked Data Platform 1.0 */
676 #define MHD_HTTP_HEADER_ACCEPT_POST "Accept-Post"
677 /* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 5.1: HTTP Message Signatures */
678 #define MHD_HTTP_HEADER_ACCEPT_SIGNATURE "Accept-Signature"
679 /* Permanent. Fetch */
680 #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS \
681  "Access-Control-Allow-Credentials"
682 /* Permanent. Fetch */
683 #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_HEADERS \
684  "Access-Control-Allow-Headers"
685 /* Permanent. Fetch */
686 #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_METHODS \
687  "Access-Control-Allow-Methods"
688 /* Permanent. Fetch */
689 #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN \
690  "Access-Control-Allow-Origin"
691 /* Permanent. Fetch */
692 #define MHD_HTTP_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS \
693  "Access-Control-Expose-Headers"
694 /* Permanent. Fetch */
695 #define MHD_HTTP_HEADER_ACCESS_CONTROL_MAX_AGE "Access-Control-Max-Age"
696 /* Permanent. Fetch */
697 #define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_HEADERS \
698  "Access-Control-Request-Headers"
699 /* Permanent. Fetch */
700 #define MHD_HTTP_HEADER_ACCESS_CONTROL_REQUEST_METHOD \
701  "Access-Control-Request-Method"
702 /* Permanent. RFC 7639, Section 2: The ALPN HTTP Header Field */
703 #define MHD_HTTP_HEADER_ALPN "ALPN"
704 /* Permanent. RFC 7838: HTTP Alternative Services */
705 #define MHD_HTTP_HEADER_ALT_SVC "Alt-Svc"
706 /* Permanent. RFC 7838: HTTP Alternative Services */
707 #define MHD_HTTP_HEADER_ALT_USED "Alt-Used"
708 /* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
709 #define MHD_HTTP_HEADER_ALTERNATES "Alternates"
710 /* Permanent. RFC 4437: Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources */
711 #define MHD_HTTP_HEADER_APPLY_TO_REDIRECT_REF "Apply-To-Redirect-Ref"
712 /* Permanent. RFC 8053, Section 4: HTTP Authentication Extensions for Interactive Clients */
713 #define MHD_HTTP_HEADER_AUTHENTICATION_CONTROL "Authentication-Control"
714 /* Permanent. RFC9211: The Cache-Status HTTP Response Header Field */
715 #define MHD_HTTP_HEADER_CACHE_STATUS "Cache-Status"
716 /* Permanent. RFC 8607, Section 5.1: Calendaring Extensions to WebDAV (CalDAV): Managed Attachments */
717 #define MHD_HTTP_HEADER_CAL_MANAGED_ID "Cal-Managed-ID"
718 /* Permanent. RFC 7809, Section 7.1: Calendaring Extensions to WebDAV (CalDAV): Time Zones by Reference */
719 #define MHD_HTTP_HEADER_CALDAV_TIMEZONES "CalDAV-Timezones"
720 /* Permanent. RFC9297 */
721 #define MHD_HTTP_HEADER_CAPSULE_PROTOCOL "Capsule-Protocol"
722 /* Permanent. RFC9213: Targeted HTTP Cache Control */
723 #define MHD_HTTP_HEADER_CDN_CACHE_CONTROL "CDN-Cache-Control"
724 /* Permanent. RFC 8586: Loop Detection in Content Delivery Networks (CDNs) */
725 #define MHD_HTTP_HEADER_CDN_LOOP "CDN-Loop"
726 /* Permanent. RFC 8739, Section 3.3: Support for Short-Term, Automatically Renewed (STAR) Certificates in the Automated Certificate Management Environment (ACME) */
727 #define MHD_HTTP_HEADER_CERT_NOT_AFTER "Cert-Not-After"
728 /* Permanent. RFC 8739, Section 3.3: Support for Short-Term, Automatically Renewed (STAR) Certificates in the Automated Certificate Management Environment (ACME) */
729 #define MHD_HTTP_HEADER_CERT_NOT_BEFORE "Cert-Not-Before"
730 /* Permanent. Clear Site Data */
731 #define MHD_HTTP_HEADER_CLEAR_SITE_DATA "Clear-Site-Data"
732 /* Permanent. RFC9440, Section 2: Client-Cert HTTP Header Field */
733 #define MHD_HTTP_HEADER_CLIENT_CERT "Client-Cert"
734 /* Permanent. RFC9440, Section 2: Client-Cert HTTP Header Field */
735 #define MHD_HTTP_HEADER_CLIENT_CERT_CHAIN "Client-Cert-Chain"
736 /* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 2: Digest Fields */
737 #define MHD_HTTP_HEADER_CONTENT_DIGEST "Content-Digest"
738 /* Permanent. RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP) */
739 #define MHD_HTTP_HEADER_CONTENT_DISPOSITION "Content-Disposition"
740 /* Permanent. The HTTP Distribution and Replication Protocol */
741 #define MHD_HTTP_HEADER_CONTENT_ID "Content-ID"
742 /* Permanent. Content Security Policy Level 3 */
743 #define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY "Content-Security-Policy"
744 /* Permanent. Content Security Policy Level 3 */
745 #define MHD_HTTP_HEADER_CONTENT_SECURITY_POLICY_REPORT_ONLY \
746  "Content-Security-Policy-Report-Only"
747 /* Permanent. RFC 6265: HTTP State Management Mechanism */
748 #define MHD_HTTP_HEADER_COOKIE "Cookie"
749 /* Permanent. HTML */
750 #define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY \
751  "Cross-Origin-Embedder-Policy"
752 /* Permanent. HTML */
753 #define MHD_HTTP_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY_REPORT_ONLY \
754  "Cross-Origin-Embedder-Policy-Report-Only"
755 /* Permanent. HTML */
756 #define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY "Cross-Origin-Opener-Policy"
757 /* Permanent. HTML */
758 #define MHD_HTTP_HEADER_CROSS_ORIGIN_OPENER_POLICY_REPORT_ONLY \
759  "Cross-Origin-Opener-Policy-Report-Only"
760 /* Permanent. Fetch */
761 #define MHD_HTTP_HEADER_CROSS_ORIGIN_RESOURCE_POLICY \
762  "Cross-Origin-Resource-Policy"
763 /* Permanent. RFC 5323: Web Distributed Authoring and Versioning (WebDAV) SEARCH */
764 #define MHD_HTTP_HEADER_DASL "DASL"
765 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
766 #define MHD_HTTP_HEADER_DAV "DAV"
767 /* Permanent. RFC 3229: Delta encoding in HTTP */
768 #define MHD_HTTP_HEADER_DELTA_BASE "Delta-Base"
769 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
770 #define MHD_HTTP_HEADER_DEPTH "Depth"
771 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
772 #define MHD_HTTP_HEADER_DESTINATION "Destination"
773 /* Permanent. The HTTP Distribution and Replication Protocol */
774 #define MHD_HTTP_HEADER_DIFFERENTIAL_ID "Differential-ID"
775 /* Permanent. RFC9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP) */
776 #define MHD_HTTP_HEADER_DPOP "DPoP"
777 /* Permanent. RFC9449: OAuth 2.0 Demonstrating Proof of Possession (DPoP) */
778 #define MHD_HTTP_HEADER_DPOP_NONCE "DPoP-Nonce"
779 /* Permanent. RFC 8470: Using Early Data in HTTP */
780 #define MHD_HTTP_HEADER_EARLY_DATA "Early-Data"
781 /* Permanent. RFC9163: Expect-CT Extension for HTTP */
782 #define MHD_HTTP_HEADER_EXPECT_CT "Expect-CT"
783 /* Permanent. RFC 7239: Forwarded HTTP Extension */
784 #define MHD_HTTP_HEADER_FORWARDED "Forwarded"
785 /* Permanent. RFC 7486, Section 6.1.1: HTTP Origin-Bound Authentication (HOBA) */
786 #define MHD_HTTP_HEADER_HOBAREG "Hobareg"
787 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
788 #define MHD_HTTP_HEADER_IF "If"
789 /* Permanent. RFC 6338: Scheduling Extensions to CalDAV */
790 #define MHD_HTTP_HEADER_IF_SCHEDULE_TAG_MATCH "If-Schedule-Tag-Match"
791 /* Permanent. RFC 3229: Delta encoding in HTTP */
792 #define MHD_HTTP_HEADER_IM "IM"
793 /* Permanent. RFC 8473: Token Binding over HTTP */
794 #define MHD_HTTP_HEADER_INCLUDE_REFERRED_TOKEN_BINDING_ID \
795  "Include-Referred-Token-Binding-ID"
796 /* Permanent. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
797 #define MHD_HTTP_HEADER_KEEP_ALIVE "Keep-Alive"
798 /* Permanent. RFC 3253: Versioning Extensions to WebDAV: (Web Distributed Authoring and Versioning) */
799 #define MHD_HTTP_HEADER_LABEL "Label"
800 /* Permanent. HTML */
801 #define MHD_HTTP_HEADER_LAST_EVENT_ID "Last-Event-ID"
802 /* Permanent. RFC 8288: Web Linking */
803 #define MHD_HTTP_HEADER_LINK "Link"
804 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
805 #define MHD_HTTP_HEADER_LOCK_TOKEN "Lock-Token"
806 /* Permanent. RFC 7089: HTTP Framework for Time-Based Access to Resource States -- Memento */
807 #define MHD_HTTP_HEADER_MEMENTO_DATETIME "Memento-Datetime"
808 /* Permanent. RFC 2227: Simple Hit-Metering and Usage-Limiting for HTTP */
809 #define MHD_HTTP_HEADER_METER "Meter"
810 /* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
811 #define MHD_HTTP_HEADER_NEGOTIATE "Negotiate"
812 /* Permanent. Network Error Logging */
813 #define MHD_HTTP_HEADER_NEL "NEL"
814 /* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
815 #define MHD_HTTP_HEADER_ODATA_ENTITYID "OData-EntityId"
816 /* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
817 #define MHD_HTTP_HEADER_ODATA_ISOLATION "OData-Isolation"
818 /* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
819 #define MHD_HTTP_HEADER_ODATA_MAXVERSION "OData-MaxVersion"
820 /* Permanent. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
821 #define MHD_HTTP_HEADER_ODATA_VERSION "OData-Version"
822 /* Permanent. RFC 8053, Section 3: HTTP Authentication Extensions for Interactive Clients */
823 #define MHD_HTTP_HEADER_OPTIONAL_WWW_AUTHENTICATE "Optional-WWW-Authenticate"
824 /* Permanent. RFC 3648: Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol */
825 #define MHD_HTTP_HEADER_ORDERING_TYPE "Ordering-Type"
826 /* Permanent. RFC 6454: The Web Origin Concept */
827 #define MHD_HTTP_HEADER_ORIGIN "Origin"
828 /* Permanent. HTML */
829 #define MHD_HTTP_HEADER_ORIGIN_AGENT_CLUSTER "Origin-Agent-Cluster"
830 /* Permanent. RFC 8613, Section 11.1: Object Security for Constrained RESTful Environments (OSCORE) */
831 #define MHD_HTTP_HEADER_OSCORE "OSCORE"
832 /* Permanent. OASIS Project Specification 01; OASIS; Chet_Ensign */
833 #define MHD_HTTP_HEADER_OSLC_CORE_VERSION "OSLC-Core-Version"
834 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
835 #define MHD_HTTP_HEADER_OVERWRITE "Overwrite"
836 /* Permanent. HTML */
837 #define MHD_HTTP_HEADER_PING_FROM "Ping-From"
838 /* Permanent. HTML */
839 #define MHD_HTTP_HEADER_PING_TO "Ping-To"
840 /* Permanent. RFC 3648: Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol */
841 #define MHD_HTTP_HEADER_POSITION "Position"
842 /* Permanent. RFC 7240: Prefer Header for HTTP */
843 #define MHD_HTTP_HEADER_PREFER "Prefer"
844 /* Permanent. RFC 7240: Prefer Header for HTTP */
845 #define MHD_HTTP_HEADER_PREFERENCE_APPLIED "Preference-Applied"
846 /* Permanent. RFC9218: Extensible Prioritization Scheme for HTTP */
847 #define MHD_HTTP_HEADER_PRIORITY "Priority"
848 /* Permanent. RFC9209: The Proxy-Status HTTP Response Header Field */
849 #define MHD_HTTP_HEADER_PROXY_STATUS "Proxy-Status"
850 /* Permanent. RFC 7469: Public Key Pinning Extension for HTTP */
851 #define MHD_HTTP_HEADER_PUBLIC_KEY_PINS "Public-Key-Pins"
852 /* Permanent. RFC 7469: Public Key Pinning Extension for HTTP */
853 #define MHD_HTTP_HEADER_PUBLIC_KEY_PINS_REPORT_ONLY \
854  "Public-Key-Pins-Report-Only"
855 /* Permanent. RFC 4437: Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources */
856 #define MHD_HTTP_HEADER_REDIRECT_REF "Redirect-Ref"
857 /* Permanent. HTML */
858 #define MHD_HTTP_HEADER_REFRESH "Refresh"
859 /* Permanent. RFC 8555, Section 6.5.1: Automatic Certificate Management Environment (ACME) */
860 #define MHD_HTTP_HEADER_REPLAY_NONCE "Replay-Nonce"
861 /* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 3: Digest Fields */
862 #define MHD_HTTP_HEADER_REPR_DIGEST "Repr-Digest"
863 /* Permanent. RFC 6638: Scheduling Extensions to CalDAV */
864 #define MHD_HTTP_HEADER_SCHEDULE_REPLY "Schedule-Reply"
865 /* Permanent. RFC 6338: Scheduling Extensions to CalDAV */
866 #define MHD_HTTP_HEADER_SCHEDULE_TAG "Schedule-Tag"
867 /* Permanent. Fetch */
868 #define MHD_HTTP_HEADER_SEC_PURPOSE "Sec-Purpose"
869 /* Permanent. RFC 8473: Token Binding over HTTP */
870 #define MHD_HTTP_HEADER_SEC_TOKEN_BINDING "Sec-Token-Binding"
871 /* Permanent. RFC 6455: The WebSocket Protocol */
872 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_ACCEPT "Sec-WebSocket-Accept"
873 /* Permanent. RFC 6455: The WebSocket Protocol */
874 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_EXTENSIONS "Sec-WebSocket-Extensions"
875 /* Permanent. RFC 6455: The WebSocket Protocol */
876 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_KEY "Sec-WebSocket-Key"
877 /* Permanent. RFC 6455: The WebSocket Protocol */
878 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_PROTOCOL "Sec-WebSocket-Protocol"
879 /* Permanent. RFC 6455: The WebSocket Protocol */
880 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_VERSION "Sec-WebSocket-Version"
881 /* Permanent. Server Timing */
882 #define MHD_HTTP_HEADER_SERVER_TIMING "Server-Timing"
883 /* Permanent. RFC 6265: HTTP State Management Mechanism */
884 #define MHD_HTTP_HEADER_SET_COOKIE "Set-Cookie"
885 /* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 4.2: HTTP Message Signatures */
886 #define MHD_HTTP_HEADER_SIGNATURE "Signature"
887 /* Permanent. RFC-ietf-httpbis-message-signatures-19, Section 4.1: HTTP Message Signatures */
888 #define MHD_HTTP_HEADER_SIGNATURE_INPUT "Signature-Input"
889 /* Permanent. RFC 5023: The Atom Publishing Protocol */
890 #define MHD_HTTP_HEADER_SLUG "SLUG"
891 /* Permanent. Simple Object Access Protocol (SOAP) 1.1 */
892 #define MHD_HTTP_HEADER_SOAPACTION "SoapAction"
893 /* Permanent. RFC 2518: HTTP Extensions for Distributed Authoring -- WEBDAV */
894 #define MHD_HTTP_HEADER_STATUS_URI "Status-URI"
895 /* Permanent. RFC 6797: HTTP Strict Transport Security (HSTS) */
896 #define MHD_HTTP_HEADER_STRICT_TRANSPORT_SECURITY "Strict-Transport-Security"
897 /* Permanent. RFC 8594: The Sunset HTTP Header Field */
898 #define MHD_HTTP_HEADER_SUNSET "Sunset"
899 /* Permanent. Edge Architecture Specification */
900 #define MHD_HTTP_HEADER_SURROGATE_CAPABILITY "Surrogate-Capability"
901 /* Permanent. Edge Architecture Specification */
902 #define MHD_HTTP_HEADER_SURROGATE_CONTROL "Surrogate-Control"
903 /* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
904 #define MHD_HTTP_HEADER_TCN "TCN"
905 /* Permanent. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) */
906 #define MHD_HTTP_HEADER_TIMEOUT "Timeout"
907 /* Permanent. RFC 8030, Section 5.4: Generic Event Delivery Using HTTP Push */
908 #define MHD_HTTP_HEADER_TOPIC "Topic"
909 /* Permanent. Trace Context */
910 #define MHD_HTTP_HEADER_TRACEPARENT "Traceparent"
911 /* Permanent. Trace Context */
912 #define MHD_HTTP_HEADER_TRACESTATE "Tracestate"
913 /* Permanent. RFC 8030, Section 5.2: Generic Event Delivery Using HTTP Push */
914 #define MHD_HTTP_HEADER_TTL "TTL"
915 /* Permanent. RFC 8030, Section 5.3: Generic Event Delivery Using HTTP Push */
916 #define MHD_HTTP_HEADER_URGENCY "Urgency"
917 /* Permanent. RFC 2295: Transparent Content Negotiation in HTTP */
918 #define MHD_HTTP_HEADER_VARIANT_VARY "Variant-Vary"
919 /* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 4: Digest Fields */
920 #define MHD_HTTP_HEADER_WANT_CONTENT_DIGEST "Want-Content-Digest"
921 /* Permanent. RFC-ietf-httpbis-digest-headers-13, Section 4: Digest Fields */
922 #define MHD_HTTP_HEADER_WANT_REPR_DIGEST "Want-Repr-Digest"
923 /* Permanent. Fetch */
924 #define MHD_HTTP_HEADER_X_CONTENT_TYPE_OPTIONS "X-Content-Type-Options"
925 /* Permanent. HTML */
926 #define MHD_HTTP_HEADER_X_FRAME_OPTIONS "X-Frame-Options"
927 /* Provisional. AMP-Cache-Transform HTTP request header */
928 #define MHD_HTTP_HEADER_AMP_CACHE_TRANSFORM "AMP-Cache-Transform"
929 /* Provisional. OSLC Configuration Management Version 1.0. Part 3: Configuration Specification */
930 #define MHD_HTTP_HEADER_CONFIGURATION_CONTEXT "Configuration-Context"
931 /* Provisional. RFC 6017: Electronic Data Interchange - Internet Integration (EDIINT) Features Header Field */
932 #define MHD_HTTP_HEADER_EDIINT_FEATURES "EDIINT-Features"
933 /* Provisional. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
934 #define MHD_HTTP_HEADER_ISOLATION "Isolation"
935 /* Provisional. Permissions Policy */
936 #define MHD_HTTP_HEADER_PERMISSIONS_POLICY "Permissions-Policy"
937 /* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
938 #define MHD_HTTP_HEADER_REPEATABILITY_CLIENT_ID "Repeatability-Client-ID"
939 /* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
940 #define MHD_HTTP_HEADER_REPEATABILITY_FIRST_SENT "Repeatability-First-Sent"
941 /* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
942 #define MHD_HTTP_HEADER_REPEATABILITY_REQUEST_ID "Repeatability-Request-ID"
943 /* Provisional. Repeatable Requests Version 1.0; OASIS; Chet_Ensign */
944 #define MHD_HTTP_HEADER_REPEATABILITY_RESULT "Repeatability-Result"
945 /* Provisional. Reporting API */
946 #define MHD_HTTP_HEADER_REPORTING_ENDPOINTS "Reporting-Endpoints"
947 /* Provisional. Global Privacy Control (GPC) */
948 #define MHD_HTTP_HEADER_SEC_GPC "Sec-GPC"
949 /* Provisional. Resource Timing Level 1 */
950 #define MHD_HTTP_HEADER_TIMING_ALLOW_ORIGIN "Timing-Allow-Origin"
951 /* Deprecated. PEP - an Extension Mechanism for HTTP; status-change-http-experiments-to-historic */
952 #define MHD_HTTP_HEADER_C_PEP_INFO "C-PEP-Info"
953 /* Deprecated. White Paper: Joint Electronic Payment Initiative */
954 #define MHD_HTTP_HEADER_PROTOCOL_INFO "Protocol-Info"
955 /* Deprecated. White Paper: Joint Electronic Payment Initiative */
956 #define MHD_HTTP_HEADER_PROTOCOL_QUERY "Protocol-Query"
957 /* Obsoleted. Access Control for Cross-site Requests */
958 #define MHD_HTTP_HEADER_ACCESS_CONTROL "Access-Control"
959 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
960 #define MHD_HTTP_HEADER_C_EXT "C-Ext"
961 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
962 #define MHD_HTTP_HEADER_C_MAN "C-Man"
963 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
964 #define MHD_HTTP_HEADER_C_OPT "C-Opt"
965 /* Obsoleted. PEP - an Extension Mechanism for HTTP; status-change-http-experiments-to-historic */
966 #define MHD_HTTP_HEADER_C_PEP "C-PEP"
967 /* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1; RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 */
968 #define MHD_HTTP_HEADER_CONTENT_BASE "Content-Base"
969 /* 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 */
970 #define MHD_HTTP_HEADER_CONTENT_MD5 "Content-MD5"
971 /* Obsoleted. HTML 4.01 Specification */
972 #define MHD_HTTP_HEADER_CONTENT_SCRIPT_TYPE "Content-Script-Type"
973 /* Obsoleted. HTML 4.01 Specification */
974 #define MHD_HTTP_HEADER_CONTENT_STYLE_TYPE "Content-Style-Type"
975 /* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
976 #define MHD_HTTP_HEADER_CONTENT_VERSION "Content-Version"
977 /* Obsoleted. RFC 2965: HTTP State Management Mechanism; RFC 6265: HTTP State Management Mechanism */
978 #define MHD_HTTP_HEADER_COOKIE2 "Cookie2"
979 /* Obsoleted. HTML 4.01 Specification */
980 #define MHD_HTTP_HEADER_DEFAULT_STYLE "Default-Style"
981 /* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
982 #define MHD_HTTP_HEADER_DERIVED_FROM "Derived-From"
983 /* Obsoleted. RFC 3230: Instance Digests in HTTP; RFC-ietf-httpbis-digest-headers-13, Section 1.3: Digest Fields */
984 #define MHD_HTTP_HEADER_DIGEST "Digest"
985 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
986 #define MHD_HTTP_HEADER_EXT "Ext"
987 /* Obsoleted. Implementation of OPS Over HTTP */
988 #define MHD_HTTP_HEADER_GETPROFILE "GetProfile"
989 /* Obsoleted. RFC 7540, Section 3.2.1: Hypertext Transfer Protocol Version 2 (HTTP/2) */
990 #define MHD_HTTP_HEADER_HTTP2_SETTINGS "HTTP2-Settings"
991 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
992 #define MHD_HTTP_HEADER_MAN "Man"
993 /* Obsoleted. Access Control for Cross-site Requests */
994 #define MHD_HTTP_HEADER_METHOD_CHECK "Method-Check"
995 /* Obsoleted. Access Control for Cross-site Requests */
996 #define MHD_HTTP_HEADER_METHOD_CHECK_EXPIRES "Method-Check-Expires"
997 /* Obsoleted. RFC 2774: An HTTP Extension Framework; status-change-http-experiments-to-historic */
998 #define MHD_HTTP_HEADER_OPT "Opt"
999 /* Obsoleted. The Platform for Privacy Preferences 1.0 (P3P1.0) Specification */
1000 #define MHD_HTTP_HEADER_P3P "P3P"
1001 /* Obsoleted. PEP - an Extension Mechanism for HTTP */
1002 #define MHD_HTTP_HEADER_PEP "PEP"
1003 /* Obsoleted. PEP - an Extension Mechanism for HTTP */
1004 #define MHD_HTTP_HEADER_PEP_INFO "Pep-Info"
1005 /* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1006 #define MHD_HTTP_HEADER_PICS_LABEL "PICS-Label"
1007 /* Obsoleted. Implementation of OPS Over HTTP */
1008 #define MHD_HTTP_HEADER_PROFILEOBJECT "ProfileObject"
1009 /* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1010 #define MHD_HTTP_HEADER_PROTOCOL "Protocol"
1011 /* Obsoleted. PICS Label Distribution Label Syntax and Communication Protocols */
1012 #define MHD_HTTP_HEADER_PROTOCOL_REQUEST "Protocol-Request"
1013 /* Obsoleted. Notification for Proxy Caches */
1014 #define MHD_HTTP_HEADER_PROXY_FEATURES "Proxy-Features"
1015 /* Obsoleted. Notification for Proxy Caches */
1016 #define MHD_HTTP_HEADER_PROXY_INSTRUCTION "Proxy-Instruction"
1017 /* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
1018 #define MHD_HTTP_HEADER_PUBLIC "Public"
1019 /* Obsoleted. Access Control for Cross-site Requests */
1020 #define MHD_HTTP_HEADER_REFERER_ROOT "Referer-Root"
1021 /* Obsoleted. RFC 2310: The Safe Response Header Field; status-change-http-experiments-to-historic */
1022 #define MHD_HTTP_HEADER_SAFE "Safe"
1023 /* Obsoleted. RFC 2660: The Secure HyperText Transfer Protocol; status-change-http-experiments-to-historic */
1024 #define MHD_HTTP_HEADER_SECURITY_SCHEME "Security-Scheme"
1025 /* Obsoleted. RFC 2965: HTTP State Management Mechanism; RFC 6265: HTTP State Management Mechanism */
1026 #define MHD_HTTP_HEADER_SET_COOKIE2 "Set-Cookie2"
1027 /* Obsoleted. Implementation of OPS Over HTTP */
1028 #define MHD_HTTP_HEADER_SETPROFILE "SetProfile"
1029 /* Obsoleted. RFC 2068: Hypertext Transfer Protocol -- HTTP/1.1 */
1030 #define MHD_HTTP_HEADER_URI "URI"
1031 /* Obsoleted. RFC 3230: Instance Digests in HTTP; RFC-ietf-httpbis-digest-headers-13, Section 1.3: Digest Fields */
1032 #define MHD_HTTP_HEADER_WANT_DIGEST "Want-Digest"
1033 /* Obsoleted. RFC9111, Section 5.5: HTTP Caching */
1034 #define MHD_HTTP_HEADER_WARNING "Warning"
1035 
1036 /* Headers removed from the registry. Do not use! */
1037 /* Obsoleted. RFC4229 */
1038 #define MHD_HTTP_HEADER_COMPLIANCE "Compliance"
1039 /* Obsoleted. RFC4229 */
1040 #define MHD_HTTP_HEADER_CONTENT_TRANSFER_ENCODING "Content-Transfer-Encoding"
1041 /* Obsoleted. RFC4229 */
1042 #define MHD_HTTP_HEADER_COST "Cost"
1043 /* Obsoleted. RFC4229 */
1044 #define MHD_HTTP_HEADER_MESSAGE_ID "Message-ID"
1045 /* Obsoleted. RFC4229 */
1046 #define MHD_HTTP_HEADER_NON_COMPLIANCE "Non-Compliance"
1047 /* Obsoleted. RFC4229 */
1048 #define MHD_HTTP_HEADER_OPTIONAL "Optional"
1049 /* Obsoleted. RFC4229 */
1050 #define MHD_HTTP_HEADER_RESOLUTION_HINT "Resolution-Hint"
1051 /* Obsoleted. RFC4229 */
1052 #define MHD_HTTP_HEADER_RESOLVER_LOCATION "Resolver-Location"
1053 /* Obsoleted. RFC4229 */
1054 #define MHD_HTTP_HEADER_SUBOK "SubOK"
1055 /* Obsoleted. RFC4229 */
1056 #define MHD_HTTP_HEADER_SUBST "Subst"
1057 /* Obsoleted. RFC4229 */
1058 #define MHD_HTTP_HEADER_TITLE "Title"
1059 /* Obsoleted. RFC4229 */
1060 #define MHD_HTTP_HEADER_UA_COLOR "UA-Color"
1061 /* Obsoleted. RFC4229 */
1062 #define MHD_HTTP_HEADER_UA_MEDIA "UA-Media"
1063 /* Obsoleted. RFC4229 */
1064 #define MHD_HTTP_HEADER_UA_PIXELS "UA-Pixels"
1065 /* Obsoleted. RFC4229 */
1066 #define MHD_HTTP_HEADER_UA_RESOLUTION "UA-Resolution"
1067 /* Obsoleted. RFC4229 */
1068 #define MHD_HTTP_HEADER_UA_WINDOWPIXELS "UA-Windowpixels"
1069 /* Obsoleted. RFC4229 */
1070 #define MHD_HTTP_HEADER_VERSION "Version"
1071 /* Obsoleted. W3C Mobile Web Best Practices Working Group */
1072 #define MHD_HTTP_HEADER_X_DEVICE_ACCEPT "X-Device-Accept"
1073 /* Obsoleted. W3C Mobile Web Best Practices Working Group */
1074 #define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_CHARSET "X-Device-Accept-Charset"
1075 /* Obsoleted. W3C Mobile Web Best Practices Working Group */
1076 #define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_ENCODING "X-Device-Accept-Encoding"
1077 /* Obsoleted. W3C Mobile Web Best Practices Working Group */
1078 #define MHD_HTTP_HEADER_X_DEVICE_ACCEPT_LANGUAGE "X-Device-Accept-Language"
1079 /* Obsoleted. W3C Mobile Web Best Practices Working Group */
1080 #define MHD_HTTP_HEADER_X_DEVICE_USER_AGENT "X-Device-User-Agent"
1081  /* end of group headers */
1083 
1090 #define MHD_HTTP_VERSION_1_0 "HTTP/1.0"
1091 #define MHD_HTTP_VERSION_1_1 "HTTP/1.1"
1092  /* end of group versions */
1094 
1103 /* Main HTTP methods. */
1104 /* Safe. Idempotent. RFC9110, Section 9.3.1. */
1105 #define MHD_HTTP_METHOD_GET "GET"
1106 /* Safe. Idempotent. RFC9110, Section 9.3.2. */
1107 #define MHD_HTTP_METHOD_HEAD "HEAD"
1108 /* Not safe. Not idempotent. RFC9110, Section 9.3.3. */
1109 #define MHD_HTTP_METHOD_POST "POST"
1110 /* Not safe. Idempotent. RFC9110, Section 9.3.4. */
1111 #define MHD_HTTP_METHOD_PUT "PUT"
1112 /* Not safe. Idempotent. RFC9110, Section 9.3.5. */
1113 #define MHD_HTTP_METHOD_DELETE "DELETE"
1114 /* Not safe. Not idempotent. RFC9110, Section 9.3.6. */
1115 #define MHD_HTTP_METHOD_CONNECT "CONNECT"
1116 /* Safe. Idempotent. RFC9110, Section 9.3.7. */
1117 #define MHD_HTTP_METHOD_OPTIONS "OPTIONS"
1118 /* Safe. Idempotent. RFC9110, Section 9.3.8. */
1119 #define MHD_HTTP_METHOD_TRACE "TRACE"
1120 
1121 /* Additional HTTP methods. */
1122 /* Not safe. Idempotent. RFC3744, Section 8.1. */
1123 #define MHD_HTTP_METHOD_ACL "ACL"
1124 /* Not safe. Idempotent. RFC3253, Section 12.6. */
1125 #define MHD_HTTP_METHOD_BASELINE_CONTROL "BASELINE-CONTROL"
1126 /* Not safe. Idempotent. RFC5842, Section 4. */
1127 #define MHD_HTTP_METHOD_BIND "BIND"
1128 /* Not safe. Idempotent. RFC3253, Section 4.4, Section 9.4. */
1129 #define MHD_HTTP_METHOD_CHECKIN "CHECKIN"
1130 /* Not safe. Idempotent. RFC3253, Section 4.3, Section 8.8. */
1131 #define MHD_HTTP_METHOD_CHECKOUT "CHECKOUT"
1132 /* Not safe. Idempotent. RFC4918, Section 9.8. */
1133 #define MHD_HTTP_METHOD_COPY "COPY"
1134 /* Not safe. Idempotent. RFC3253, Section 8.2. */
1135 #define MHD_HTTP_METHOD_LABEL "LABEL"
1136 /* Not safe. Idempotent. RFC2068, Section 19.6.1.2. */
1137 #define MHD_HTTP_METHOD_LINK "LINK"
1138 /* Not safe. Not idempotent. RFC4918, Section 9.10. */
1139 #define MHD_HTTP_METHOD_LOCK "LOCK"
1140 /* Not safe. Idempotent. RFC3253, Section 11.2. */
1141 #define MHD_HTTP_METHOD_MERGE "MERGE"
1142 /* Not safe. Idempotent. RFC3253, Section 13.5. */
1143 #define MHD_HTTP_METHOD_MKACTIVITY "MKACTIVITY"
1144 /* Not safe. Idempotent. RFC4791, Section 5.3.1; RFC8144, Section 2.3. */
1145 #define MHD_HTTP_METHOD_MKCALENDAR "MKCALENDAR"
1146 /* Not safe. Idempotent. RFC4918, Section 9.3; RFC5689, Section 3; RFC8144, Section 2.3. */
1147 #define MHD_HTTP_METHOD_MKCOL "MKCOL"
1148 /* Not safe. Idempotent. RFC4437, Section 6. */
1149 #define MHD_HTTP_METHOD_MKREDIRECTREF "MKREDIRECTREF"
1150 /* Not safe. Idempotent. RFC3253, Section 6.3. */
1151 #define MHD_HTTP_METHOD_MKWORKSPACE "MKWORKSPACE"
1152 /* Not safe. Idempotent. RFC4918, Section 9.9. */
1153 #define MHD_HTTP_METHOD_MOVE "MOVE"
1154 /* Not safe. Idempotent. RFC3648, Section 7. */
1155 #define MHD_HTTP_METHOD_ORDERPATCH "ORDERPATCH"
1156 /* Not safe. Not idempotent. RFC5789, Section 2. */
1157 #define MHD_HTTP_METHOD_PATCH "PATCH"
1158 /* Safe. Idempotent. RFC9113, Section 3.4. */
1159 #define MHD_HTTP_METHOD_PRI "PRI"
1160 /* Safe. Idempotent. RFC4918, Section 9.1; RFC8144, Section 2.1. */
1161 #define MHD_HTTP_METHOD_PROPFIND "PROPFIND"
1162 /* Not safe. Idempotent. RFC4918, Section 9.2; RFC8144, Section 2.2. */
1163 #define MHD_HTTP_METHOD_PROPPATCH "PROPPATCH"
1164 /* Not safe. Idempotent. RFC5842, Section 6. */
1165 #define MHD_HTTP_METHOD_REBIND "REBIND"
1166 /* Safe. Idempotent. RFC3253, Section 3.6; RFC8144, Section 2.1. */
1167 #define MHD_HTTP_METHOD_REPORT "REPORT"
1168 /* Safe. Idempotent. RFC5323, Section 2. */
1169 #define MHD_HTTP_METHOD_SEARCH "SEARCH"
1170 /* Not safe. Idempotent. RFC5842, Section 5. */
1171 #define MHD_HTTP_METHOD_UNBIND "UNBIND"
1172 /* Not safe. Idempotent. RFC3253, Section 4.5. */
1173 #define MHD_HTTP_METHOD_UNCHECKOUT "UNCHECKOUT"
1174 /* Not safe. Idempotent. RFC2068, Section 19.6.1.3. */
1175 #define MHD_HTTP_METHOD_UNLINK "UNLINK"
1176 /* Not safe. Idempotent. RFC4918, Section 9.11. */
1177 #define MHD_HTTP_METHOD_UNLOCK "UNLOCK"
1178 /* Not safe. Idempotent. RFC3253, Section 7.1. */
1179 #define MHD_HTTP_METHOD_UPDATE "UPDATE"
1180 /* Not safe. Idempotent. RFC4437, Section 7. */
1181 #define MHD_HTTP_METHOD_UPDATEREDIRECTREF "UPDATEREDIRECTREF"
1182 /* Not safe. Idempotent. RFC3253, Section 3.5. */
1183 #define MHD_HTTP_METHOD_VERSION_CONTROL "VERSION-CONTROL"
1184 /* Not safe. Not idempotent. RFC9110, Section 18.2. */
1185 #define MHD_HTTP_METHOD_ASTERISK "*"
1186  /* end of group methods */
1188 
1194 #define MHD_HTTP_POST_ENCODING_FORM_URLENCODED \
1195  "application/x-www-form-urlencoded"
1196 #define MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA "multipart/form-data"
1197  /* end of group postenc */
1199 
1200 
1205 struct MHD_Daemon;
1206 
1215 struct MHD_Connection;
1216 
1221 struct MHD_Response;
1222 
1227 struct MHD_PostProcessor;
1228 
1229 
1243 {
1248 
1255 
1261 
1266 
1269 #if 0
1270  /* let's do this later once versions that define MHD_USE_TLS a more widely deployed. */
1271 #define MHD_USE_SSL \
1272  _MHD_DEPR_IN_MACRO ("Value MHD_USE_SSL is deprecated, use MHD_USE_TLS") \
1273  MHD_USE_TLS
1274 #endif
1275 
1286 
1298 
1301 #if 0 /* Will be marked for real deprecation later. */
1302 #define MHD_USE_SELECT_INTERNALLY \
1303  _MHD_DEPR_IN_MACRO ( \
1304  "Value MHD_USE_SELECT_INTERNALLY is deprecated, use MHD_USE_INTERNAL_POLLING_THREAD instead") \
1305  MHD_USE_INTERNAL_POLLING_THREAD
1306 #endif /* 0 */
1307 
1316 
1325 #if 0 /* Will be marked for real deprecation later. */
1326 #define MHD_USE_PEDANTIC_CHECKS \
1327  _MHD_DEPR_IN_MACRO ( \
1328  "Flag MHD_USE_PEDANTIC_CHECKS is deprecated, " \
1329  "use option MHD_OPTION_CLIENT_DISCIPLINE_LVL instead") \
1330  32
1331 #endif /* 0 */
1332 
1343 
1349 
1352 #if 0 /* Will be marked for real deprecation later. */
1353 #define MHD_USE_POLL_INTERNALLY \
1354  _MHD_DEPR_IN_MACRO ( \
1355  "Value MHD_USE_POLL_INTERNALLY is deprecated, use MHD_USE_POLL_INTERNAL_THREAD instead") \
1356  MHD_USE_POLL_INTERNAL_THREAD
1357 #endif /* 0 */
1358 
1366 
1369 #if 0 /* Will be marked for real deprecation later. */
1370 #define MHD_SUPPRESS_DATE_NO_CLOCK \
1371  _MHD_DEPR_IN_MACRO ( \
1372  "Value MHD_SUPPRESS_DATE_NO_CLOCK is deprecated, use MHD_USE_SUPPRESS_DATE_NO_CLOCK instead") \
1373  MHD_USE_SUPPRESS_DATE_NO_CLOCK
1374 #endif /* 0 */
1375 
1384 
1393 
1396 #if 0 /* Will be marked for real deprecation later. */
1397 #define MHD_USE_EPOLL_LINUX_ONLY \
1398  _MHD_DEPR_IN_MACRO ( \
1399  "Value MHD_USE_EPOLL_LINUX_ONLY is deprecated, use MHD_USE_EPOLL") \
1400  MHD_USE_EPOLL
1401 #endif /* 0 */
1402 
1411 
1417 #if 0 /* Will be marked for real deprecation later. */
1418 #define MHD_USE_EPOLL_INTERNALLY \
1419  _MHD_DEPR_IN_MACRO ( \
1420  "Value MHD_USE_EPOLL_INTERNALLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1421  MHD_USE_EPOLL_INTERNAL_THREAD
1423 #define MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY \
1424  _MHD_DEPR_IN_MACRO ( \
1425  "Value MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1426  MHD_USE_EPOLL_INTERNAL_THREAD
1427 #endif /* 0 */
1428 
1441  MHD_USE_ITC = 1024,
1442 
1445 #if 0 /* Will be marked for real deprecation later. */
1446 #define MHD_USE_PIPE_FOR_SHUTDOWN \
1447  _MHD_DEPR_IN_MACRO ( \
1448  "Value MHD_USE_PIPE_FOR_SHUTDOWN is deprecated, use MHD_USE_ITC") \
1449  MHD_USE_ITC
1450 #endif /* 0 */
1451 
1456 
1464 
1467 #if 0 /* Will be marked for real deprecation later. */
1468 #define MHD_USE_EPOLL_TURBO \
1469  _MHD_DEPR_IN_MACRO ( \
1470  "Value MHD_USE_EPOLL_TURBO is deprecated, use MHD_USE_TURBO") \
1471  MHD_USE_TURBO
1472 #endif /* 0 */
1473 
1479 
1482 #if 0 /* Will be marked for real deprecation later. */
1483 #define MHD_USE_SUSPEND_RESUME \
1484  _MHD_DEPR_IN_MACRO ( \
1485  "Value MHD_USE_SUSPEND_RESUME is deprecated, use MHD_ALLOW_SUSPEND_RESUME instead") \
1486  MHD_ALLOW_SUSPEND_RESUME
1487 #endif /* 0 */
1488 
1495 
1502 
1514  MHD_USE_AUTO = 65536,
1515 
1523 
1529 
1535 
1546  MHD_USE_NO_THREAD_SAFETY = 1U << 19
1547 
1548 };
1549 
1550 
1559 typedef void
1560 (*MHD_LogCallback)(void *cls,
1561  const char *fm,
1562  va_list ap);
1563 
1564 
1577 typedef int
1579  const struct MHD_Connection *connection,
1580  const char *username,
1581  void **psk,
1582  size_t *psk_size);
1583 
1596 {
1613 
1618 
1630 
1638 
1648 
1655 {
1656 
1662 
1673 
1679 
1688 
1702 
1714 
1724 
1756 
1764 
1772 
1779 
1792 
1802 
1817 
1826 
1847 
1869 
1884 
1896 
1902 
1909 
1917 
1933 
1942 
1949 
1958 
1967 
1978 
1986 
2005 
2013 
2024 
2035 
2046 
2055 
2070 
2081 
2093 
2139 
2161 
2177  ,
2186  ,
2195 
2197 
2198 
2204 {
2208  MHD_DSC_SANE = 0
2209 
2211 
2212 
2217 {
2222  enum MHD_OPTION option;
2223 
2229  intptr_t value;
2230 
2235  void *ptr_value;
2236 
2237 };
2238 
2239 
2245 {
2246 
2252 #define MHD_RESPONSE_HEADER_KIND \
2253  _MHD_DEPR_IN_MACRO ( \
2254  "Value MHD_RESPONSE_HEADER_KIND is deprecated and not used") \
2255  MHD_RESPONSE_HEADER_KIND
2256 
2261 
2267 
2277 
2282 
2286  MHD_FOOTER_KIND = 16
2288 
2289 
2296 {
2297 
2303 
2312 
2320 
2327 
2337 
2344 
2346 
2347 
2354 {
2355 
2361 
2367 
2369 
2370 
2375 {
2376 
2380  int /* enum gnutls_cipher_algorithm */ cipher_algorithm;
2381 
2385  int /* enum gnutls_protocol */ protocol;
2386 
2390  int /* MHD_YES or MHD_NO */ suspended;
2391 
2397  unsigned int connection_timeout;
2398 
2402  unsigned int http_status;
2403 
2408 
2414  size_t header_size;
2415 
2419  void * /* gnutls_session_t */ tls_session;
2420 
2424  void * /* gnutls_x509_crt_t */ client_cert;
2425 
2429  struct sockaddr *client_addr;
2430 
2436 
2442 };
2443 
2444 
2450 {
2454  const void *iov_base;
2455 
2459  size_t iov_len;
2460 };
2461 
2462 
2469 {
2476 
2483 
2492 
2498 
2506 
2512 
2520 
2530 
2536 
2542 
2548 
2554 
2556 
2557 
2563 {
2568 
2573 
2579 
2594 
2603 
2611 
2620 
2621 
2633 typedef void
2634 (*MHD_PanicCallback) (void *cls,
2635  const char *file,
2636  unsigned int line,
2637  const char *reason);
2638 
2647 typedef enum MHD_Result
2648 (*MHD_AcceptPolicyCallback)(void *cls,
2649  const struct sockaddr *addr,
2650  socklen_t addrlen);
2651 
2652 
2717 typedef enum MHD_Result
2718 (*MHD_AccessHandlerCallback)(void *cls,
2719  struct MHD_Connection *connection,
2720  const char *url,
2721  const char *method,
2722  const char *version,
2723  const char *upload_data,
2724  size_t *upload_data_size,
2725  void **req_cls);
2726 
2727 
2740 typedef void
2741 (*MHD_RequestCompletedCallback) (void *cls,
2742  struct MHD_Connection *connection,
2743  void **req_cls,
2744  enum MHD_RequestTerminationCode toe);
2745 
2746 
2766 typedef void
2767 (*MHD_NotifyConnectionCallback) (void *cls,
2768  struct MHD_Connection *connection,
2769  void **socket_context,
2771 
2772 
2788 typedef enum MHD_Result
2789 (*MHD_KeyValueIterator)(void *cls,
2790  enum MHD_ValueKind kind,
2791  const char *key,
2792  const char *value);
2793 
2794 
2813 typedef enum MHD_Result
2814 (*MHD_KeyValueIteratorN)(void *cls,
2815  enum MHD_ValueKind kind,
2816  const char *key,
2817  size_t key_size,
2818  const char *value,
2819  size_t value_size);
2820 
2821 
2867 typedef ssize_t
2868 (*MHD_ContentReaderCallback) (void *cls,
2869  uint64_t pos,
2870  char *buf,
2871  size_t max);
2872 
2873 
2883 typedef void
2884 (*MHD_ContentReaderFreeCallback) (void *cls);
2885 
2886 
2907 typedef enum MHD_Result
2908 (*MHD_PostDataIterator)(void *cls,
2909  enum MHD_ValueKind kind,
2910  const char *key,
2911  const char *filename,
2912  const char *content_type,
2913  const char *transfer_encoding,
2914  const char *data,
2915  uint64_t off,
2916  size_t size);
2917 
2918 /* **************** Daemon handling functions ***************** */
2919 
2941 _MHD_EXTERN struct MHD_Daemon *
2942 MHD_start_daemon_va (unsigned int flags,
2943  uint16_t port,
2945  MHD_AccessHandlerCallback dh, void *dh_cls,
2946  va_list ap);
2947 
2948 
2969 _MHD_EXTERN struct MHD_Daemon *
2970 MHD_start_daemon (unsigned int flags,
2971  uint16_t port,
2973  MHD_AccessHandlerCallback dh, void *dh_cls,
2974  ...);
2975 
2976 
2997 MHD_quiesce_daemon (struct MHD_Daemon *daemon);
2998 
2999 
3006 _MHD_EXTERN void
3007 MHD_stop_daemon (struct MHD_Daemon *daemon);
3008 
3009 
3037 MHD_add_connection (struct MHD_Daemon *daemon,
3038  MHD_socket client_socket,
3039  const struct sockaddr *addr,
3040  socklen_t addrlen);
3041 
3042 
3075 MHD_get_fdset (struct MHD_Daemon *daemon,
3076  fd_set *read_fd_set,
3077  fd_set *write_fd_set,
3078  fd_set *except_fd_set,
3079  MHD_socket *max_fd);
3080 
3081 
3117 MHD_get_fdset2 (struct MHD_Daemon *daemon,
3118  fd_set *read_fd_set,
3119  fd_set *write_fd_set,
3120  fd_set *except_fd_set,
3121  MHD_socket *max_fd,
3122  unsigned int fd_setsize);
3123 
3124 
3156 #define MHD_get_fdset(daemon,read_fd_set,write_fd_set,except_fd_set,max_fd) \
3157  MHD_get_fdset2 ((daemon),(read_fd_set),(write_fd_set),(except_fd_set), \
3158  (max_fd),FD_SETSIZE)
3159 
3160 
3194 MHD_get_timeout (struct MHD_Daemon *daemon,
3195  MHD_UNSIGNED_LONG_LONG *timeout);
3196 
3197 
3211 _MHD_EXTERN void
3212 MHD_free (void *ptr);
3213 
3249 MHD_get_timeout64 (struct MHD_Daemon *daemon,
3250  uint64_t *timeout);
3251 
3252 
3289 _MHD_EXTERN int64_t
3291 
3292 
3330 _MHD_EXTERN int
3332 
3333 
3362 MHD_run (struct MHD_Daemon *daemon);
3363 
3364 
3404 MHD_run_wait (struct MHD_Daemon *daemon,
3405  int32_t millisec);
3406 
3407 
3435 MHD_run_from_select (struct MHD_Daemon *daemon,
3436  const fd_set *read_fd_set,
3437  const fd_set *write_fd_set,
3438  const fd_set *except_fd_set);
3439 
3440 
3473 MHD_run_from_select2 (struct MHD_Daemon *daemon,
3474  const fd_set *read_fd_set,
3475  const fd_set *write_fd_set,
3476  const fd_set *except_fd_set,
3477  unsigned int fd_setsize);
3478 
3479 
3510 #define MHD_run_from_select(d,r,w,e) \
3511  MHD_run_from_select2((d),(r),(w),(e),(unsigned int)(FD_SETSIZE))
3512 
3513 /* **************** Connection handling functions ***************** */
3514 
3527 _MHD_EXTERN int
3528 MHD_get_connection_values (struct MHD_Connection *connection,
3529  enum MHD_ValueKind kind,
3530  MHD_KeyValueIterator iterator,
3531  void *iterator_cls);
3532 
3533 
3547 _MHD_EXTERN int
3548 MHD_get_connection_values_n (struct MHD_Connection *connection,
3549  enum MHD_ValueKind kind,
3550  MHD_KeyValueIteratorN iterator,
3551  void *iterator_cls);
3552 
3553 
3580 MHD_set_connection_value (struct MHD_Connection *connection,
3581  enum MHD_ValueKind kind,
3582  const char *key,
3583  const char *value);
3584 
3585 
3613 MHD_set_connection_value_n (struct MHD_Connection *connection,
3614  enum MHD_ValueKind kind,
3615  const char *key,
3616  size_t key_size,
3617  const char *value,
3618  size_t value_size);
3619 
3620 
3639 _MHD_EXTERN void
3640 MHD_set_panic_func (MHD_PanicCallback cb, void *cls);
3641 
3642 
3652 _MHD_EXTERN size_t
3653 MHD_http_unescape (char *val);
3654 
3655 
3666 _MHD_EXTERN const char *
3667 MHD_lookup_connection_value (struct MHD_Connection *connection,
3668  enum MHD_ValueKind kind,
3669  const char *key);
3670 
3671 
3692 MHD_lookup_connection_value_n (struct MHD_Connection *connection,
3693  enum MHD_ValueKind kind,
3694  const char *key,
3695  size_t key_size,
3696  const char **value_ptr,
3697  size_t *value_size_ptr);
3698 
3699 
3746 MHD_queue_response (struct MHD_Connection *connection,
3747  unsigned int status_code,
3748  struct MHD_Response *response);
3749 
3750 
3779 _MHD_EXTERN void
3780 MHD_suspend_connection (struct MHD_Connection *connection);
3781 
3782 
3797 _MHD_EXTERN void
3798 MHD_resume_connection (struct MHD_Connection *connection);
3799 
3800 
3801 /* **************** Response manipulation functions ***************** */
3802 
3803 
3808 {
3814 
3833 
3854 
3863 
3871 
3887  MHD_RF_HEAD_ONLY_RESPONSE = 1 << 4
3889 
3890 
3895 {
3899  MHD_RO_END = 0
3901 
3902 
3912 MHD_set_response_options (struct MHD_Response *response,
3913  enum MHD_ResponseFlags flags,
3914  ...);
3915 
3916 
3938 _MHD_EXTERN struct MHD_Response *
3939 MHD_create_response_from_callback (uint64_t size,
3940  size_t block_size,
3943 
3944 
3964 _MHD_DEPR_FUNC ("MHD_create_response_from_data() is deprecated, " \
3965  "use MHD_create_response_from_buffer()") \
3966  _MHD_EXTERN struct MHD_Response *
3967 MHD_create_response_from_data (size_t size,
3968  void *data,
3971 
3972 
3979 {
3980 
3988 
4002 
4011 
4013 
4014 
4032 _MHD_EXTERN struct MHD_Response *
4033 MHD_create_response_from_buffer (size_t size,
4034  void *buffer,
4035  enum MHD_ResponseMemoryMode mode);
4036 
4037 
4059 _MHD_EXTERN struct MHD_Response *
4061  const void *buffer);
4062 
4063 
4086 _MHD_EXTERN struct MHD_Response *
4088  const void *buffer);
4089 
4090 
4109 _MHD_EXTERN struct MHD_Response *
4111  void *buffer,
4113  crfc);
4114 
4115 
4137 _MHD_EXTERN struct MHD_Response *
4139  const void *buffer,
4141  crfc,
4142  void *crfc_cls);
4143 
4144 
4163 _MHD_EXTERN struct MHD_Response *
4164 MHD_create_response_from_fd (size_t size,
4165  int fd);
4166 
4167 
4186 _MHD_EXTERN struct MHD_Response *
4188 
4189 
4210 _MHD_EXTERN struct MHD_Response *
4211 MHD_create_response_from_fd64 (uint64_t size,
4212  int fd);
4213 
4214 
4238 _MHD_DEPR_FUNC ("Function MHD_create_response_from_fd_at_offset() is " \
4239  "deprecated, use MHD_create_response_from_fd_at_offset64()") \
4240  _MHD_EXTERN struct MHD_Response *
4242  int fd,
4243  off_t offset);
4244 
4245 #if ! defined(_MHD_NO_DEPR_IN_MACRO) || defined(_MHD_NO_DEPR_FUNC)
4246 /* Substitute MHD_create_response_from_fd_at_offset64() instead of MHD_create_response_from_fd_at_offset()
4247  to minimize potential problems with different off_t sizes */
4248 #define MHD_create_response_from_fd_at_offset(size,fd,offset) \
4249  _MHD_DEPR_IN_MACRO ( \
4250  "Usage of MHD_create_response_from_fd_at_offset() is deprecated, use MHD_create_response_from_fd_at_offset64()") \
4251  MHD_create_response_from_fd_at_offset64 ((size),(fd),(offset))
4252 #endif /* !_MHD_NO_DEPR_IN_MACRO || _MHD_NO_DEPR_FUNC */
4253 
4254 
4278 _MHD_EXTERN struct MHD_Response *
4280  int fd,
4281  uint64_t offset);
4282 
4283 
4305 _MHD_EXTERN struct MHD_Response *
4306 MHD_create_response_from_iovec (const struct MHD_IoVec *iov,
4307  unsigned int iovcnt,
4309  void *cls);
4310 
4311 
4327 _MHD_EXTERN struct MHD_Response *
4329 
4330 
4338 {
4339 
4346 
4351 
4356 
4358 
4359 
4365 struct MHD_UpgradeResponseHandle;
4366 
4367 
4381 MHD_upgrade_action (struct MHD_UpgradeResponseHandle *urh,
4382  enum MHD_UpgradeAction action,
4383  ...);
4384 
4385 
4433 typedef void
4434 (*MHD_UpgradeHandler)(void *cls,
4435  struct MHD_Connection *connection,
4436  void *req_cls,
4437  const char *extra_in,
4438  size_t extra_in_size,
4439  MHD_socket sock,
4440  struct MHD_UpgradeResponseHandle *urh);
4441 
4442 
4472 _MHD_EXTERN struct MHD_Response *
4474  void *upgrade_handler_cls);
4475 
4476 
4486 _MHD_EXTERN void
4487 MHD_destroy_response (struct MHD_Response *response);
4488 
4489 
4540 MHD_add_response_header (struct MHD_Response *response,
4541  const char *header,
4542  const char *content);
4543 
4544 
4555 MHD_add_response_footer (struct MHD_Response *response,
4556  const char *footer,
4557  const char *content);
4558 
4559 
4575 MHD_del_response_header (struct MHD_Response *response,
4576  const char *header,
4577  const char *content);
4578 
4579 
4590 _MHD_EXTERN int
4591 MHD_get_response_headers (struct MHD_Response *response,
4592  MHD_KeyValueIterator iterator,
4593  void *iterator_cls);
4594 
4595 
4604 _MHD_EXTERN const char *
4605 MHD_get_response_header (struct MHD_Response *response,
4606  const char *key);
4607 
4608 
4609 /* ********************** PostProcessor functions ********************** */
4610 
4638  size_t buffer_size,
4639  MHD_PostDataIterator iter, void *iter_cls);
4640 
4641 
4657  const char *post_data,
4658  size_t post_data_len);
4659 
4660 
4673 
4674 
4675 /* ********************* Digest Authentication functions *************** */
4676 
4677 
4683 #define MHD_MD5_DIGEST_SIZE 16
4684 
4690 #define MHD_SHA256_DIGEST_SIZE 32
4691 
4700 #define MHD_SHA512_256_DIGEST_SIZE 32
4701 
4710 {
4715 
4721 
4727 
4734 
4740 #define MHD_DIGEST_AUTH_ALGO3_NON_SESSION (1 << 6)
4741 
4747 #define MHD_DIGEST_AUTH_ALGO3_SESSION (1 << 7)
4748 
4756 {
4763 
4769 
4776 
4782 
4789 
4795 
4802 };
4803 
4804 
4819 _MHD_EXTERN size_t
4821 
4831 {
4836 
4841 
4848 
4853 
4861 
4866 
4874 
4881 
4888 
4897 
4905 
4912 
4920 
4928 
4936 
4942 };
4943 
4944 
4987  const char *username,
4988  const char *realm,
4989  void *userhash_bin,
4990  size_t bin_buf_size);
4991 
4992 
5035  const char *username,
5036  const char *realm,
5037  char *userhash_hex,
5038  size_t hex_buf_size);
5039 
5040 
5056 {
5062 
5067 
5075 
5082 
5093 
5099 {
5106 
5116 
5121 
5128 
5138 {
5143 
5153 
5158 
5165 
5174 
5182 
5187 #define MHD_DIGEST_AUTH_INVALID_NC_VALUE (0)
5188 
5200 {
5208 
5213 
5225  char *username;
5226 
5232 
5243 
5250 
5265  uint8_t *userhash_bin;
5266 
5273  char *opaque;
5274 
5279  size_t opaque_len;
5280 
5287  char *realm;
5288 
5293  size_t realm_len;
5294 
5298  enum MHD_DigestAuthQOP qop;
5299 
5308  size_t cnonce_len;
5309 
5319  uint32_t nc;
5320 };
5321 
5322 
5336 
5337 
5349 {
5357 
5364 
5376  char *username;
5377 
5383 
5394 
5401 
5416  uint8_t *userhash_bin;
5417 };
5418 
5419 
5435 MHD_digest_auth_get_username3 (struct MHD_Connection *connection);
5436 
5437 
5446 {
5451 
5456 
5463 
5468 
5473 
5478 
5483 
5488 
5493 
5494  /* The different form of naming is intentionally used for the results below,
5495  * as they are more important */
5496 
5503 
5517 
5522 
5528 };
5529 
5530 
5563 MHD_digest_auth_check3 (struct MHD_Connection *connection,
5564  const char *realm,
5565  const char *username,
5566  const char *password,
5567  unsigned int nonce_timeout,
5568  uint32_t max_nc,
5569  enum MHD_DigestAuthMultiQOP mqop,
5570  enum MHD_DigestAuthMultiAlgo3 malgo3);
5571 
5572 
5608  const char *username,
5609  const char *realm,
5610  const char *password,
5611  void *userdigest_bin,
5612  size_t bin_buf_size);
5613 
5614 
5658 MHD_digest_auth_check_digest3 (struct MHD_Connection *connection,
5659  const char *realm,
5660  const char *username,
5661  const void *userdigest,
5662  size_t userdigest_size,
5663  unsigned int nonce_timeout,
5664  uint32_t max_nc,
5665  enum MHD_DigestAuthMultiQOP mqop,
5666  enum MHD_DigestAuthMultiAlgo3 malgo3);
5667 
5668 
5733  const char *realm,
5734  const char *opaque,
5735  const char *domain,
5736  struct MHD_Response *response,
5737  int signal_stale,
5738  enum MHD_DigestAuthMultiQOP mqop,
5739  enum MHD_DigestAuthMultiAlgo3 algo,
5740  int userhash_support,
5741  int prefer_utf8);
5742 
5743 
5751 #define MHD_INVALID_NONCE -1
5752 
5753 
5769 _MHD_EXTERN char *
5770 MHD_digest_auth_get_username (struct MHD_Connection *connection);
5771 
5772 
5779 {
5780 
5785 
5790 
5795 
5797 
5798 
5815 _MHD_EXTERN int
5816 MHD_digest_auth_check2 (struct MHD_Connection *connection,
5817  const char *realm,
5818  const char *username,
5819  const char *password,
5820  unsigned int nonce_timeout,
5821  enum MHD_DigestAuthAlgorithm algo);
5822 
5823 
5842 _MHD_EXTERN int
5843 MHD_digest_auth_check (struct MHD_Connection *connection,
5844  const char *realm,
5845  const char *username,
5846  const char *password,
5847  unsigned int nonce_timeout);
5848 
5849 
5869 _MHD_EXTERN int
5870 MHD_digest_auth_check_digest2 (struct MHD_Connection *connection,
5871  const char *realm,
5872  const char *username,
5873  const uint8_t *digest,
5874  size_t digest_size,
5875  unsigned int nonce_timeout,
5876  enum MHD_DigestAuthAlgorithm algo);
5877 
5878 
5898 _MHD_EXTERN int
5899 MHD_digest_auth_check_digest (struct MHD_Connection *connection,
5900  const char *realm,
5901  const char *username,
5902  const uint8_t digest[MHD_MD5_DIGEST_SIZE],
5903  unsigned int nonce_timeout);
5904 
5905 
5927 MHD_queue_auth_fail_response2 (struct MHD_Connection *connection,
5928  const char *realm,
5929  const char *opaque,
5930  struct MHD_Response *response,
5931  int signal_stale,
5932  enum MHD_DigestAuthAlgorithm algo);
5933 
5934 
5956 MHD_queue_auth_fail_response (struct MHD_Connection *connection,
5957  const char *realm,
5958  const char *opaque,
5959  struct MHD_Response *response,
5960  int signal_stale);
5961 
5962 
5963 /* ********************* Basic Authentication functions *************** */
5964 
5965 
5979 {
5985  char *username;
5986 
5991 
5997  char *password;
5998 
6004 };
6005 
6020 
6049  const char *realm,
6050  int prefer_utf8,
6051  struct MHD_Response *response);
6052 
6063 _MHD_EXTERN char *
6065  char **password);
6066 
6067 
6083  const char *realm,
6084  struct MHD_Response *response);
6085 
6086 /* ********************** generic query functions ********************** */
6087 
6088 
6101 _MHD_EXTERN const union MHD_ConnectionInfo *
6102 MHD_get_connection_info (struct MHD_Connection *connection,
6103  enum MHD_ConnectionInfoType info_type,
6104  ...);
6105 
6106 
6112 {
6113 
6124 
6126 
6127 
6138 MHD_set_connection_option (struct MHD_Connection *connection,
6139  enum MHD_CONNECTION_OPTION option,
6140  ...);
6141 
6142 
6147 {
6152  size_t key_size;
6153 
6159 
6164 
6168  uint16_t port;
6169 
6174 
6178  unsigned int num_connections;
6179 
6186  enum MHD_FLAG flags;
6187 };
6188 
6189 
6202 _MHD_EXTERN const union MHD_DaemonInfo *
6203 MHD_get_daemon_info (struct MHD_Daemon *daemon,
6204  enum MHD_DaemonInfoType info_type,
6205  ...);
6206 
6207 
6214 _MHD_EXTERN const char *
6215 MHD_get_version (void);
6216 
6217 
6226 _MHD_EXTERN uint32_t
6227 MHD_get_version_bin (void);
6228 
6229 
6235 {
6241 
6251 
6257 
6263 
6271 
6277 
6284 
6291 
6297 
6304 
6311 
6319 
6327 
6334 
6344 
6350 
6357 
6370 
6376 
6383 
6390 
6395 
6401 
6409 
6418 
6427 
6436 
6445 
6453 
6461 
6469 
6483 
6491 
6500 };
6501 
6502 
6515 MHD_is_feature_supported (enum MHD_FEATURE feature);
6516 
6517 
6518 #ifdef __cplusplus
6519 #if 0 /* keep Emacsens' auto-indent happy */
6520 {
6521 #endif
6522 }
6523 #endif
6524 
6525 #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)
Definition: digestauth.c:1937
_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)
Definition: digestauth.c:4066
_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)
Definition: digestauth.c:3330
_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)
Definition: digestauth.c:3969
_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)
Definition: digestauth.c:3386
_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)
Definition: digestauth.c:2117
_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)
Definition: digestauth.c:3246
_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)
Definition: digestauth.c:4022
_MHD_EXTERN struct MHD_DigestAuthInfo * MHD_digest_auth_get_request_info3(struct MHD_Connection *connection)
Definition: digestauth.c:1268
_MHD_EXTERN size_t MHD_digest_get_hash_size(enum MHD_DigestAuthAlgo3 algo3)
Definition: digestauth.c:295
_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)
Definition: digestauth.c:3443
_MHD_EXTERN char * MHD_digest_auth_get_username(struct MHD_Connection *connection)
Definition: digestauth.c:1414
_MHD_EXTERN int MHD_digest_auth_check(struct MHD_Connection *connection, const char *realm, const char *username, const char *password, unsigned int nonce_timeout)
Definition: digestauth.c:3133
_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)
Definition: digestauth.c:3180
_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)
Definition: digestauth.c:2042
_MHD_EXTERN struct MHD_DigestAuthUsernameInfo * MHD_digest_auth_get_username3(struct MHD_Connection *connection)
Definition: digestauth.c:1356
#define MHD_MD5_DIGEST_SIZE
Definition: microhttpd.h:4683
_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)
Definition: microhttpd.h:3510
_MHD_EXTERN void MHD_stop_daemon(struct MHD_Daemon *daemon)
Definition: daemon.c:9268
_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:7665
_MHD_EXTERN enum MHD_Result MHD_run(struct MHD_Daemon *daemon)
Definition: daemon.c:5824
_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:1188
#define MHD_get_fdset(daemon, read_fd_set, write_fd_set, except_fd_set, max_fd)
Definition: microhttpd.h:3156
_MHD_EXTERN enum MHD_Result MHD_get_timeout(struct MHD_Daemon *daemon, MHD_UNSIGNED_LONG_LONG *timeout)
Definition: daemon.c:4173
_MHD_EXTERN enum MHD_Result MHD_get_timeout64(struct MHD_Daemon *daemon, uint64_t *timeout)
Definition: daemon.c:4227
_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:4650
_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:6103
_MHD_EXTERN enum MHD_Result MHD_run_wait(struct MHD_Daemon *daemon, int32_t millisec)
Definition: daemon.c:5874
void(* MHD_PanicCallback)(void *cls, const char *file, unsigned int line, const char *reason)
Definition: microhttpd.h:2634
_MHD_EXTERN void MHD_set_panic_func(MHD_PanicCallback cb, void *cls)
Definition: panic.c:56
void(* MHD_LogCallback)(void *cls, const char *fm, va_list ap)
Definition: microhttpd.h:1560
MHD_ConnectionNotificationCode
Definition: microhttpd.h:2354
_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)
Definition: connection.c:992
enum MHD_Result(* MHD_KeyValueIterator)(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
Definition: microhttpd.h:2789
_MHD_EXTERN const char * MHD_lookup_connection_value(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key)
Definition: connection.c:1021
_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)
Definition: microhttpd.h:2814
_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:832
_MHD_EXTERN int MHD_get_connection_values(struct MHD_Connection *connection, enum MHD_ValueKind kind, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition: connection.c:793
_MHD_EXTERN struct MHD_PostProcessor * MHD_create_post_processor(struct MHD_Connection *connection, size_t buffer_size, MHD_PostDataIterator iter, void *iter_cls)
Definition: postprocessor.c:43
void(* MHD_RequestCompletedCallback)(void *cls, struct MHD_Connection *connection, void **req_cls, enum MHD_RequestTerminationCode toe)
Definition: microhttpd.h:2741
_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)
Definition: connection.c:945
void(* MHD_NotifyConnectionCallback)(void *cls, struct MHD_Connection *connection, void **socket_context, enum MHD_ConnectionNotificationCode toe)
Definition: microhttpd.h:2767
MHD_ConnectionInfoType
Definition: microhttpd.h:2469
_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)
Definition: connection.c:1058
#define _MHD_FIXED_ENUM
Definition: microhttpd.h:149
MHD_RequestTerminationCode
Definition: microhttpd.h:2296
@ MHD_CONNECTION_NOTIFY_STARTED
Definition: microhttpd.h:2360
@ MHD_CONNECTION_NOTIFY_CLOSED
Definition: microhttpd.h:2366
@ MHD_CONNECTION_INFO_CONNECTION_TIMEOUT
Definition: microhttpd.h:2541
@ MHD_CONNECTION_INFO_SOCKET_CONTEXT
Definition: microhttpd.h:2529
@ MHD_CONNECTION_INFO_GNUTLS_SESSION
Definition: microhttpd.h:2497
@ MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE
Definition: microhttpd.h:2547
@ MHD_CONNECTION_INFO_CIPHER_ALGO
Definition: microhttpd.h:2475
@ MHD_CONNECTION_INFO_CONNECTION_SUSPENDED
Definition: microhttpd.h:2535
@ MHD_CONNECTION_INFO_CLIENT_ADDRESS
Definition: microhttpd.h:2491
@ MHD_CONNECTION_INFO_DAEMON
Definition: microhttpd.h:2511
@ MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT
Definition: microhttpd.h:2505
@ MHD_CONNECTION_INFO_HTTP_STATUS
Definition: microhttpd.h:2553
@ MHD_CONNECTION_INFO_CONNECTION_FD
Definition: microhttpd.h:2519
@ MHD_CONNECTION_INFO_PROTOCOL
Definition: microhttpd.h:2482
@ MHD_REQUEST_TERMINATED_TIMEOUT_REACHED
Definition: microhttpd.h:2319
@ MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN
Definition: microhttpd.h:2326
@ MHD_REQUEST_TERMINATED_COMPLETED_OK
Definition: microhttpd.h:2302
@ MHD_REQUEST_TERMINATED_WITH_ERROR
Definition: microhttpd.h:2311
@ MHD_REQUEST_TERMINATED_READ_ERROR
Definition: microhttpd.h:2336
@ MHD_REQUEST_TERMINATED_CLIENT_ABORT
Definition: microhttpd.h:2343
_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:1682
_MHD_EXTERN int MHD_get_response_headers(struct MHD_Response *response, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition: response.c:823
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_with_free_callback(size_t size, void *buffer, MHD_ContentReaderFreeCallback crfc)
Definition: response.c:1593
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_copy(size_t size, const void *buffer)
Definition: response.c:1540
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer(size_t size, void *buffer, enum MHD_ResponseMemoryMode mode)
Definition: response.c:1465
_MHD_EXTERN enum MHD_Result MHD_del_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition: response.c:741
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_pipe(int fd)
Definition: response.c:1335
_MHD_EXTERN enum MHD_Result MHD_queue_response(struct MHD_Connection *connection, unsigned int status_code, struct MHD_Response *response)
Definition: connection.c:7850
_MHD_EXTERN void MHD_destroy_response(struct MHD_Response *response)
Definition: response.c:2289
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd(size_t size, int fd)
Definition: response.c:1370
_MHD_EXTERN struct MHD_Response * MHD_create_response_empty(enum MHD_ResponseFlags flags)
Definition: response.c:1826
MHD_ResponseMemoryMode
Definition: microhttpd.h:3979
_MHD_EXTERN const char * MHD_get_response_header(struct MHD_Response *response, const char *key)
Definition: response.c:855
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_static(size_t size, const void *buffer)
Definition: response.c:1507
void(* MHD_ContentReaderFreeCallback)(void *cls)
Definition: microhttpd.h:2884
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd_at_offset64(uint64_t size, int fd, uint64_t offset)
Definition: response.c:1284
_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:1627
_MHD_EXTERN enum MHD_Result MHD_add_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition: response.c:620
_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:987
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd64(uint64_t size, int fd)
Definition: response.c:1400
_MHD_EXTERN enum MHD_Result MHD_add_response_footer(struct MHD_Response *response, const char *footer, const char *content)
Definition: response.c:715
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_data(size_t size, void *data, int must_free, int must_copy)
Definition: response.c:1429
@ MHD_RESPMEM_MUST_FREE
Definition: microhttpd.h:4001
@ MHD_RESPMEM_PERSISTENT
Definition: microhttpd.h:3987
@ MHD_RESPMEM_MUST_COPY
Definition: microhttpd.h:4010
_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:3603
_MHD_EXTERN enum MHD_Result MHD_is_feature_supported(enum MHD_FEATURE feature)
Definition: daemon.c:9574
_MHD_EXTERN enum MHD_Result MHD_set_connection_option(struct MHD_Connection *connection, enum MHD_CONNECTION_OPTION option,...)
Definition: connection.c:7737
_MHD_EXTERN MHD_socket MHD_quiesce_daemon(struct MHD_Daemon *daemon)
Definition: daemon.c:6148
_MHD_EXTERN const union MHD_DaemonInfo * MHD_get_daemon_info(struct MHD_Daemon *daemon, enum MHD_DaemonInfoType info_type,...)
Definition: daemon.c:9457
_MHD_EXTERN const union MHD_ConnectionInfo * MHD_get_connection_info(struct MHD_Connection *connection, enum MHD_ConnectionInfoType info_type,...)
Definition: connection.c:7636
_MHD_EXTERN uint32_t MHD_get_version_bin(void)
Definition: daemon.c:9556
_MHD_EXTERN const char * MHD_get_version(void)
Definition: version.c:35
_MHD_EXTERN void MHD_free(void *ptr)
Definition: daemon.c:213
int MHD_socket
Definition: microhttpd.h:201
MHD_FEATURE
Definition: microhttpd.h:6235
@ MHD_FEATURE_POSTPROCESSOR
Definition: microhttpd.h:6326
@ MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
Definition: microhttpd.h:6290
@ MHD_FEATURE_DIGEST_AUTH_USERHASH
Definition: microhttpd.h:6468
@ MHD_FEATURE_THREADS
Definition: microhttpd.h:6394
@ MHD_FEATURE_DIGEST_AUTH_AUTH_INT
Definition: microhttpd.h:6452
@ MHD_FEATURE_DIGEST_AUTH_SHA256
Definition: microhttpd.h:6435
@ MHD_FEATURE_SENDFILE
Definition: microhttpd.h:6389
@ MHD_FEATURE_AUTODETECT_BIND_PORT
Definition: microhttpd.h:6375
@ MHD_FEATURE_LARGE_FILE
Definition: microhttpd.h:6343
@ MHD_FEATURE_DIGEST_AUTH_SHA512_256
Definition: microhttpd.h:6444
@ MHD_FEATURE_EXTERN_HASH
Definition: microhttpd.h:6482
@ MHD_FEATURE_HTTPS_CERT_CALLBACK
Definition: microhttpd.h:6256
@ MHD_THREAD_NAMES
Definition: microhttpd.h:6349
@ MHD_FEATURE_BASIC_AUTH
Definition: microhttpd.h:6310
@ MHD_FEATURE_DIGEST_AUTH
Definition: microhttpd.h:6318
@ MHD_FEATURE_IPv6
Definition: microhttpd.h:6262
@ MHD_FEATURE_POLL
Definition: microhttpd.h:6276
@ MHD_FEATURE_THREAD_NAMES
Definition: microhttpd.h:6348
@ MHD_FEATURE_DEBUG_BUILD
Definition: microhttpd.h:6490
@ MHD_FEATURE_FLEXIBLE_FD_SETSIZE
Definition: microhttpd.h:6499
@ MHD_FEATURE_EPOLL
Definition: microhttpd.h:6283
@ MHD_FEATURE_TLS
Definition: microhttpd.h:6249
@ MHD_FEATURE_HTTPS_KEY_PASSWORD
Definition: microhttpd.h:6333
@ MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
Definition: microhttpd.h:6382
@ MHD_FEATURE_RESPONSES_SHARED_FD
Definition: microhttpd.h:6369
@ MHD_FEATURE_MESSAGES
Definition: microhttpd.h:6240
@ MHD_FEATURE_SSL
Definition: microhttpd.h:6250
@ MHD_FEATURE_IPv6_ONLY
Definition: microhttpd.h:6270
@ MHD_FEATURE_DIGEST_AUTH_ALGO_SESSION
Definition: microhttpd.h:6460
@ MHD_FEATURE_DIGEST_AUTH_MD5
Definition: microhttpd.h:6426
@ MHD_FEATURE_UPGRADE
Definition: microhttpd.h:6356
@ MHD_FEATURE_SOCKETPAIR
Definition: microhttpd.h:6296
@ MHD_FEATURE_HTTPS_COOKIE_PARSING
Definition: microhttpd.h:6408
@ MHD_FEATURE_TCP_FASTOPEN
Definition: microhttpd.h:6303
@ MHD_FEATURE_DIGEST_AUTH_RFC2069
Definition: microhttpd.h:6417
@ MHD_FEATURE_HTTPS_CERT_CALLBACK2
Definition: microhttpd.h:6400
MHD_OPTION
MHD options.
Definition: microhttpd.h:1655
@ MHD_OPTION_HTTPS_PRIORITIES_APPEND
Definition: microhttpd.h:2092
@ MHD_OPTION_CONNECTION_MEMORY_INCREMENT
Definition: microhttpd.h:1916
@ MHD_OPTION_HTTPS_CRED_TYPE
Definition: microhttpd.h:1778
@ MHD_OPTION_URI_LOG_CALLBACK
Definition: microhttpd.h:1755
@ MHD_OPTION_HTTPS_CERT_CALLBACK2
Definition: microhttpd.h:2023
@ MHD_OPTION_DIGEST_AUTH_DEFAULT_NONCE_TIMEOUT
Definition: microhttpd.h:2185
@ MHD_OPTION_CLIENT_DISCIPLINE_LVL
Definition: microhttpd.h:2138
@ MHD_OPTION_SOCK_ADDR_LEN
Definition: microhttpd.h:2176
@ MHD_OPTION_APP_FD_SETSIZE
Definition: microhttpd.h:2160
@ MHD_OPTION_SIGPIPE_HANDLED_BY_APP
Definition: microhttpd.h:2045
@ MHD_OPTION_UNESCAPE_CALLBACK
Definition: microhttpd.h:1868
@ MHD_OPTION_EXTERNAL_LOGGER
Definition: microhttpd.h:1816
@ MHD_OPTION_TLS_NO_ALPN
Definition: microhttpd.h:2054
@ MHD_OPTION_LISTEN_BACKLOG_SIZE
Definition: microhttpd.h:1985
@ MHD_OPTION_HTTPS_PRIORITIES
Definition: microhttpd.h:1791
@ MHD_OPTION_HTTPS_MEM_DHPARAMS
Definition: microhttpd.h:1948
@ MHD_OPTION_NOTIFY_CONNECTION
Definition: microhttpd.h:1977
@ MHD_OPTION_LISTENING_ADDRESS_REUSE
Definition: microhttpd.h:1957
@ MHD_OPTION_THREAD_POOL_SIZE
Definition: microhttpd.h:1825
@ MHD_OPTION_CONNECTION_LIMIT
Definition: microhttpd.h:1678
@ MHD_OPTION_PER_IP_CONNECTION_LIMIT
Definition: microhttpd.h:1713
@ MHD_OPTION_DIGEST_AUTH_DEFAULT_MAX_NC
Definition: microhttpd.h:2194
@ MHD_OPTION_TCP_FASTOPEN_QUEUE_SIZE
Definition: microhttpd.h:1941
@ MHD_OPTION_HTTPS_MEM_CERT
Definition: microhttpd.h:1771
@ MHD_OPTION_SERVER_INSANITY
Definition: microhttpd.h:2034
@ MHD_OPTION_LISTEN_SOCKET
Definition: microhttpd.h:1801
@ MHD_OPTION_HTTPS_MEM_KEY
Definition: microhttpd.h:1763
@ MHD_OPTION_DIGEST_AUTH_RANDOM
Definition: microhttpd.h:1883
@ MHD_OPTION_HTTPS_KEY_PASSWORD
Definition: microhttpd.h:1966
@ MHD_OPTION_NONCE_NC_SIZE
Definition: microhttpd.h:1895
@ MHD_OPTION_CONNECTION_MEMORY_LIMIT
Definition: microhttpd.h:1672
@ MHD_OPTION_THREAD_STACK_SIZE
Definition: microhttpd.h:1901
@ MHD_OPTION_DIGEST_AUTH_RANDOM_COPY
Definition: microhttpd.h:2069
@ MHD_OPTION_ARRAY
Definition: microhttpd.h:1846
@ MHD_OPTION_STRICT_FOR_CLIENT
Definition: microhttpd.h:2004
@ MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE
Definition: microhttpd.h:2080
@ MHD_OPTION_SOCK_ADDR
Definition: microhttpd.h:1723
@ MHD_OPTION_CONNECTION_TIMEOUT
Definition: microhttpd.h:1687
@ MHD_OPTION_GNUTLS_PSK_CRED_HANDLER
Definition: microhttpd.h:2012
@ MHD_OPTION_END
Definition: microhttpd.h:1661
@ MHD_OPTION_HTTPS_MEM_TRUST
Definition: microhttpd.h:1908
@ MHD_OPTION_HTTPS_CERT_CALLBACK
Definition: microhttpd.h:1932
@ MHD_OPTION_NOTIFY_COMPLETED
Definition: microhttpd.h:1701
#define MHD_RESPONSE_HEADER_KIND
Definition: microhttpd.h:2252
MHD_DisableSanityCheck
Definition: microhttpd.h:2204
@ MHD_DSC_SANE
Definition: microhttpd.h:2208
MHD_DigestAuthResult
Definition: microhttpd.h:5446
@ MHD_DAUTH_NONCE_WRONG
Definition: microhttpd.h:5521
@ MHD_DAUTH_RESPONSE_WRONG
Definition: microhttpd.h:5527
@ MHD_DAUTH_WRONG_HEADER
Definition: microhttpd.h:5462
@ MHD_DAUTH_NONCE_STALE
Definition: microhttpd.h:5502
@ MHD_DAUTH_ERROR
Definition: microhttpd.h:5455
@ MHD_DAUTH_WRONG_QOP
Definition: microhttpd.h:5482
@ MHD_DAUTH_OK
Definition: microhttpd.h:5450
@ MHD_DAUTH_NONCE_OTHER_COND
Definition: microhttpd.h:5516
@ MHD_DAUTH_WRONG_REALM
Definition: microhttpd.h:5472
@ MHD_DAUTH_WRONG_URI
Definition: microhttpd.h:5477
@ MHD_DAUTH_WRONG_ALGO
Definition: microhttpd.h:5487
@ MHD_DAUTH_TOO_LARGE
Definition: microhttpd.h:5492
@ MHD_DAUTH_WRONG_USERNAME
Definition: microhttpd.h:5467
MHD_Result
Definition: microhttpd.h:158
@ MHD_YES
Definition: microhttpd.h:167
@ MHD_NO
Definition: microhttpd.h:162
#define MHD_DIGEST_AUTH_ALGO3_SESSION
Definition: microhttpd.h:4747
int off_t offset
Definition: microhttpd.h:4243
#define _MHD_EXTERN
Definition: microhttpd.h:191
#define MHD_DIGEST_AUTH_ALGO3_NON_SESSION
Definition: microhttpd.h:4740
_MHD_EXTERN struct MHD_Response * MHD_create_response_for_upgrade(MHD_UpgradeHandler upgrade_handler, void *upgrade_handler_cls)
MHD_DigestAuthMultiQOP
Definition: microhttpd.h:5138
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH_INT
Definition: microhttpd.h:5164
@ MHD_DIGEST_AUTH_MULT_QOP_INVALID
Definition: microhttpd.h:5142
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH
Definition: microhttpd.h:5157
@ MHD_DIGEST_AUTH_MULT_QOP_ANY_NON_INT
Definition: microhttpd.h:5172
@ MHD_DIGEST_AUTH_MULT_QOP_AUTH_ANY
Definition: microhttpd.h:5179
@ MHD_DIGEST_AUTH_MULT_QOP_NONE
Definition: microhttpd.h:5152
#define _MHD_FLAGS_ENUM
Definition: microhttpd.h:146
MHD_DigestBaseAlgo
Definition: microhttpd.h:4710
@ MHD_DIGEST_BASE_ALGO_INVALID
Definition: microhttpd.h:4714
@ MHD_DIGEST_BASE_ALGO_SHA256
Definition: microhttpd.h:4726
@ MHD_DIGEST_BASE_ALGO_SHA512_256
Definition: microhttpd.h:4732
@ MHD_DIGEST_BASE_ALGO_MD5
Definition: microhttpd.h:4720
enum MHD_Result(* MHD_AcceptPolicyCallback)(void *cls, const struct sockaddr *addr, socklen_t addrlen)
Definition: microhttpd.h:2648
void int int must_copy
Definition: microhttpd.h:3970
#define MHD_create_response_from_fd_at_offset(size, fd, offset)
Definition: microhttpd.h:4248
#define MHD_UNSIGNED_LONG_LONG
Definition: microhttpd.h:305
#define _MHD_DEPR_MACRO(msg)
Definition: microhttpd.h:261
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)
Definition: microhttpd.h:2718
void int must_free
Definition: microhttpd.h:3969
MHD_DigestAuthAlgo3
Definition: microhttpd.h:4756
@ MHD_DIGEST_AUTH_ALGO3_MD5_SESSION
Definition: microhttpd.h:4774
@ MHD_DIGEST_AUTH_ALGO3_MD5
Definition: microhttpd.h:4767
@ MHD_DIGEST_AUTH_ALGO3_SHA256
Definition: microhttpd.h:4780
@ MHD_DIGEST_AUTH_ALGO3_SHA512_256_SESSION
Definition: microhttpd.h:4800
@ MHD_DIGEST_AUTH_ALGO3_INVALID
Definition: microhttpd.h:4762
@ MHD_DIGEST_AUTH_ALGO3_SHA256_SESSION
Definition: microhttpd.h:4787
@ MHD_DIGEST_AUTH_ALGO3_SHA512_256
Definition: microhttpd.h:4793
MHD_DigestAuthQOP
Definition: microhttpd.h:5099
@ MHD_DIGEST_AUTH_QOP_AUTH
Definition: microhttpd.h:5120
@ MHD_DIGEST_AUTH_QOP_INVALID
Definition: microhttpd.h:5105
@ MHD_DIGEST_AUTH_QOP_NONE
Definition: microhttpd.h:5115
@ MHD_DIGEST_AUTH_QOP_AUTH_INT
Definition: microhttpd.h:5126
int fd
Definition: microhttpd.h:4242
_MHD_EXTERN void MHD_resume_connection(struct MHD_Connection *connection)
Definition: daemon.c:3365
void * data
Definition: microhttpd.h:3968
_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:142
ssize_t(* MHD_ContentReaderCallback)(void *cls, uint64_t pos, char *buf, size_t max)
Definition: microhttpd.h:2868
#define _MHD_FIXED_FLAGS_ENUM
Definition: microhttpd.h:152
#define _MHD_DEPR_FUNC(msg)
Definition: microhttpd.h:292
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)
Definition: microhttpd.h:2908
MHD_UpgradeAction
Definition: microhttpd.h:4338
@ MHD_UPGRADE_ACTION_CORK_ON
Definition: microhttpd.h:4350
@ MHD_UPGRADE_ACTION_CLOSE
Definition: microhttpd.h:4345
@ MHD_UPGRADE_ACTION_CORK_OFF
Definition: microhttpd.h:4355
MHD_DigestAuthUsernameType
Definition: microhttpd.h:5056
@ MHD_DIGEST_AUTH_UNAME_TYPE_STANDARD
Definition: microhttpd.h:5066
@ MHD_DIGEST_AUTH_UNAME_TYPE_MISSING
Definition: microhttpd.h:5061
@ MHD_DIGEST_AUTH_UNAME_TYPE_INVALID
Definition: microhttpd.h:5091
@ MHD_DIGEST_AUTH_UNAME_TYPE_EXTENDED
Definition: microhttpd.h:5074
@ MHD_DIGEST_AUTH_UNAME_TYPE_USERHASH
Definition: microhttpd.h:5081
MHD_ValueKind
Definition: microhttpd.h:2245
@ MHD_POSTDATA_KIND
Definition: microhttpd.h:2276
@ MHD_FOOTER_KIND
Definition: microhttpd.h:2286
@ MHD_COOKIE_KIND
Definition: microhttpd.h:2266
@ MHD_HEADER_KIND
Definition: microhttpd.h:2260
@ MHD_GET_ARGUMENT_KIND
Definition: microhttpd.h:2281
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)
Definition: microhttpd.h:4434
int(* MHD_PskServerCredentialsCallback)(void *cls, const struct MHD_Connection *connection, const char *username, void **psk, size_t *psk_size)
Definition: microhttpd.h:1578
_MHD_EXTERN const char * MHD_get_reason_phrase_for(unsigned int code)
MHD_DigestAuthMultiAlgo3
Definition: microhttpd.h:4831
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_SESSION
Definition: microhttpd.h:4894
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY_SESSION
Definition: microhttpd.h:4903
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256_ANY
Definition: microhttpd.h:4917
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256
Definition: microhttpd.h:4852
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256
Definition: microhttpd.h:4865
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY_NON_SESSION
Definition: microhttpd.h:4886
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256_SESSION
Definition: microhttpd.h:4872
@ MHD_DIGEST_AUTH_MULT_ALGO3_ANY
Definition: microhttpd.h:4940
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA512_256_ANY
Definition: microhttpd.h:4925
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_ANY
Definition: microhttpd.h:4933
@ MHD_DIGEST_AUTH_MULT_ALGO3_INVALID
Definition: microhttpd.h:4835
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5_SESSION
Definition: microhttpd.h:4847
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5_ANY
Definition: microhttpd.h:4910
@ MHD_DIGEST_AUTH_MULT_ALGO3_MD5
Definition: microhttpd.h:4840
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA256_SESSION
Definition: microhttpd.h:4859
@ MHD_DIGEST_AUTH_MULT_ALGO3_SHA_ANY_NON_SESSION
Definition: microhttpd.h:4879
MHD_DaemonInfoType
Definition: microhttpd.h:2563
@ MHD_DAEMON_INFO_MAC_KEY_SIZE
Definition: microhttpd.h:2572
@ MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY
Definition: microhttpd.h:2592
@ MHD_DAEMON_INFO_BIND_PORT
Definition: microhttpd.h:2618
@ MHD_DAEMON_INFO_EPOLL_FD
Definition: microhttpd.h:2593
@ MHD_DAEMON_INFO_FLAGS
Definition: microhttpd.h:2610
@ MHD_DAEMON_INFO_KEY_SIZE
Definition: microhttpd.h:2567
@ MHD_DAEMON_INFO_CURRENT_CONNECTIONS
Definition: microhttpd.h:2602
@ MHD_DAEMON_INFO_LISTEN_FD
Definition: microhttpd.h:2578
MHD_FLAG
Flags for the struct MHD_Daemon.
Definition: microhttpd.h:1243
@ MHD_USE_EPOLL
Definition: microhttpd.h:1392
@ MHD_ALLOW_SUSPEND_RESUME
Definition: microhttpd.h:1478
@ MHD_USE_TCP_FASTOPEN
Definition: microhttpd.h:1494
@ MHD_USE_THREAD_PER_CONNECTION
Definition: microhttpd.h:1285
@ MHD_USE_EPOLL_INTERNALLY
Definition: microhttpd.h:1413
@ MHD_USE_AUTO
Definition: microhttpd.h:1514
@ MHD_USE_EPOLL_LINUX_ONLY
Definition: microhttpd.h:1395
@ MHD_SUPPRESS_DATE_NO_CLOCK
Definition: microhttpd.h:1368
@ MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT
Definition: microhttpd.h:1528
@ MHD_USE_DEBUG
Definition: microhttpd.h:1260
@ MHD_USE_TURBO
Definition: microhttpd.h:1463
@ MHD_USE_IPv6
Definition: microhttpd.h:1315
@ MHD_USE_SUPPRESS_DATE_NO_CLOCK
Definition: microhttpd.h:1365
@ MHD_USE_SUSPEND_RESUME
Definition: microhttpd.h:1481
@ MHD_USE_DUAL_STACK
Definition: microhttpd.h:1455
@ MHD_USE_POLL
Definition: microhttpd.h:1342
@ MHD_NO_FLAG
Definition: microhttpd.h:1247
@ MHD_USE_POLL_INTERNAL_THREAD
Definition: microhttpd.h:1348
@ MHD_USE_SELECT_INTERNALLY
Definition: microhttpd.h:1300
@ MHD_USE_EPOLL_INTERNAL_THREAD
Definition: microhttpd.h:1409
@ MHD_USE_TLS
Definition: microhttpd.h:1265
@ MHD_USE_PIPE_FOR_SHUTDOWN
Definition: microhttpd.h:1444
@ MHD_USE_AUTO_INTERNAL_THREAD
Definition: microhttpd.h:1522
@ MHD_USE_INSECURE_TLS_EARLY_DATA
Definition: microhttpd.h:1534
@ MHD_USE_SSL
Definition: microhttpd.h:1268
@ MHD_ALLOW_UPGRADE
Definition: microhttpd.h:1501
@ MHD_USE_ERROR_LOG
Definition: microhttpd.h:1254
@ MHD_USE_EPOLL_TURBO
Definition: microhttpd.h:1466
@ MHD_USE_POLL_INTERNALLY
Definition: microhttpd.h:1351
@ MHD_USE_NO_LISTEN_SOCKET
Definition: microhttpd.h:1383
@ MHD_USE_PEDANTIC_CHECKS
Definition: microhttpd.h:1324
@ MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY
Definition: microhttpd.h:1415
@ MHD_USE_INTERNAL_POLLING_THREAD
Definition: microhttpd.h:1297
@ MHD_USE_ITC
Definition: microhttpd.h:1441
@ MHD_USE_NO_THREAD_SAFETY
Definition: microhttpd.h:1546
MHD_ResponseOptions
Definition: microhttpd.h:3895
@ MHD_RO_END
Definition: microhttpd.h:3899
MHD_ResponseFlags
Definition: microhttpd.h:3808
@ MHD_RF_SEND_KEEP_ALIVE_HEADER
Definition: microhttpd.h:3870
@ MHD_RF_HTTP_VERSION_1_0_RESPONSE
Definition: microhttpd.h:3853
@ MHD_RF_HEAD_ONLY_RESPONSE
Definition: microhttpd.h:3887
@ MHD_RF_HTTP_1_0_COMPATIBLE_STRICT
Definition: microhttpd.h:3827
@ MHD_RF_HTTP_1_0_SERVER
Definition: microhttpd.h:3848
@ MHD_RF_INSANITY_HEADER_CONTENT_LENGTH
Definition: microhttpd.h:3862
@ MHD_RF_HTTP_VERSION_1_0_ONLY
Definition: microhttpd.h:3832
@ MHD_RF_NONE
Definition: microhttpd.h:3813
MHD_DigestAuthAlgorithm
Definition: microhttpd.h:5779
@ MHD_DIGEST_ALG_AUTO
Definition: microhttpd.h:5784
@ MHD_DIGEST_ALG_MD5
Definition: microhttpd.h:5789
@ MHD_DIGEST_ALG_SHA256
Definition: microhttpd.h:5794
_MHD_EXTERN enum MHD_Result MHD_set_response_options(struct MHD_Response *response, enum MHD_ResponseFlags flags,...)
Definition: response.c:1028
_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:3322
MHD_DAuthBindNonce
Definition: microhttpd.h:1596
@ MHD_DAUTH_BIND_NONCE_NONE
Definition: microhttpd.h:1612
@ MHD_DAUTH_BIND_NONCE_URI
Definition: microhttpd.h:1629
@ MHD_DAUTH_BIND_NONCE_URI_PARAMS
Definition: microhttpd.h:1637
@ MHD_DAUTH_BIND_NONCE_REALM
Definition: microhttpd.h:1617
@ MHD_DAUTH_BIND_NONCE_CLIENT_IP
Definition: microhttpd.h:1646
MHD_CONNECTION_OPTION
Definition: microhttpd.h:6112
@ MHD_CONNECTION_OPTION_TIMEOUT
Definition: microhttpd.h:6123
void * socket_context
Definition: internal.h:694
uint16_t port
Definition: internal.h:2080
void * apc_cls
Definition: internal.h:2026
MHD_AcceptPolicyCallback apc
Definition: internal.h:2021
uint8_t * userhash_bin
Definition: microhttpd.h:5265
enum MHD_DigestAuthQOP qop
Definition: microhttpd.h:5298
enum MHD_DigestAuthUsernameType uname_type
Definition: microhttpd.h:5212
enum MHD_DigestAuthAlgo3 algo3
Definition: microhttpd.h:5207
enum MHD_DigestAuthAlgo3 algo3
Definition: microhttpd.h:5356
enum MHD_DigestAuthUsernameType uname_type
Definition: microhttpd.h:5363
const void * iov_base
Definition: microhttpd.h:2454
size_t iov_len
Definition: microhttpd.h:2459
intptr_t value
Definition: microhttpd.h:2229
enum MHD_OPTION option
Definition: microhttpd.h:2222
void * ptr_value
Definition: microhttpd.h:2235
struct MHD_Connection * connection
MHD_ContentReaderFreeCallback crfc
Definition: internal.h:1606
void * crc_cls
Definition: internal.h:1594
MHD_ContentReaderCallback crc
Definition: internal.h:1600
enum MHD_ResponseFlags flags
Definition: internal.h:573
unsigned int connection_timeout
Definition: microhttpd.h:2397
struct MHD_Daemon * daemon
Definition: microhttpd.h:2435
unsigned int http_status
Definition: microhttpd.h:2402
struct sockaddr * client_addr
Definition: microhttpd.h:2429
MHD_socket connect_fd
Definition: microhttpd.h:2407
enum MHD_FLAG flags
Definition: microhttpd.h:6186
uint16_t port
Definition: microhttpd.h:6168
size_t mac_key_size
Definition: microhttpd.h:6158
unsigned int num_connections
Definition: microhttpd.h:6178
MHD_socket listen_fd
Definition: microhttpd.h:6163