GNU libmicrohttpd  0.9.72
microhttpd.h
Go to the documentation of this file.
1 /*
2  This file is part of libmicrohttpd
3  Copyright (C) 2006--2020 Christian Grothoff (and other contributing authors)
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Lesser General Public
7  License as published by the Free Software Foundation; either
8  version 2.1 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public
16  License along with this library; if not, write to the Free Software
17  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19 
79 #ifndef MHD_MICROHTTPD_H
80 #define MHD_MICROHTTPD_H
81 
82 #ifdef __cplusplus
83 extern "C"
84 {
85 #if 0 /* keep Emacsens' auto-indent happy */
86 }
87 #endif
88 #endif
89 
90 /* While we generally would like users to use a configure-driven
91  build process which detects which headers are present and
92  hence works on any platform, we use "standard" includes here
93  to build out-of-the-box for beginning users on common systems.
94 
95  If generic headers don't work on your platform, include headers
96  which define 'va_list', 'size_t', 'ssize_t', 'intptr_t',
97  'uint16_t', 'uint32_t', 'uint64_t', 'off_t', 'struct sockaddr',
98  'socklen_t', 'fd_set' and "#define MHD_PLATFORM_H" before
99  including "microhttpd.h". Then the following "standard"
100  includes won't be used (which might be a good idea, especially
101  on platforms where they do not exist).
102  */
103 #ifndef MHD_PLATFORM_H
104 #if defined(_WIN32) && ! defined(__CYGWIN__) && \
105  ! defined(_CRT_DECLARE_NONSTDC_NAMES)
106 #define _CRT_DECLARE_NONSTDC_NAMES 1
107 #endif /* _WIN32 && ! __CYGWIN__ && ! _CRT_DECLARE_NONSTDC_NAMES */
108 #include <stdarg.h>
109 #include <stdint.h>
110 #include <sys/types.h>
111 #if ! defined(_WIN32) || defined(__CYGWIN__)
112 #include <unistd.h>
113 #include <sys/time.h>
114 #include <sys/socket.h>
115 #else /* _WIN32 && ! __CYGWIN__ */
116 /* Declare POSIX-compatible names */
117 #define _CRT_DECLARE_NONSTDC_NAMES 1
118 #include <ws2tcpip.h>
119 #if defined(_MSC_FULL_VER) && ! defined (_SSIZE_T_DEFINED)
120 #define _SSIZE_T_DEFINED
121 typedef intptr_t ssize_t;
122 #endif /* !_SSIZE_T_DEFINED */
123 #endif /* _WIN32 && ! __CYGWIN__ */
124 #endif
125 
126 #if defined(__CYGWIN__) && ! defined(_SYS_TYPES_FD_SET)
127 /* Do not define __USE_W32_SOCKETS under Cygwin! */
128 #error Cygwin with winsock fd_set is not supported
129 #endif
130 
136 #define MHD_VERSION 0x00097200
137 
142 {
146  MHD_NO = 0,
147 
151  MHD_YES = 1
152 
153 };
154 
155 
159 #define MHD_INVALID_NONCE -1
160 
165 #ifdef UINT64_MAX
166 #define MHD_SIZE_UNKNOWN UINT64_MAX
167 #else
168 #define MHD_SIZE_UNKNOWN ((uint64_t) -1LL)
169 #endif
170 
171 #ifdef SIZE_MAX
172 #define MHD_CONTENT_READER_END_OF_STREAM SIZE_MAX
173 #define MHD_CONTENT_READER_END_WITH_ERROR (SIZE_MAX - 1)
174 #else
175 #define MHD_CONTENT_READER_END_OF_STREAM ((size_t) -1LL)
176 #define MHD_CONTENT_READER_END_WITH_ERROR (((size_t) -1LL) - 1)
177 #endif
178 
179 #ifndef _MHD_EXTERN
180 #if defined(_WIN32) && defined(MHD_W32LIB)
181 #define _MHD_EXTERN extern
182 #elif defined (_WIN32) && defined(MHD_W32DLL)
183 /* Define MHD_W32DLL when using MHD as W32 .DLL to speed up linker a little */
184 #define _MHD_EXTERN __declspec(dllimport)
185 #else
186 #define _MHD_EXTERN extern
187 #endif
188 #endif
189 
190 #ifndef MHD_SOCKET_DEFINED
191 
194 #if ! defined(_WIN32) || defined(_SYS_TYPES_FD_SET)
195 #define MHD_POSIX_SOCKETS 1
196 typedef int MHD_socket;
197 #define MHD_INVALID_SOCKET (-1)
198 #else /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
199 #define MHD_WINSOCK_SOCKETS 1
200 #include <winsock2.h>
201 typedef SOCKET MHD_socket;
202 #define MHD_INVALID_SOCKET (INVALID_SOCKET)
203 #endif /* !defined(_WIN32) || defined(_SYS_TYPES_FD_SET) */
204 #define MHD_SOCKET_DEFINED 1
205 #endif /* MHD_SOCKET_DEFINED */
206 
210 #ifdef MHD_NO_DEPRECATION
211 #define _MHD_DEPR_MACRO(msg)
212 #define _MHD_NO_DEPR_IN_MACRO 1
213 #define _MHD_DEPR_IN_MACRO(msg)
214 #define _MHD_NO_DEPR_FUNC 1
215 #define _MHD_DEPR_FUNC(msg)
216 #endif /* MHD_NO_DEPRECATION */
217 
218 #ifndef _MHD_DEPR_MACRO
219 #if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1500
220 /* VS 2008 or later */
221 /* Stringify macros */
222 #define _MHD_INSTRMACRO(a) #a
223 #define _MHD_STRMACRO(a) _MHD_INSTRMACRO (a)
224 /* deprecation message */
225 #define _MHD_DEPR_MACRO(msg) __pragma (message (__FILE__ "(" _MHD_STRMACRO ( \
226  __LINE__) "): warning: " msg))
227 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
228 #elif defined(__clang__) || defined (__GNUC_PATCHLEVEL__)
229 /* clang or GCC since 3.0 */
230 #define _MHD_GCC_PRAG(x) _Pragma (#x)
231 #if (defined(__clang__) && (__clang_major__ + 0 >= 5 || \
232  (! defined(__apple_build_version__) && \
233  (__clang_major__ + 0 > 3 || (__clang_major__ + 0 == 3 && __clang_minor__ >= \
234  3))))) || \
235  __GNUC__ + 0 > 4 || (__GNUC__ + 0 == 4 && __GNUC_MINOR__ + 0 >= 8)
236 /* clang >= 3.3 (or XCode's clang >= 5.0) or
237  GCC >= 4.8 */
238 #define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (GCC warning msg)
239 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
240 #else /* older clang or GCC */
241 /* clang < 3.3, XCode's clang < 5.0, 3.0 <= GCC < 4.8 */
242 #define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG (message msg)
243 #if (defined(__clang__) && (__clang_major__ + 0 > 2 || (__clang_major__ + 0 == \
244  2 && __clang_minor__ >= \
245  9))) /* FIXME: clang >= 2.9, earlier versions not tested */
246 /* clang handles inline pragmas better than GCC */
247 #define _MHD_DEPR_IN_MACRO(msg) _MHD_DEPR_MACRO (msg)
248 #endif /* clang >= 2.9 */
249 #endif /* older clang or GCC */
250 /* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
251 #endif /* clang || GCC >= 3.0 */
252 #endif /* !_MHD_DEPR_MACRO */
253 
254 #ifndef _MHD_DEPR_MACRO
255 #define _MHD_DEPR_MACRO(msg)
256 #endif /* !_MHD_DEPR_MACRO */
257 
258 #ifndef _MHD_DEPR_IN_MACRO
259 #define _MHD_NO_DEPR_IN_MACRO 1
260 #define _MHD_DEPR_IN_MACRO(msg)
261 #endif /* !_MHD_DEPR_IN_MACRO */
262 
263 #ifndef _MHD_DEPR_FUNC
264 #if defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1400
265 /* VS 2005 or later */
266 #define _MHD_DEPR_FUNC(msg) __declspec(deprecated (msg))
267 #elif defined(_MSC_FULL_VER) && _MSC_VER + 0 >= 1310
268 /* VS .NET 2003 deprecation do not support custom messages */
269 #define _MHD_DEPR_FUNC(msg) __declspec(deprecated)
270 #elif (__GNUC__ + 0 >= 5) || (defined (__clang__) && \
271  (__clang_major__ + 0 > 2 || (__clang_major__ + 0 == 2 && __clang_minor__ >= \
272  9))) /* FIXME: earlier versions not tested */
273 /* GCC >= 5.0 or clang >= 2.9 */
274 #define _MHD_DEPR_FUNC(msg) __attribute__((deprecated (msg)))
275 #elif defined (__clang__) || __GNUC__ + 0 > 3 || (__GNUC__ + 0 == 3 && \
276  __GNUC_MINOR__ + 0 >= 1)
277 /* 3.1 <= GCC < 5.0 or clang < 2.9 */
278 /* old GCC-style deprecation do not support custom messages */
279 #define _MHD_DEPR_FUNC(msg) __attribute__((__deprecated__))
280 /* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
281 #endif /* clang < 2.9 || GCC >= 3.1 */
282 #endif /* !_MHD_DEPR_FUNC */
283 
284 #ifndef _MHD_DEPR_FUNC
285 #define _MHD_NO_DEPR_FUNC 1
286 #define _MHD_DEPR_FUNC(msg)
287 #endif /* !_MHD_DEPR_FUNC */
288 
294 #ifndef MHD_LONG_LONG
295 
298 #define MHD_LONG_LONG long long
299 #define MHD_UNSIGNED_LONG_LONG unsigned long long
300 #else /* MHD_LONG_LONG */
302  "Macro MHD_LONG_LONG is deprecated, use MHD_UNSIGNED_LONG_LONG")
303 #endif
304 
308 #ifndef MHD_LONG_LONG_PRINTF
309 
312 #define MHD_LONG_LONG_PRINTF "ll"
313 #define MHD_UNSIGNED_LONG_LONG_PRINTF "%llu"
314 #else /* MHD_LONG_LONG_PRINTF */
316  "Macro MHD_LONG_LONG_PRINTF is deprecated, use MHD_UNSIGNED_LONG_LONG_PRINTF")
317 #endif
318 
319 
323 #define MHD_MD5_DIGEST_SIZE 16
324 
325 
334 /* 100 "Continue". RFC7231, Section 6.2.1. */
335 #define MHD_HTTP_CONTINUE 100
336 /* 101 "Switching Protocols". RFC7231, Section 6.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". RFC7231, Section 6.3.1. */
344 #define MHD_HTTP_OK 200
345 /* 201 "Created". RFC7231, Section 6.3.2. */
346 #define MHD_HTTP_CREATED 201
347 /* 202 "Accepted". RFC7231, Section 6.3.3. */
348 #define MHD_HTTP_ACCEPTED 202
349 /* 203 "Non-Authoritative Information". RFC7231, Section 6.3.4. */
350 #define MHD_HTTP_NON_AUTHORITATIVE_INFORMATION 203
351 /* 204 "No Content". RFC7231, Section 6.3.5. */
352 #define MHD_HTTP_NO_CONTENT 204
353 /* 205 "Reset Content". RFC7231, Section 6.3.6. */
354 #define MHD_HTTP_RESET_CONTENT 205
355 /* 206 "Partial Content". RFC7233, Section 4.1. */
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". RFC7231, Section 6.4.1. */
366 #define MHD_HTTP_MULTIPLE_CHOICES 300
367 /* 301 "Moved Permanently". RFC7231, Section 6.4.2. */
368 #define MHD_HTTP_MOVED_PERMANENTLY 301
369 /* 302 "Found". RFC7231, Section 6.4.3. */
370 #define MHD_HTTP_FOUND 302
371 /* 303 "See Other". RFC7231, Section 6.4.4. */
372 #define MHD_HTTP_SEE_OTHER 303
373 /* 304 "Not Modified". RFC7232, Section 4.1. */
374 #define MHD_HTTP_NOT_MODIFIED 304
375 /* 305 "Use Proxy". RFC7231, Section 6.4.5. */
376 #define MHD_HTTP_USE_PROXY 305
377 /* 306 "Switch Proxy". Not used! RFC7231, Section 6.4.6. */
378 #define MHD_HTTP_SWITCH_PROXY 306
379 /* 307 "Temporary Redirect". RFC7231, Section 6.4.7. */
380 #define MHD_HTTP_TEMPORARY_REDIRECT 307
381 /* 308 "Permanent Redirect". RFC7538. */
382 #define MHD_HTTP_PERMANENT_REDIRECT 308
383 
384 /* 400 "Bad Request". RFC7231, Section 6.5.1. */
385 #define MHD_HTTP_BAD_REQUEST 400
386 /* 401 "Unauthorized". RFC7235, Section 3.1. */
387 #define MHD_HTTP_UNAUTHORIZED 401
388 /* 402 "Payment Required". RFC7231, Section 6.5.2. */
389 #define MHD_HTTP_PAYMENT_REQUIRED 402
390 /* 403 "Forbidden". RFC7231, Section 6.5.3. */
391 #define MHD_HTTP_FORBIDDEN 403
392 /* 404 "Not Found". RFC7231, Section 6.5.4. */
393 #define MHD_HTTP_NOT_FOUND 404
394 /* 405 "Method Not Allowed". RFC7231, Section 6.5.5. */
395 #define MHD_HTTP_METHOD_NOT_ALLOWED 405
396 /* 406 "Not Acceptable". RFC7231, Section 6.5.6. */
397 #define MHD_HTTP_NOT_ACCEPTABLE 406
398 /* 407 "Proxy Authentication Required". RFC7235, Section 3.2. */
399 #define MHD_HTTP_PROXY_AUTHENTICATION_REQUIRED 407
400 /* 408 "Request Timeout". RFC7231, Section 6.5.7. */
401 #define MHD_HTTP_REQUEST_TIMEOUT 408
402 /* 409 "Conflict". RFC7231, Section 6.5.8. */
403 #define MHD_HTTP_CONFLICT 409
404 /* 410 "Gone". RFC7231, Section 6.5.9. */
405 #define MHD_HTTP_GONE 410
406 /* 411 "Length Required". RFC7231, Section 6.5.10. */
407 #define MHD_HTTP_LENGTH_REQUIRED 411
408 /* 412 "Precondition Failed". RFC7232, Section 4.2; RFC8144, Section 3.2. */
409 #define MHD_HTTP_PRECONDITION_FAILED 412
410 /* 413 "Payload Too Large". RFC7231, Section 6.5.11. */
411 #define MHD_HTTP_PAYLOAD_TOO_LARGE 413
412 /* 414 "URI Too Long". RFC7231, Section 6.5.12. */
413 #define MHD_HTTP_URI_TOO_LONG 414
414 /* 415 "Unsupported Media Type". RFC7231, Section 6.5.13; RFC7694, Section 3. */
415 #define MHD_HTTP_UNSUPPORTED_MEDIA_TYPE 415
416 /* 416 "Range Not Satisfiable". RFC7233, Section 4.4. */
417 #define MHD_HTTP_RANGE_NOT_SATISFIABLE 416
418 /* 417 "Expectation Failed". RFC7231, Section 6.5.14. */
419 #define MHD_HTTP_EXPECTATION_FAILED 417
420 
421 /* 421 "Misdirected Request". RFC7540, Section 9.1.2. */
422 #define MHD_HTTP_MISDIRECTED_REQUEST 421
423 /* 422 "Unprocessable Entity". RFC4918. */
424 #define MHD_HTTP_UNPROCESSABLE_ENTITY 422
425 /* 423 "Locked". RFC4918. */
426 #define MHD_HTTP_LOCKED 423
427 /* 424 "Failed Dependency". RFC4918. */
428 #define MHD_HTTP_FAILED_DEPENDENCY 424
429 /* 425 "Too Early". RFC8470. */
430 #define MHD_HTTP_TOO_EARLY 425
431 /* 426 "Upgrade Required". RFC7231, Section 6.5.15. */
432 #define MHD_HTTP_UPGRADE_REQUIRED 426
433 
434 /* 428 "Precondition Required". RFC6585. */
435 #define MHD_HTTP_PRECONDITION_REQUIRED 428
436 /* 429 "Too Many Requests". RFC6585. */
437 #define MHD_HTTP_TOO_MANY_REQUESTS 429
438 
439 /* 431 "Request Header Fields Too Large". RFC6585. */
440 #define MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
441 
442 /* 451 "Unavailable For Legal Reasons". RFC7725. */
443 #define MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
444 
445 /* 500 "Internal Server Error". RFC7231, Section 6.6.1. */
446 #define MHD_HTTP_INTERNAL_SERVER_ERROR 500
447 /* 501 "Not Implemented". RFC7231, Section 6.6.2. */
448 #define MHD_HTTP_NOT_IMPLEMENTED 501
449 /* 502 "Bad Gateway". RFC7231, Section 6.6.3. */
450 #define MHD_HTTP_BAD_GATEWAY 502
451 /* 503 "Service Unavailable". RFC7231, Section 6.6.4. */
452 #define MHD_HTTP_SERVICE_UNAVAILABLE 503
453 /* 504 "Gateway Timeout". RFC7231, Section 6.6.5. */
454 #define MHD_HTTP_GATEWAY_TIMEOUT 504
455 /* 505 "HTTP Version Not Supported". RFC7231, Section 6.6.6. */
456 #define MHD_HTTP_HTTP_VERSION_NOT_SUPPORTED 505
457 /* 506 "Variant Also Negotiates". RFC2295. */
458 #define MHD_HTTP_VARIANT_ALSO_NEGOTIATES 506
459 /* 507 "Insufficient Storage". RFC4918. */
460 #define MHD_HTTP_INSUFFICIENT_STORAGE 507
461 /* 508 "Loop Detected". RFC5842. */
462 #define MHD_HTTP_LOOP_DETECTED 508
463 
464 /* 510 "Not Extended". RFC2774. */
465 #define MHD_HTTP_NOT_EXTENDED 510
466 /* 511 "Network Authentication Required". RFC6585. */
467 #define MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED 511
468 
469 
470 /* Not registered non-standard codes */
471 /* 449 "Reply With". MS IIS extension. */
472 #define MHD_HTTP_RETRY_WITH 449
473 
474 /* 450 "Blocked by Windows Parental Controls". MS extension. */
475 #define MHD_HTTP_BLOCKED_BY_WINDOWS_PARENTAL_CONTROLS 450
476 
477 /* 509 "Bandwidth Limit Exceeded". Apache extension. */
478 #define MHD_HTTP_BANDWIDTH_LIMIT_EXCEEDED 509
479 
480 
481 /* Deprecated codes */
483 #define MHD_HTTP_METHOD_NOT_ACCEPTABLE \
484  _MHD_DEPR_IN_MACRO ( \
485  "Value MHD_HTTP_METHOD_NOT_ACCEPTABLE is deprecated, use MHD_HTTP_NOT_ACCEPTABLE") \
486  406
487 
489 #define MHD_HTTP_REQUEST_ENTITY_TOO_LARGE \
490  _MHD_DEPR_IN_MACRO ( \
491  "Value MHD_HTTP_REQUEST_ENTITY_TOO_LARGE is deprecated, use MHD_HTTP_PAYLOAD_TOO_LARGE") \
492  413
493 
495 #define MHD_HTTP_REQUEST_URI_TOO_LONG \
496  _MHD_DEPR_IN_MACRO ( \
497  "Value MHD_HTTP_REQUEST_URI_TOO_LONG is deprecated, use MHD_HTTP_URI_TOO_LONG") \
498  414
499 
501 #define MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE \
502  _MHD_DEPR_IN_MACRO ( \
503  "Value MHD_HTTP_REQUESTED_RANGE_NOT_SATISFIABLE is deprecated, use MHD_HTTP_RANGE_NOT_SATISFIABLE") \
504  416
505 
507 #define MHD_HTTP_UNORDERED_COLLECTION \
508  _MHD_DEPR_IN_MACRO ( \
509  "Value MHD_HTTP_UNORDERED_COLLECTION is deprecated as it was removed from RFC") \
510  425
511 
513 #define MHD_HTTP_NO_RESPONSE \
514  _MHD_DEPR_IN_MACRO ( \
515  "Value MHD_HTTP_NO_RESPONSE is deprecated as it is nginx internal code for logs only") \
516  444
517 
518  /* end of group httpcode */
520 
527 _MHD_EXTERN const char *
528 MHD_get_reason_phrase_for (unsigned int code);
529 
530 
537 #define MHD_ICY_FLAG ((uint32_t) (((uint32_t) 1) << 31))
538 
547 /* Main HTTP headers. */
548 /* Standard. RFC7231, Section 5.3.2 */
549 #define MHD_HTTP_HEADER_ACCEPT "Accept"
550 /* Standard. RFC7231, Section 5.3.3 */
551 #define MHD_HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset"
552 /* Standard. RFC7231, Section 5.3.4; RFC7694, Section 3 */
553 #define MHD_HTTP_HEADER_ACCEPT_ENCODING "Accept-Encoding"
554 /* Standard. RFC7231, Section 5.3.5 */
555 #define MHD_HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language"
556 /* Standard. RFC7233, Section 2.3 */
557 #define MHD_HTTP_HEADER_ACCEPT_RANGES "Accept-Ranges"
558 /* Standard. RFC7234, Section 5.1 */
559 #define MHD_HTTP_HEADER_AGE "Age"
560 /* Standard. RFC7231, Section 7.4.1 */
561 #define MHD_HTTP_HEADER_ALLOW "Allow"
562 /* Standard. RFC7235, Section 4.2 */
563 #define MHD_HTTP_HEADER_AUTHORIZATION "Authorization"
564 /* Standard. RFC7234, Section 5.2 */
565 #define MHD_HTTP_HEADER_CACHE_CONTROL "Cache-Control"
566 /* Reserved. RFC7230, Section 8.1 */
567 #define MHD_HTTP_HEADER_CLOSE "Close"
568 /* Standard. RFC7230, Section 6.1 */
569 #define MHD_HTTP_HEADER_CONNECTION "Connection"
570 /* Standard. RFC7231, Section 3.1.2.2 */
571 #define MHD_HTTP_HEADER_CONTENT_ENCODING "Content-Encoding"
572 /* Standard. RFC7231, Section 3.1.3.2 */
573 #define MHD_HTTP_HEADER_CONTENT_LANGUAGE "Content-Language"
574 /* Standard. RFC7230, Section 3.3.2 */
575 #define MHD_HTTP_HEADER_CONTENT_LENGTH "Content-Length"
576 /* Standard. RFC7231, Section 3.1.4.2 */
577 #define MHD_HTTP_HEADER_CONTENT_LOCATION "Content-Location"
578 /* Standard. RFC7233, Section 4.2 */
579 #define MHD_HTTP_HEADER_CONTENT_RANGE "Content-Range"
580 /* Standard. RFC7231, Section 3.1.1.5 */
581 #define MHD_HTTP_HEADER_CONTENT_TYPE "Content-Type"
582 /* Standard. RFC7231, Section 7.1.1.2 */
583 #define MHD_HTTP_HEADER_DATE "Date"
584 /* Standard. RFC7232, Section 2.3 */
585 #define MHD_HTTP_HEADER_ETAG "ETag"
586 /* Standard. RFC7231, Section 5.1.1 */
587 #define MHD_HTTP_HEADER_EXPECT "Expect"
588 /* Standard. RFC7234, Section 5.3 */
589 #define MHD_HTTP_HEADER_EXPIRES "Expires"
590 /* Standard. RFC7231, Section 5.5.1 */
591 #define MHD_HTTP_HEADER_FROM "From"
592 /* Standard. RFC7230, Section 5.4 */
593 #define MHD_HTTP_HEADER_HOST "Host"
594 /* Standard. RFC7232, Section 3.1 */
595 #define MHD_HTTP_HEADER_IF_MATCH "If-Match"
596 /* Standard. RFC7232, Section 3.3 */
597 #define MHD_HTTP_HEADER_IF_MODIFIED_SINCE "If-Modified-Since"
598 /* Standard. RFC7232, Section 3.2 */
599 #define MHD_HTTP_HEADER_IF_NONE_MATCH "If-None-Match"
600 /* Standard. RFC7233, Section 3.2 */
601 #define MHD_HTTP_HEADER_IF_RANGE "If-Range"
602 /* Standard. RFC7232, Section 3.4 */
603 #define MHD_HTTP_HEADER_IF_UNMODIFIED_SINCE "If-Unmodified-Since"
604 /* Standard. RFC7232, Section 2.2 */
605 #define MHD_HTTP_HEADER_LAST_MODIFIED "Last-Modified"
606 /* Standard. RFC7231, Section 7.1.2 */
607 #define MHD_HTTP_HEADER_LOCATION "Location"
608 /* Standard. RFC7231, Section 5.1.2 */
609 #define MHD_HTTP_HEADER_MAX_FORWARDS "Max-Forwards"
610 /* Standard. RFC7231, Appendix A.1 */
611 #define MHD_HTTP_HEADER_MIME_VERSION "MIME-Version"
612 /* Standard. RFC7234, Section 5.4 */
613 #define MHD_HTTP_HEADER_PRAGMA "Pragma"
614 /* Standard. RFC7235, Section 4.3 */
615 #define MHD_HTTP_HEADER_PROXY_AUTHENTICATE "Proxy-Authenticate"
616 /* Standard. RFC7235, Section 4.4 */
617 #define MHD_HTTP_HEADER_PROXY_AUTHORIZATION "Proxy-Authorization"
618 /* Standard. RFC7233, Section 3.1 */
619 #define MHD_HTTP_HEADER_RANGE "Range"
620 /* Standard. RFC7231, Section 5.5.2 */
621 #define MHD_HTTP_HEADER_REFERER "Referer"
622 /* Standard. RFC7231, Section 7.1.3 */
623 #define MHD_HTTP_HEADER_RETRY_AFTER "Retry-After"
624 /* Standard. RFC7231, Section 7.4.2 */
625 #define MHD_HTTP_HEADER_SERVER "Server"
626 /* Standard. RFC7230, Section 4.3 */
627 #define MHD_HTTP_HEADER_TE "TE"
628 /* Standard. RFC7230, Section 4.4 */
629 #define MHD_HTTP_HEADER_TRAILER "Trailer"
630 /* Standard. RFC7230, Section 3.3.1 */
631 #define MHD_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"
632 /* Standard. RFC7230, Section 6.7 */
633 #define MHD_HTTP_HEADER_UPGRADE "Upgrade"
634 /* Standard. RFC7231, Section 5.5.3 */
635 #define MHD_HTTP_HEADER_USER_AGENT "User-Agent"
636 /* Standard. RFC7231, Section 7.1.4 */
637 #define MHD_HTTP_HEADER_VARY "Vary"
638 /* Standard. RFC7230, Section 5.7.1 */
639 #define MHD_HTTP_HEADER_VIA "Via"
640 /* Standard. RFC7235, Section 4.1 */
641 #define MHD_HTTP_HEADER_WWW_AUTHENTICATE "WWW-Authenticate"
642 /* Standard. RFC7234, Section 5.5 */
643 #define MHD_HTTP_HEADER_WARNING "Warning"
644 
645 /* Additional HTTP headers. */
646 /* No category. RFC4229 */
647 #define MHD_HTTP_HEADER_A_IM "A-IM"
648 /* No category. RFC4229 */
649 #define MHD_HTTP_HEADER_ACCEPT_ADDITIONS "Accept-Additions"
650 /* Experimental. RFC-ietf-httpbis-client-hints-15, Section 3.1 */
651 #define MHD_HTTP_HEADER_ACCEPT_CH "Accept-CH"
652 /* Informational. RFC7089 */
653 #define MHD_HTTP_HEADER_ACCEPT_DATETIME "Accept-Datetime"
654 /* No category. RFC4229 */
655 #define MHD_HTTP_HEADER_ACCEPT_FEATURES "Accept-Features"
656 /* No category. RFC5789 */
657 #define MHD_HTTP_HEADER_ACCEPT_PATCH "Accept-Patch"
658 /* Standard. https://www.w3.org/TR/ldp/ */
659 #define MHD_HTTP_HEADER_ACCEPT_POST "Accept-Post"
660 /* Standard. RFC7639, Section 2 */
661 #define MHD_HTTP_HEADER_ALPN "ALPN"
662 /* Standard. RFC7838 */
663 #define MHD_HTTP_HEADER_ALT_SVC "Alt-Svc"
664 /* Standard. RFC7838 */
665 #define MHD_HTTP_HEADER_ALT_USED "Alt-Used"
666 /* No category. RFC4229 */
667 #define MHD_HTTP_HEADER_ALTERNATES "Alternates"
668 /* No category. RFC4437 */
669 #define MHD_HTTP_HEADER_APPLY_TO_REDIRECT_REF "Apply-To-Redirect-Ref"
670 /* Experimental. RFC8053, Section 4 */
671 #define MHD_HTTP_HEADER_AUTHENTICATION_CONTROL "Authentication-Control"
672 /* Standard. RFC7615, Section 3 */
673 #define MHD_HTTP_HEADER_AUTHENTICATION_INFO "Authentication-Info"
674 /* No category. RFC4229 */
675 #define MHD_HTTP_HEADER_C_EXT "C-Ext"
676 /* No category. RFC4229 */
677 #define MHD_HTTP_HEADER_C_MAN "C-Man"
678 /* No category. RFC4229 */
679 #define MHD_HTTP_HEADER_C_OPT "C-Opt"
680 /* No category. RFC4229 */
681 #define MHD_HTTP_HEADER_C_PEP "C-PEP"
682 /* No category. RFC4229 */
683 #define MHD_HTTP_HEADER_C_PEP_INFO "C-PEP-Info"
684 /* Standard. RFC8607, Section 5.1 */
685 #define MHD_HTTP_HEADER_CAL_MANAGED_ID "Cal-Managed-ID"
686 /* Standard. RFC7809, Section 7.1 */
687 #define MHD_HTTP_HEADER_CALDAV_TIMEZONES "CalDAV-Timezones"
688 /* Standard. RFC8586 */
689 #define MHD_HTTP_HEADER_CDN_LOOP "CDN-Loop"
690 /* Standard. RFC8739, Section 3.3 */
691 #define MHD_HTTP_HEADER_CERT_NOT_AFTER "Cert-Not-After"
692 /* Standard. RFC8739, Section 3.3 */
693 #define MHD_HTTP_HEADER_CERT_NOT_BEFORE "Cert-Not-Before"
694 /* Obsoleted. RFC2068; RFC2616 */
695 #define MHD_HTTP_HEADER_CONTENT_BASE "Content-Base"
696 /* Standard. RFC6266 */
697 #define MHD_HTTP_HEADER_CONTENT_DISPOSITION "Content-Disposition"
698 /* No category. RFC4229 */
699 #define MHD_HTTP_HEADER_CONTENT_ID "Content-ID"
700 /* No category. RFC4229 */
701 #define MHD_HTTP_HEADER_CONTENT_MD5 "Content-MD5"
702 /* No category. RFC4229 */
703 #define MHD_HTTP_HEADER_CONTENT_SCRIPT_TYPE "Content-Script-Type"
704 /* No category. RFC4229 */
705 #define MHD_HTTP_HEADER_CONTENT_STYLE_TYPE "Content-Style-Type"
706 /* No category. RFC4229 */
707 #define MHD_HTTP_HEADER_CONTENT_VERSION "Content-Version"
708 /* Standard. RFC6265 */
709 #define MHD_HTTP_HEADER_COOKIE "Cookie"
710 /* Obsoleted. RFC2965; RFC6265 */
711 #define MHD_HTTP_HEADER_COOKIE2 "Cookie2"
712 /* Standard. RFC5323 */
713 #define MHD_HTTP_HEADER_DASL "DASL"
714 /* Standard. RFC4918 */
715 #define MHD_HTTP_HEADER_DAV "DAV"
716 /* No category. RFC4229 */
717 #define MHD_HTTP_HEADER_DEFAULT_STYLE "Default-Style"
718 /* No category. RFC4229 */
719 #define MHD_HTTP_HEADER_DELTA_BASE "Delta-Base"
720 /* Standard. RFC4918 */
721 #define MHD_HTTP_HEADER_DEPTH "Depth"
722 /* No category. RFC4229 */
723 #define MHD_HTTP_HEADER_DERIVED_FROM "Derived-From"
724 /* Standard. RFC4918 */
725 #define MHD_HTTP_HEADER_DESTINATION "Destination"
726 /* No category. RFC4229 */
727 #define MHD_HTTP_HEADER_DIFFERENTIAL_ID "Differential-ID"
728 /* No category. RFC4229 */
729 #define MHD_HTTP_HEADER_DIGEST "Digest"
730 /* Standard. RFC8470 */
731 #define MHD_HTTP_HEADER_EARLY_DATA "Early-Data"
732 /* Experimental. RFC-ietf-httpbis-expect-ct-08 */
733 #define MHD_HTTP_HEADER_EXPECT_CT "Expect-CT"
734 /* No category. RFC4229 */
735 #define MHD_HTTP_HEADER_EXT "Ext"
736 /* Standard. RFC7239 */
737 #define MHD_HTTP_HEADER_FORWARDED "Forwarded"
738 /* No category. RFC4229 */
739 #define MHD_HTTP_HEADER_GETPROFILE "GetProfile"
740 /* Experimental. RFC7486, Section 6.1.1 */
741 #define MHD_HTTP_HEADER_HOBAREG "Hobareg"
742 /* Standard. RFC7540, Section 3.2.1 */
743 #define MHD_HTTP_HEADER_HTTP2_SETTINGS "HTTP2-Settings"
744 /* No category. RFC4229 */
745 #define MHD_HTTP_HEADER_IM "IM"
746 /* Standard. RFC4918 */
747 #define MHD_HTTP_HEADER_IF "If"
748 /* Standard. RFC6638 */
749 #define MHD_HTTP_HEADER_IF_SCHEDULE_TAG_MATCH "If-Schedule-Tag-Match"
750 /* Standard. RFC8473 */
751 #define MHD_HTTP_HEADER_INCLUDE_REFERRED_TOKEN_BINDING_ID \
752  "Include-Referred-Token-Binding-ID"
753 /* No category. RFC4229 */
754 #define MHD_HTTP_HEADER_KEEP_ALIVE "Keep-Alive"
755 /* No category. RFC4229 */
756 #define MHD_HTTP_HEADER_LABEL "Label"
757 /* Standard. RFC8288 */
758 #define MHD_HTTP_HEADER_LINK "Link"
759 /* Standard. RFC4918 */
760 #define MHD_HTTP_HEADER_LOCK_TOKEN "Lock-Token"
761 /* No category. RFC4229 */
762 #define MHD_HTTP_HEADER_MAN "Man"
763 /* Informational. RFC7089 */
764 #define MHD_HTTP_HEADER_MEMENTO_DATETIME "Memento-Datetime"
765 /* No category. RFC4229 */
766 #define MHD_HTTP_HEADER_METER "Meter"
767 /* No category. RFC4229 */
768 #define MHD_HTTP_HEADER_NEGOTIATE "Negotiate"
769 /* Standard. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
770 #define MHD_HTTP_HEADER_ODATA_ENTITYID "OData-EntityId"
771 /* Standard. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
772 #define MHD_HTTP_HEADER_ODATA_ISOLATION "OData-Isolation"
773 /* Standard. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
774 #define MHD_HTTP_HEADER_ODATA_MAXVERSION "OData-MaxVersion"
775 /* Standard. OData Version 4.01 Part 1: Protocol; OASIS; Chet_Ensign */
776 #define MHD_HTTP_HEADER_ODATA_VERSION "OData-Version"
777 /* No category. RFC4229 */
778 #define MHD_HTTP_HEADER_OPT "Opt"
779 /* Experimental. RFC8053, Section 3 */
780 #define MHD_HTTP_HEADER_OPTIONAL_WWW_AUTHENTICATE "Optional-WWW-Authenticate"
781 /* Standard. RFC4229 */
782 #define MHD_HTTP_HEADER_ORDERING_TYPE "Ordering-Type"
783 /* Standard. RFC6454 */
784 #define MHD_HTTP_HEADER_ORIGIN "Origin"
785 /* Standard. RFC8613, Section 11.1 */
786 #define MHD_HTTP_HEADER_OSCORE "OSCORE"
787 /* Standard. RFC4918 */
788 #define MHD_HTTP_HEADER_OVERWRITE "Overwrite"
789 /* No category. RFC4229 */
790 #define MHD_HTTP_HEADER_P3P "P3P"
791 /* No category. RFC4229 */
792 #define MHD_HTTP_HEADER_PEP "PEP"
793 /* No category. RFC4229 */
794 #define MHD_HTTP_HEADER_PICS_LABEL "PICS-Label"
795 /* No category. RFC4229 */
796 #define MHD_HTTP_HEADER_PEP_INFO "Pep-Info"
797 /* Standard. RFC4229 */
798 #define MHD_HTTP_HEADER_POSITION "Position"
799 /* Standard. RFC7240 */
800 #define MHD_HTTP_HEADER_PREFER "Prefer"
801 /* Standard. RFC7240 */
802 #define MHD_HTTP_HEADER_PREFERENCE_APPLIED "Preference-Applied"
803 /* No category. RFC4229 */
804 #define MHD_HTTP_HEADER_PROFILEOBJECT "ProfileObject"
805 /* No category. RFC4229 */
806 #define MHD_HTTP_HEADER_PROTOCOL "Protocol"
807 /* No category. RFC4229 */
808 #define MHD_HTTP_HEADER_PROTOCOL_INFO "Protocol-Info"
809 /* No category. RFC4229 */
810 #define MHD_HTTP_HEADER_PROTOCOL_QUERY "Protocol-Query"
811 /* No category. RFC4229 */
812 #define MHD_HTTP_HEADER_PROTOCOL_REQUEST "Protocol-Request"
813 /* Standard. RFC7615, Section 4 */
814 #define MHD_HTTP_HEADER_PROXY_AUTHENTICATION_INFO "Proxy-Authentication-Info"
815 /* No category. RFC4229 */
816 #define MHD_HTTP_HEADER_PROXY_FEATURES "Proxy-Features"
817 /* No category. RFC4229 */
818 #define MHD_HTTP_HEADER_PROXY_INSTRUCTION "Proxy-Instruction"
819 /* No category. RFC4229 */
820 #define MHD_HTTP_HEADER_PUBLIC "Public"
821 /* Standard. RFC7469 */
822 #define MHD_HTTP_HEADER_PUBLIC_KEY_PINS "Public-Key-Pins"
823 /* Standard. RFC7469 */
824 #define MHD_HTTP_HEADER_PUBLIC_KEY_PINS_REPORT_ONLY \
825  "Public-Key-Pins-Report-Only"
826 /* No category. RFC4437 */
827 #define MHD_HTTP_HEADER_REDIRECT_REF "Redirect-Ref"
828 /* Standard. RFC8555, Section 6.5.1 */
829 #define MHD_HTTP_HEADER_REPLAY_NONCE "Replay-Nonce"
830 /* No category. RFC4229 */
831 #define MHD_HTTP_HEADER_SAFE "Safe"
832 /* Standard. RFC6638 */
833 #define MHD_HTTP_HEADER_SCHEDULE_REPLY "Schedule-Reply"
834 /* Standard. RFC6638 */
835 #define MHD_HTTP_HEADER_SCHEDULE_TAG "Schedule-Tag"
836 /* Standard. RFC8473 */
837 #define MHD_HTTP_HEADER_SEC_TOKEN_BINDING "Sec-Token-Binding"
838 /* Standard. RFC6455 */
839 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_ACCEPT "Sec-WebSocket-Accept"
840 /* Standard. RFC6455 */
841 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_EXTENSIONS "Sec-WebSocket-Extensions"
842 /* Standard. RFC6455 */
843 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_KEY "Sec-WebSocket-Key"
844 /* Standard. RFC6455 */
845 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_PROTOCOL "Sec-WebSocket-Protocol"
846 /* Standard. RFC6455 */
847 #define MHD_HTTP_HEADER_SEC_WEBSOCKET_VERSION "Sec-WebSocket-Version"
848 /* No category. RFC4229 */
849 #define MHD_HTTP_HEADER_SECURITY_SCHEME "Security-Scheme"
850 /* Standard. RFC6265 */
851 #define MHD_HTTP_HEADER_SET_COOKIE "Set-Cookie"
852 /* Obsoleted. RFC2965; RFC6265 */
853 #define MHD_HTTP_HEADER_SET_COOKIE2 "Set-Cookie2"
854 /* No category. RFC4229 */
855 #define MHD_HTTP_HEADER_SETPROFILE "SetProfile"
856 /* Standard. RFC5023 */
857 #define MHD_HTTP_HEADER_SLUG "SLUG"
858 /* No category. RFC4229 */
859 #define MHD_HTTP_HEADER_SOAPACTION "SoapAction"
860 /* No category. RFC4229 */
861 #define MHD_HTTP_HEADER_STATUS_URI "Status-URI"
862 /* Standard. RFC6797 */
863 #define MHD_HTTP_HEADER_STRICT_TRANSPORT_SECURITY "Strict-Transport-Security"
864 /* Informational. RFC8594 */
865 #define MHD_HTTP_HEADER_SUNSET "Sunset"
866 /* No category. RFC4229 */
867 #define MHD_HTTP_HEADER_SURROGATE_CAPABILITY "Surrogate-Capability"
868 /* No category. RFC4229 */
869 #define MHD_HTTP_HEADER_SURROGATE_CONTROL "Surrogate-Control"
870 /* No category. RFC4229 */
871 #define MHD_HTTP_HEADER_TCN "TCN"
872 /* Standard. RFC4918 */
873 #define MHD_HTTP_HEADER_TIMEOUT "Timeout"
874 /* Standard. RFC8030, Section 5.4 */
875 #define MHD_HTTP_HEADER_TOPIC "Topic"
876 /* Standard. RFC8030, Section 5.2 */
877 #define MHD_HTTP_HEADER_TTL "TTL"
878 /* Standard. RFC8030, Section 5.3 */
879 #define MHD_HTTP_HEADER_URGENCY "Urgency"
880 /* No category. RFC4229 */
881 #define MHD_HTTP_HEADER_URI "URI"
882 /* No category. RFC4229 */
883 #define MHD_HTTP_HEADER_VARIANT_VARY "Variant-Vary"
884 /* No category. RFC4229 */
885 #define MHD_HTTP_HEADER_WANT_DIGEST "Want-Digest"
886 /* Standard. https://fetch.spec.whatwg.org/#x-content-type-options-header */
887 #define MHD_HTTP_HEADER_X_CONTENT_TYPE_OPTIONS "X-Content-Type-Options"
888 /* Informational. RFC7034 */
889 #define MHD_HTTP_HEADER_X_FRAME_OPTIONS "X-Frame-Options"
890 
891 /* Some provisional headers. */
892 #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN \
893  "Access-Control-Allow-Origin"
894  /* end of group headers */
895 
902 #define MHD_HTTP_VERSION_1_0 "HTTP/1.0"
903 #define MHD_HTTP_VERSION_1_1 "HTTP/1.1"
904  /* end of group versions */
906 
915 /* Main HTTP methods. */
916 /* Not safe. Not idempotent. RFC7231, Section 4.3.6. */
917 #define MHD_HTTP_METHOD_CONNECT "CONNECT"
918 /* Not safe. Idempotent. RFC7231, Section 4.3.5. */
919 #define MHD_HTTP_METHOD_DELETE "DELETE"
920 /* Safe. Idempotent. RFC7231, Section 4.3.1. */
921 #define MHD_HTTP_METHOD_GET "GET"
922 /* Safe. Idempotent. RFC7231, Section 4.3.2. */
923 #define MHD_HTTP_METHOD_HEAD "HEAD"
924 /* Safe. Idempotent. RFC7231, Section 4.3.7. */
925 #define MHD_HTTP_METHOD_OPTIONS "OPTIONS"
926 /* Not safe. Not idempotent. RFC7231, Section 4.3.3. */
927 #define MHD_HTTP_METHOD_POST "POST"
928 /* Not safe. Idempotent. RFC7231, Section 4.3.4. */
929 #define MHD_HTTP_METHOD_PUT "PUT"
930 /* Safe. Idempotent. RFC7231, Section 4.3.8. */
931 #define MHD_HTTP_METHOD_TRACE "TRACE"
932 
933 /* Additional HTTP methods. */
934 /* Not safe. Idempotent. RFC3744, Section 8.1. */
935 #define MHD_HTTP_METHOD_ACL "ACL"
936 /* Not safe. Idempotent. RFC3253, Section 12.6. */
937 #define MHD_HTTP_METHOD_BASELINE_CONTROL "BASELINE-CONTROL"
938 /* Not safe. Idempotent. RFC5842, Section 4. */
939 #define MHD_HTTP_METHOD_BIND "BIND"
940 /* Not safe. Idempotent. RFC3253, Section 4.4, Section 9.4. */
941 #define MHD_HTTP_METHOD_CHECKIN "CHECKIN"
942 /* Not safe. Idempotent. RFC3253, Section 4.3, Section 8.8. */
943 #define MHD_HTTP_METHOD_CHECKOUT "CHECKOUT"
944 /* Not safe. Idempotent. RFC4918, Section 9.8. */
945 #define MHD_HTTP_METHOD_COPY "COPY"
946 /* Not safe. Idempotent. RFC3253, Section 8.2. */
947 #define MHD_HTTP_METHOD_LABEL "LABEL"
948 /* Not safe. Idempotent. RFC2068, Section 19.6.1.2. */
949 #define MHD_HTTP_METHOD_LINK "LINK"
950 /* Not safe. Not idempotent. RFC4918, Section 9.10. */
951 #define MHD_HTTP_METHOD_LOCK "LOCK"
952 /* Not safe. Idempotent. RFC3253, Section 11.2. */
953 #define MHD_HTTP_METHOD_MERGE "MERGE"
954 /* Not safe. Idempotent. RFC3253, Section 13.5. */
955 #define MHD_HTTP_METHOD_MKACTIVITY "MKACTIVITY"
956 /* Not safe. Idempotent. RFC4791, Section 5.3.1; RFC8144, Section 2.3. */
957 #define MHD_HTTP_METHOD_MKCALENDAR "MKCALENDAR"
958 /* Not safe. Idempotent. RFC4918, Section 9.3; RFC5689, Section 3; RFC8144, Section 2.3. */
959 #define MHD_HTTP_METHOD_MKCOL "MKCOL"
960 /* Not safe. Idempotent. RFC4437, Section 6. */
961 #define MHD_HTTP_METHOD_MKREDIRECTREF "MKREDIRECTREF"
962 /* Not safe. Idempotent. RFC3253, Section 6.3. */
963 #define MHD_HTTP_METHOD_MKWORKSPACE "MKWORKSPACE"
964 /* Not safe. Idempotent. RFC4918, Section 9.9. */
965 #define MHD_HTTP_METHOD_MOVE "MOVE"
966 /* Not safe. Idempotent. RFC3648, Section 7. */
967 #define MHD_HTTP_METHOD_ORDERPATCH "ORDERPATCH"
968 /* Not safe. Not idempotent. RFC5789, Section 2. */
969 #define MHD_HTTP_METHOD_PATCH "PATCH"
970 /* Safe. Idempotent. RFC7540, Section 3.5. */
971 #define MHD_HTTP_METHOD_PRI "PRI"
972 /* Safe. Idempotent. RFC4918, Section 9.1; RFC8144, Section 2.1. */
973 #define MHD_HTTP_METHOD_PROPFIND "PROPFIND"
974 /* Not safe. Idempotent. RFC4918, Section 9.2; RFC8144, Section 2.2. */
975 #define MHD_HTTP_METHOD_PROPPATCH "PROPPATCH"
976 /* Not safe. Idempotent. RFC5842, Section 6. */
977 #define MHD_HTTP_METHOD_REBIND "REBIND"
978 /* Safe. Idempotent. RFC3253, Section 3.6; RFC8144, Section 2.1. */
979 #define MHD_HTTP_METHOD_REPORT "REPORT"
980 /* Safe. Idempotent. RFC5323, Section 2. */
981 #define MHD_HTTP_METHOD_SEARCH "SEARCH"
982 /* Not safe. Idempotent. RFC5842, Section 5. */
983 #define MHD_HTTP_METHOD_UNBIND "UNBIND"
984 /* Not safe. Idempotent. RFC3253, Section 4.5. */
985 #define MHD_HTTP_METHOD_UNCHECKOUT "UNCHECKOUT"
986 /* Not safe. Idempotent. RFC2068, Section 19.6.1.3. */
987 #define MHD_HTTP_METHOD_UNLINK "UNLINK"
988 /* Not safe. Idempotent. RFC4918, Section 9.11. */
989 #define MHD_HTTP_METHOD_UNLOCK "UNLOCK"
990 /* Not safe. Idempotent. RFC3253, Section 7.1. */
991 #define MHD_HTTP_METHOD_UPDATE "UPDATE"
992 /* Not safe. Idempotent. RFC4437, Section 7. */
993 #define MHD_HTTP_METHOD_UPDATEREDIRECTREF "UPDATEREDIRECTREF"
994 /* Not safe. Idempotent. RFC3253, Section 3.5. */
995 #define MHD_HTTP_METHOD_VERSION_CONTROL "VERSION-CONTROL"
996  /* end of group methods */
998 
1004 #define MHD_HTTP_POST_ENCODING_FORM_URLENCODED \
1005  "application/x-www-form-urlencoded"
1006 #define MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA "multipart/form-data"
1007  /* end of group postenc */
1009 
1010 
1015 struct MHD_Daemon;
1016 
1025 struct MHD_Connection;
1026 
1031 struct MHD_Response;
1032 
1037 struct MHD_PostProcessor;
1038 
1039 
1053 {
1058 
1065 
1071 
1076 
1079 #if 0
1080  /* let's do this later once versions that define MHD_USE_TLS a more widely deployed. */
1081 #define MHD_USE_SSL \
1082  _MHD_DEPR_IN_MACRO ("Value MHD_USE_SSL is deprecated, use MHD_USE_TLS") \
1083  MHD_USE_TLS
1084 #endif
1085 
1091 
1102 
1105 #if 0 /* Will be marked for real deprecation later. */
1106 #define MHD_USE_SELECT_INTERNALLY \
1107  _MHD_DEPR_IN_MACRO ( \
1108  "Value MHD_USE_SELECT_INTERNALLY is deprecated, use MHD_USE_INTERNAL_POLLING_THREAD instead") \
1109  MHD_USE_INTERNAL_POLLING_THREAD
1110 #endif /* 0 */
1111 
1120 
1131 #if 0 /* Will be marked for real deprecation later. */
1132 #define MHD_USE_PEDANTIC_CHECKS \
1133  _MHD_DEPR_IN_MACRO ( \
1134  "Flag MHD_USE_PEDANTIC_CHECKS is deprecated, use option MHD_OPTION_STRICT_FOR_CLIENT instead") \
1135  32
1136 #endif /* 0 */
1137 
1147 
1153 
1156 #if 0 /* Will be marked for real deprecation later. */
1157 #define MHD_USE_POLL_INTERNALLY \
1158  _MHD_DEPR_IN_MACRO ( \
1159  "Value MHD_USE_POLL_INTERNALLY is deprecated, use MHD_USE_POLL_INTERNAL_THREAD instead") \
1160  MHD_USE_POLL_INTERNAL_THREAD
1161 #endif /* 0 */
1162 
1170 
1173 #if 0 /* Will be marked for real deprecation later. */
1174 #define MHD_SUPPRESS_DATE_NO_CLOCK \
1175  _MHD_DEPR_IN_MACRO ( \
1176  "Value MHD_SUPPRESS_DATE_NO_CLOCK is deprecated, use MHD_USE_SUPPRESS_DATE_NO_CLOCK instead") \
1177  MHD_USE_SUPPRESS_DATE_NO_CLOCK
1178 #endif /* 0 */
1179 
1188 
1197 
1200 #if 0 /* Will be marked for real deprecation later. */
1201 #define MHD_USE_EPOLL_LINUX_ONLY \
1202  _MHD_DEPR_IN_MACRO ( \
1203  "Value MHD_USE_EPOLL_LINUX_ONLY is deprecated, use MHD_USE_EPOLL") \
1204  MHD_USE_EPOLL
1205 #endif /* 0 */
1206 
1215 
1221 #if 0 /* Will be marked for real deprecation later. */
1222 #define MHD_USE_EPOLL_INTERNALLY \
1223  _MHD_DEPR_IN_MACRO ( \
1224  "Value MHD_USE_EPOLL_INTERNALLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1225  MHD_USE_EPOLL_INTERNAL_THREAD
1226 
1227 #define MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY \
1228  _MHD_DEPR_IN_MACRO ( \
1229  "Value MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY is deprecated, use MHD_USE_EPOLL_INTERNAL_THREAD") \
1230  MHD_USE_EPOLL_INTERNAL_THREAD
1231 #endif /* 0 */
1232 
1245  MHD_USE_ITC = 1024,
1246 
1249 #if 0 /* Will be marked for real deprecation later. */
1250 #define MHD_USE_PIPE_FOR_SHUTDOWN \
1251  _MHD_DEPR_IN_MACRO ( \
1252  "Value MHD_USE_PIPE_FOR_SHUTDOWN is deprecated, use MHD_USE_ITC") \
1253  MHD_USE_ITC
1254 #endif /* 0 */
1255 
1260 
1268 
1271 #if 0 /* Will be marked for real deprecation later. */
1272 #define MHD_USE_EPOLL_TURBO \
1273  _MHD_DEPR_IN_MACRO ( \
1274  "Value MHD_USE_EPOLL_TURBO is deprecated, use MHD_USE_TURBO") \
1275  MHD_USE_TURBO
1276 #endif /* 0 */
1277 
1283 
1286 #if 0 /* Will be marked for real deprecation later. */
1287 #define MHD_USE_SUSPEND_RESUME \
1288  _MHD_DEPR_IN_MACRO ( \
1289  "Value MHD_USE_SUSPEND_RESUME is deprecated, use MHD_ALLOW_SUSPEND_RESUME instead") \
1290  MHD_ALLOW_SUSPEND_RESUME
1291 #endif /* 0 */
1292 
1299 
1306 
1318  MHD_USE_AUTO = 65536,
1319 
1327 
1333 
1339 
1340 };
1341 
1342 
1351 typedef void
1352 (*MHD_LogCallback)(void *cls,
1353  const char *fm,
1354  va_list ap);
1355 
1356 
1369 typedef int
1371  const struct MHD_Connection *connection,
1372  const char *username,
1373  void **psk,
1374  size_t *psk_size);
1375 
1382 {
1383 
1389 
1398 
1404 
1411 
1425 
1437 
1445 
1477 
1485 
1493 
1500 
1506 
1514 
1527 
1537 
1558 
1580 
1591 
1598 
1604 
1611 
1617 
1633 
1642 
1649 
1658 
1667 
1678 
1686 
1702 
1710 
1721 
1732 };
1733 
1734 
1740 {
1744  MHD_DSC_SANE = 0
1745 
1746 };
1747 
1748 
1753 {
1758  enum MHD_OPTION option;
1759 
1765  intptr_t value;
1766 
1771  void *ptr_value;
1772 
1773 };
1774 
1775 
1781 {
1782 
1788 #define MHD_RESPONSE_HEADER_KIND \
1789  _MHD_DEPR_IN_MACRO ( \
1790  "Value MHD_RESPONSE_HEADER_KIND is deprecated and not used") \
1791  MHD_RESPONSE_HEADER_KIND
1792 
1797 
1803 
1813 
1818 
1822  MHD_FOOTER_KIND = 16
1823 };
1824 
1825 
1832 {
1833 
1839 
1847 
1855 
1862 
1872 
1880 
1881 };
1882 
1883 
1890 {
1891 
1897 
1903 
1904 };
1905 
1906 
1911 {
1912 
1916  int /* enum gnutls_cipher_algorithm */ cipher_algorithm;
1917 
1921  int /* enum gnutls_protocol */ protocol;
1922 
1926  int /* MHD_YES or MHD_NO */ suspended;
1927 
1933  unsigned int connection_timeout;
1934 
1939 
1943  size_t header_size;
1944 
1948  void * /* gnutls_session_t */ tls_session;
1949 
1953  void * /* gnutls_x509_crt_t */ client_cert;
1954 
1958  struct sockaddr *client_addr;
1959 
1965 
1971 };
1972 
1973 
1980 {
1987 
1994 
2003 
2009 
2017 
2023 
2031 
2041 
2047 
2053 
2059 };
2060 
2061 
2067 {
2072 
2077 
2083 
2092 
2101 
2109 
2117 };
2118 
2119 
2130 typedef void
2131 (*MHD_PanicCallback) (void *cls,
2132  const char *file,
2133  unsigned int line,
2134  const char *reason);
2135 
2144 typedef enum MHD_Result
2145 (*MHD_AcceptPolicyCallback)(void *cls,
2146  const struct sockaddr *addr,
2147  socklen_t addrlen);
2148 
2149 
2189 typedef enum MHD_Result
2190 (*MHD_AccessHandlerCallback)(void *cls,
2191  struct MHD_Connection *connection,
2192  const char *url,
2193  const char *method,
2194  const char *version,
2195  const char *upload_data,
2196  size_t *upload_data_size,
2197  void **con_cls);
2198 
2199 
2212 typedef void
2213 (*MHD_RequestCompletedCallback) (void *cls,
2214  struct MHD_Connection *connection,
2215  void **con_cls,
2216  enum MHD_RequestTerminationCode toe);
2217 
2218 
2238 typedef void
2239 (*MHD_NotifyConnectionCallback) (void *cls,
2240  struct MHD_Connection *connection,
2241  void **socket_context,
2243 
2244 
2260 typedef enum MHD_Result
2261 (*MHD_KeyValueIterator)(void *cls,
2262  enum MHD_ValueKind kind,
2263  const char *key,
2264  const char *value);
2265 
2266 
2285 typedef enum MHD_Result
2286 (*MHD_KeyValueIteratorN)(void *cls,
2287  enum MHD_ValueKind kind,
2288  const char *key,
2289  size_t key_size,
2290  const char *value,
2291  size_t value_size);
2292 
2293 
2338 typedef ssize_t
2339 (*MHD_ContentReaderCallback) (void *cls,
2340  uint64_t pos,
2341  char *buf,
2342  size_t max);
2343 
2344 
2354 typedef void
2355 (*MHD_ContentReaderFreeCallback) (void *cls);
2356 
2357 
2377 typedef enum MHD_Result
2378 (*MHD_PostDataIterator)(void *cls,
2379  enum MHD_ValueKind kind,
2380  const char *key,
2381  const char *filename,
2382  const char *content_type,
2383  const char *transfer_encoding,
2384  const char *data,
2385  uint64_t off,
2386  size_t size);
2387 
2388 /* **************** Daemon handling functions ***************** */
2389 
2411 _MHD_EXTERN struct MHD_Daemon *
2412 MHD_start_daemon_va (unsigned int flags,
2413  uint16_t port,
2415  MHD_AccessHandlerCallback dh, void *dh_cls,
2416  va_list ap);
2417 
2418 
2439 _MHD_EXTERN struct MHD_Daemon *
2440 MHD_start_daemon (unsigned int flags,
2441  uint16_t port,
2443  MHD_AccessHandlerCallback dh, void *dh_cls,
2444  ...);
2445 
2446 
2467 MHD_quiesce_daemon (struct MHD_Daemon *daemon);
2468 
2469 
2476 _MHD_EXTERN void
2477 MHD_stop_daemon (struct MHD_Daemon *daemon);
2478 
2479 
2508 MHD_add_connection (struct MHD_Daemon *daemon,
2509  MHD_socket client_socket,
2510  const struct sockaddr *addr,
2511  socklen_t addrlen);
2512 
2513 
2544 MHD_get_fdset (struct MHD_Daemon *daemon,
2545  fd_set *read_fd_set,
2546  fd_set *write_fd_set,
2547  fd_set *except_fd_set,
2548  MHD_socket *max_fd);
2549 
2550 
2584 MHD_get_fdset2 (struct MHD_Daemon *daemon,
2585  fd_set *read_fd_set,
2586  fd_set *write_fd_set,
2587  fd_set *except_fd_set,
2588  MHD_socket *max_fd,
2589  unsigned int fd_setsize);
2590 
2591 
2616 #define MHD_get_fdset(daemon,read_fd_set,write_fd_set,except_fd_set,max_fd) \
2617  MHD_get_fdset2 ((daemon),(read_fd_set),(write_fd_set),(except_fd_set), \
2618  (max_fd),FD_SETSIZE)
2619 
2620 
2640 MHD_get_timeout (struct MHD_Daemon *daemon,
2641  MHD_UNSIGNED_LONG_LONG *timeout);
2642 
2643 
2665 MHD_run (struct MHD_Daemon *daemon);
2666 
2667 
2691 MHD_run_from_select (struct MHD_Daemon *daemon,
2692  const fd_set *read_fd_set,
2693  const fd_set *write_fd_set,
2694  const fd_set *except_fd_set);
2695 
2696 
2697 /* **************** Connection handling functions ***************** */
2698 
2711 _MHD_EXTERN int
2712 MHD_get_connection_values (struct MHD_Connection *connection,
2713  enum MHD_ValueKind kind,
2714  MHD_KeyValueIterator iterator,
2715  void *iterator_cls);
2716 
2717 
2730 _MHD_EXTERN int
2731 MHD_get_connection_values_n (struct MHD_Connection *connection,
2732  enum MHD_ValueKind kind,
2733  MHD_KeyValueIteratorN iterator,
2734  void *iterator_cls);
2735 
2736 
2764 MHD_set_connection_value (struct MHD_Connection *connection,
2765  enum MHD_ValueKind kind,
2766  const char *key,
2767  const char *value);
2768 
2769 
2796 MHD_set_connection_value_n (struct MHD_Connection *connection,
2797  enum MHD_ValueKind kind,
2798  const char *key,
2799  size_t key_size,
2800  const char *value,
2801  size_t value_size);
2802 
2803 
2820 _MHD_EXTERN void
2821 MHD_set_panic_func (MHD_PanicCallback cb, void *cls);
2822 
2823 
2833 _MHD_EXTERN size_t
2834 MHD_http_unescape (char *val);
2835 
2836 
2847 _MHD_EXTERN const char *
2848 MHD_lookup_connection_value (struct MHD_Connection *connection,
2849  enum MHD_ValueKind kind,
2850  const char *key);
2851 
2852 
2873 MHD_lookup_connection_value_n (struct MHD_Connection *connection,
2874  enum MHD_ValueKind kind,
2875  const char *key,
2876  size_t key_size,
2877  const char **value_ptr,
2878  size_t *value_size_ptr);
2879 
2880 
2893 MHD_queue_response (struct MHD_Connection *connection,
2894  unsigned int status_code,
2895  struct MHD_Response *response);
2896 
2897 
2923 _MHD_EXTERN void
2924 MHD_suspend_connection (struct MHD_Connection *connection);
2925 
2926 
2941 _MHD_EXTERN void
2942 MHD_resume_connection (struct MHD_Connection *connection);
2943 
2944 
2945 /* **************** Response manipulation functions ***************** */
2946 
2947 
2952 {
2957 
2968 
2975 
2981 
2982 
2983 };
2984 
2985 
2990 {
2994  MHD_RO_END = 0
2995 };
2996 
2997 
3007 MHD_set_response_options (struct MHD_Response *response,
3008  enum MHD_ResponseFlags flags,
3009  ...);
3010 
3011 
3028 _MHD_EXTERN struct MHD_Response *
3029 MHD_create_response_from_callback (uint64_t size,
3030  size_t block_size,
3033 
3034 
3050  "MHD_create_response_from_data() is deprecated, use MHD_create_response_from_buffer()") \
3051  _MHD_EXTERN struct MHD_Response *
3052 MHD_create_response_from_data (size_t size,
3053  void *data,
3056 
3057 
3064 {
3065 
3073 
3081 
3090 
3091 };
3092 
3093 
3104 _MHD_EXTERN struct MHD_Response *
3105 MHD_create_response_from_buffer (size_t size,
3106  void *buffer,
3107  enum MHD_ResponseMemoryMode mode);
3108 
3109 
3120 _MHD_EXTERN struct MHD_Response *
3122  void *buffer,
3124  crfc);
3125 
3126 
3138 _MHD_EXTERN struct MHD_Response *
3139 MHD_create_response_from_fd (size_t size,
3140  int fd);
3141 
3142 
3153 _MHD_EXTERN struct MHD_Response *
3155 
3156 
3170 _MHD_EXTERN struct MHD_Response *
3171 MHD_create_response_from_fd64 (uint64_t size,
3172  int fd);
3173 
3174 
3192  "Function MHD_create_response_from_fd_at_offset() is deprecated, use MHD_create_response_from_fd_at_offset64()") \
3193  _MHD_EXTERN struct MHD_Response *
3195  int fd,
3196  off_t offset);
3197 
3198 #if ! defined(_MHD_NO_DEPR_IN_MACRO) || defined(_MHD_NO_DEPR_FUNC)
3199 /* Substitute MHD_create_response_from_fd_at_offset64() instead of MHD_create_response_from_fd_at_offset()
3200  to minimize potential problems with different off_t sizes */
3201 #define MHD_create_response_from_fd_at_offset(size,fd,offset) \
3202  _MHD_DEPR_IN_MACRO ( \
3203  "Usage of MHD_create_response_from_fd_at_offset() is deprecated, use MHD_create_response_from_fd_at_offset64()") \
3204  MHD_create_response_from_fd_at_offset64 ((size),(fd),(offset))
3205 #endif /* !_MHD_NO_DEPR_IN_MACRO || _MHD_NO_DEPR_FUNC */
3206 
3207 
3224 _MHD_EXTERN struct MHD_Response *
3226  int fd,
3227  uint64_t offset);
3228 
3229 
3237 {
3238 
3245 
3250 
3255 
3256 };
3257 
3258 
3264 struct MHD_UpgradeResponseHandle;
3265 
3266 
3280 MHD_upgrade_action (struct MHD_UpgradeResponseHandle *urh,
3281  enum MHD_UpgradeAction action,
3282  ...);
3283 
3284 
3332 typedef void
3333 (*MHD_UpgradeHandler)(void *cls,
3334  struct MHD_Connection *connection,
3335  void *con_cls,
3336  const char *extra_in,
3337  size_t extra_in_size,
3338  MHD_socket sock,
3339  struct MHD_UpgradeResponseHandle *urh);
3340 
3341 
3371 _MHD_EXTERN struct MHD_Response *
3373  void *upgrade_handler_cls);
3374 
3375 
3385 _MHD_EXTERN void
3386 MHD_destroy_response (struct MHD_Response *response);
3387 
3388 
3400 MHD_add_response_header (struct MHD_Response *response,
3401  const char *header,
3402  const char *content);
3403 
3404 
3415 MHD_add_response_footer (struct MHD_Response *response,
3416  const char *footer,
3417  const char *content);
3418 
3419 
3430 MHD_del_response_header (struct MHD_Response *response,
3431  const char *header,
3432  const char *content);
3433 
3434 
3445 _MHD_EXTERN int
3446 MHD_get_response_headers (struct MHD_Response *response,
3447  MHD_KeyValueIterator iterator,
3448  void *iterator_cls);
3449 
3450 
3459 _MHD_EXTERN const char *
3460 MHD_get_response_header (struct MHD_Response *response,
3461  const char *key);
3462 
3463 
3464 /* ********************** PostProcessor functions ********************** */
3465 
3491 _MHD_EXTERN struct MHD_PostProcessor *
3492 MHD_create_post_processor (struct MHD_Connection *connection,
3493  size_t buffer_size,
3494  MHD_PostDataIterator iter, void *iter_cls);
3495 
3496 
3511 MHD_post_process (struct MHD_PostProcessor *pp,
3512  const char *post_data, size_t post_data_len);
3513 
3514 
3526 MHD_destroy_post_processor (struct MHD_PostProcessor *pp);
3527 
3528 
3529 /* ********************* Digest Authentication functions *************** */
3530 
3531 
3537 #define MHD_INVALID_NONCE -1
3538 
3539 
3548 _MHD_EXTERN char *
3549 MHD_digest_auth_get_username (struct MHD_Connection *connection);
3550 
3551 
3560 _MHD_EXTERN void
3561 MHD_free (void *ptr);
3562 
3563 
3568 {
3569 
3574 
3579 
3584 
3585 };
3586 
3587 
3602 _MHD_EXTERN int
3603 MHD_digest_auth_check2 (struct MHD_Connection *connection,
3604  const char *realm,
3605  const char *username,
3606  const char *password,
3607  unsigned int nonce_timeout,
3608  enum MHD_DigestAuthAlgorithm algo);
3609 
3610 
3629 _MHD_EXTERN int
3630 MHD_digest_auth_check (struct MHD_Connection *connection,
3631  const char *realm,
3632  const char *username,
3633  const char *password,
3634  unsigned int nonce_timeout);
3635 
3636 
3654 _MHD_EXTERN int
3655 MHD_digest_auth_check_digest2 (struct MHD_Connection *connection,
3656  const char *realm,
3657  const char *username,
3658  const uint8_t *digest,
3659  size_t digest_size,
3660  unsigned int nonce_timeout,
3661  enum MHD_DigestAuthAlgorithm algo);
3662 
3663 
3682 _MHD_EXTERN int
3683 MHD_digest_auth_check_digest (struct MHD_Connection *connection,
3684  const char *realm,
3685  const char *username,
3686  const uint8_t digest[MHD_MD5_DIGEST_SIZE],
3687  unsigned int nonce_timeout);
3688 
3689 
3706 MHD_queue_auth_fail_response2 (struct MHD_Connection *connection,
3707  const char *realm,
3708  const char *opaque,
3709  struct MHD_Response *response,
3710  int signal_stale,
3711  enum MHD_DigestAuthAlgorithm algo);
3712 
3713 
3732 MHD_queue_auth_fail_response (struct MHD_Connection *connection,
3733  const char *realm,
3734  const char *opaque,
3735  struct MHD_Response *response,
3736  int signal_stale);
3737 
3738 
3748 _MHD_EXTERN char *
3750  char**password);
3751 
3752 
3767  const char *realm,
3768  struct MHD_Response *response);
3769 
3770 /* ********************** generic query functions ********************** */
3771 
3772 
3783 _MHD_EXTERN const union MHD_ConnectionInfo *
3784 MHD_get_connection_info (struct MHD_Connection *connection,
3785  enum MHD_ConnectionInfoType info_type,
3786  ...);
3787 
3788 
3794 {
3795 
3804 
3805 };
3806 
3807 
3818 MHD_set_connection_option (struct MHD_Connection *connection,
3819  enum MHD_CONNECTION_OPTION option,
3820  ...);
3821 
3822 
3827 {
3832  size_t key_size;
3833 
3839 
3844 
3848  uint16_t port;
3849 
3854 
3858  unsigned int num_connections;
3859 
3866  enum MHD_FLAG flags;
3867 };
3868 
3869 
3881 _MHD_EXTERN const union MHD_DaemonInfo *
3882 MHD_get_daemon_info (struct MHD_Daemon *daemon,
3883  enum MHD_DaemonInfoType info_type,
3884  ...);
3885 
3886 
3893 _MHD_EXTERN const char*
3894 MHD_get_version (void);
3895 
3896 
3902 {
3908 
3918 
3924 
3930 
3938 
3944 
3951 
3958 
3964 
3971 
3978 
3986 
3994 
4001 
4011 
4017 
4024 
4037 
4043 
4050 
4057 
4062 
4068 };
4069 
4070 
4083 MHD_is_feature_supported (enum MHD_FEATURE feature);
4084 
4085 
4086 #if 0 /* keep Emacsens' auto-indent happy */
4087 {
4088 #endif
4089 #ifdef __cplusplus
4090 }
4091 #endif
4092 
4093 #endif
MHD_socket
int MHD_socket
Definition: microhttpd.h:196
MHD_USE_DEBUG
@ MHD_USE_DEBUG
Definition: microhttpd.h:1070
MHD_OptionItem::value
intptr_t value
Definition: microhttpd.h:1765
MHD_USE_NO_LISTEN_SOCKET
@ MHD_USE_NO_LISTEN_SOCKET
Definition: microhttpd.h:1187
MHD_get_daemon_info
_MHD_EXTERN const union MHD_DaemonInfo * MHD_get_daemon_info(struct MHD_Daemon *daemon, enum MHD_DaemonInfoType info_type,...)
Definition: daemon.c:7500
MHD_destroy_post_processor
_MHD_EXTERN enum MHD_Result MHD_destroy_post_processor(struct MHD_PostProcessor *pp)
Definition: postprocessor.c:1463
MHD_DAEMON_INFO_MAC_KEY_SIZE
@ MHD_DAEMON_INFO_MAC_KEY_SIZE
Definition: microhttpd.h:2076
MHD_ResponseMemoryMode
MHD_ResponseMemoryMode
Definition: microhttpd.h:3064
MHD_OPTION_CONNECTION_LIMIT
@ MHD_OPTION_CONNECTION_LIMIT
Definition: microhttpd.h:1403
MHD_OPTION_LISTEN_BACKLOG_SIZE
@ MHD_OPTION_LISTEN_BACKLOG_SIZE
Definition: microhttpd.h:1685
MHD_AccessHandlerCallback
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 **con_cls)
Definition: microhttpd.h:2190
MHD_get_response_headers
_MHD_EXTERN int MHD_get_response_headers(struct MHD_Response *response, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition: response.c:252
MHD_CONNECTION_INFO_PROTOCOL
@ MHD_CONNECTION_INFO_PROTOCOL
Definition: microhttpd.h:1993
MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN
@ MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN
Definition: microhttpd.h:1861
MHD_THREAD_NAMES
@ MHD_THREAD_NAMES
Definition: microhttpd.h:4016
MHD_post_process
_MHD_EXTERN enum MHD_Result MHD_post_process(struct MHD_PostProcessor *pp, const char *post_data, size_t post_data_len)
Definition: postprocessor.c:1425
MHD_USE_ERROR_LOG
@ MHD_USE_ERROR_LOG
Definition: microhttpd.h:1064
MHD_start_daemon
_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:5205
MHD_FEATURE_LARGE_FILE
@ MHD_FEATURE_LARGE_FILE
Definition: microhttpd.h:4010
MHD_OPTION_HTTPS_MEM_DHPARAMS
@ MHD_OPTION_HTTPS_MEM_DHPARAMS
Definition: microhttpd.h:1648
MHD_DaemonInfo::key_size
size_t key_size
Definition: microhttpd.h:3832
data
void * data
Definition: microhttpd.h:3053
MHD_ResponseOptions
MHD_ResponseOptions
Definition: microhttpd.h:2990
MHD_create_response_from_callback
_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:375
MHD_ContentReaderFreeCallback
void(* MHD_ContentReaderFreeCallback)(void *cls)
Definition: microhttpd.h:2355
MHD_DaemonInfo::flags
enum MHD_FLAG flags
Definition: microhttpd.h:3866
MHD_RF_HTTP_VERSION_1_0_ONLY
@ MHD_RF_HTTP_VERSION_1_0_ONLY
Definition: microhttpd.h:2967
MHD_Daemon::apc
MHD_AcceptPolicyCallback apc
Definition: internal.h:1466
MHD_USE_TURBO
@ MHD_USE_TURBO
Definition: microhttpd.h:1267
MHD_OPTION_END
@ MHD_OPTION_END
Definition: microhttpd.h:1388
MHD_CONNECTION_INFO_GNUTLS_SESSION
@ MHD_CONNECTION_INFO_GNUTLS_SESSION
Definition: microhttpd.h:2008
MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY
@ MHD_USE_EPOLL_INTERNALLY_LINUX_ONLY
Definition: microhttpd.h:1219
MHD_UPGRADE_ACTION_CLOSE
@ MHD_UPGRADE_ACTION_CLOSE
Definition: microhttpd.h:3244
MHD_CONNECTION_OPTION_TIMEOUT
@ MHD_CONNECTION_OPTION_TIMEOUT
Definition: microhttpd.h:3803
MHD_Response::crfc
MHD_ContentReaderFreeCallback crfc
Definition: internal.h:1606
MHD_PostDataIterator
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:2378
MHD_FEATURE_MESSAGES
@ MHD_FEATURE_MESSAGES
Definition: microhttpd.h:3907
MHD_Daemon::port
uint16_t port
Definition: internal.h:1525
MHD_REQUEST_TERMINATED_READ_ERROR
@ MHD_REQUEST_TERMINATED_READ_ERROR
Definition: microhttpd.h:1871
MHD_OPTION_HTTPS_KEY_PASSWORD
@ MHD_OPTION_HTTPS_KEY_PASSWORD
Definition: microhttpd.h:1666
MHD_UNSIGNED_LONG_LONG
#define MHD_UNSIGNED_LONG_LONG
Definition: microhttpd.h:299
MHD_YES
@ MHD_YES
Definition: microhttpd.h:151
MHD_ConnectionInfo::socket_context
void * socket_context
Definition: microhttpd.h:1970
MHD_ConnectionInfoType
MHD_ConnectionInfoType
Definition: microhttpd.h:1980
MHD_USE_IPv6
@ MHD_USE_IPv6
Definition: microhttpd.h:1119
MHD_DSC_SANE
@ MHD_DSC_SANE
Definition: microhttpd.h:1744
MHD_CONNECTION_INFO_CONNECTION_TIMEOUT
@ MHD_CONNECTION_INFO_CONNECTION_TIMEOUT
Definition: microhttpd.h:2052
MHD_OPTION_DIGEST_AUTH_RANDOM
@ MHD_OPTION_DIGEST_AUTH_RANDOM
Definition: microhttpd.h:1590
MHD_USE_SUSPEND_RESUME
@ MHD_USE_SUSPEND_RESUME
Definition: microhttpd.h:1285
MHD_DaemonInfo::num_connections
unsigned int num_connections
Definition: microhttpd.h:3858
MHD_FEATURE_UPGRADE
@ MHD_FEATURE_UPGRADE
Definition: microhttpd.h:4023
MHD_OPTION_PER_IP_CONNECTION_LIMIT
@ MHD_OPTION_PER_IP_CONNECTION_LIMIT
Definition: microhttpd.h:1436
MHD_FEATURE_SSL
@ MHD_FEATURE_SSL
Definition: microhttpd.h:3917
MHD_get_reason_phrase_for
_MHD_EXTERN const char * MHD_get_reason_phrase_for(unsigned int code)
Definition: reason_phrase.c:177
MHD_OPTION_NOTIFY_COMPLETED
@ MHD_OPTION_NOTIFY_COMPLETED
Definition: microhttpd.h:1424
MHD_DigestAuthAlgorithm
MHD_DigestAuthAlgorithm
Definition: microhttpd.h:3568
MHD_OPTION_SERVER_INSANITY
@ MHD_OPTION_SERVER_INSANITY
Definition: microhttpd.h:1731
MHD_get_fdset2
_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:1127
MHD_ConnectionInfo::client_cert
void * client_cert
Definition: microhttpd.h:1953
MHD_FLAG
MHD_FLAG
Flags for the struct MHD_Daemon.
Definition: microhttpd.h:1053
MHD_DAEMON_INFO_CURRENT_CONNECTIONS
@ MHD_DAEMON_INFO_CURRENT_CONNECTIONS
Definition: microhttpd.h:2100
MHD_NO
@ MHD_NO
Definition: microhttpd.h:146
MHD_REQUEST_TERMINATED_COMPLETED_OK
@ MHD_REQUEST_TERMINATED_COMPLETED_OK
Definition: microhttpd.h:1838
MHD_RF_NONE
@ MHD_RF_NONE
Definition: microhttpd.h:2956
MHD_create_response_from_fd64
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd64(uint64_t size, int fd)
Definition: response.c:725
MHD_FEATURE_HTTPS_CERT_CALLBACK
@ MHD_FEATURE_HTTPS_CERT_CALLBACK
Definition: microhttpd.h:3923
MHD_KeyValueIterator
enum MHD_Result(* MHD_KeyValueIterator)(void *cls, enum MHD_ValueKind kind, const char *key, const char *value)
Definition: microhttpd.h:2261
MHD_get_connection_values
_MHD_EXTERN int MHD_get_connection_values(struct MHD_Connection *connection, enum MHD_ValueKind kind, MHD_KeyValueIterator iterator, void *iterator_cls)
Definition: connection.c:194
MHD_OPTION_NONCE_NC_SIZE
@ MHD_OPTION_NONCE_NC_SIZE
Definition: microhttpd.h:1597
MHD_digest_auth_check
_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:1162
MHD_set_panic_func
_MHD_EXTERN void MHD_set_panic_func(MHD_PanicCallback cb, void *cls)
Definition: panic.c:56
MHD_ConnectionInfo::daemon
struct MHD_Daemon * daemon
Definition: microhttpd.h:1964
MHD_Response::crc
MHD_ContentReaderCallback crc
Definition: internal.h:1600
MHD_OPTION_TCP_FASTOPEN_QUEUE_SIZE
@ MHD_OPTION_TCP_FASTOPEN_QUEUE_SIZE
Definition: microhttpd.h:1641
MHD_set_connection_value_n
_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:347
MHD_OPTION_LISTENING_ADDRESS_REUSE
@ MHD_OPTION_LISTENING_ADDRESS_REUSE
Definition: microhttpd.h:1657
MHD_FEATURE_POSTPROCESSOR
@ MHD_FEATURE_POSTPROCESSOR
Definition: microhttpd.h:3993
MHD_DisableSanityCheck
MHD_DisableSanityCheck
Definition: microhttpd.h:1740
MHD_RequestCompletedCallback
void(* MHD_RequestCompletedCallback)(void *cls, struct MHD_Connection *connection, void **con_cls, enum MHD_RequestTerminationCode toe)
Definition: microhttpd.h:2213
MHD_quiesce_daemon
_MHD_EXTERN MHD_socket MHD_quiesce_daemon(struct MHD_Daemon *daemon)
Definition: daemon.c:5250
MHD_OptionItem::option
enum MHD_OPTION option
Definition: microhttpd.h:1758
MHD_set_connection_option
_MHD_EXTERN enum MHD_Result MHD_set_connection_option(struct MHD_Connection *connection, enum MHD_CONNECTION_OPTION option,...)
Definition: connection.c:3853
MHD_KeyValueIteratorN
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:2286
MHD_ConnectionInfo::header_size
size_t header_size
Definition: microhttpd.h:1943
MHD_digest_auth_check_digest
_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:1319
MHD_USE_SSL
@ MHD_USE_SSL
Definition: microhttpd.h:1078
MHD_USE_INSECURE_TLS_EARLY_DATA
@ MHD_USE_INSECURE_TLS_EARLY_DATA
Definition: microhttpd.h:1338
MHD_ConnectionInfo::connection_timeout
unsigned int connection_timeout
Definition: microhttpd.h:1933
MHD_OptionItem
Definition: microhttpd.h:1753
MHD_FEATURE_AUTODETECT_BIND_PORT
@ MHD_FEATURE_AUTODETECT_BIND_PORT
Definition: microhttpd.h:4042
MHD_OptionItem::ptr_value
void * ptr_value
Definition: microhttpd.h:1771
MHD_suspend_connection
_MHD_EXTERN void MHD_suspend_connection(struct MHD_Connection *connection)
Definition: daemon.c:3097
MHD_RF_INSANITY_HEADER_CONTENT_LENGTH
@ MHD_RF_INSANITY_HEADER_CONTENT_LENGTH
Definition: microhttpd.h:2980
MHD_FEATURE
MHD_FEATURE
Definition: microhttpd.h:3902
MHD_FEATURE_TCP_FASTOPEN
@ MHD_FEATURE_TCP_FASTOPEN
Definition: microhttpd.h:3970
must_copy
void int int must_copy
Definition: microhttpd.h:3055
MHD_USE_AUTO_INTERNAL_THREAD
@ MHD_USE_AUTO_INTERNAL_THREAD
Definition: microhttpd.h:1326
MHD_OPTION_HTTPS_PRIORITIES
@ MHD_OPTION_HTTPS_PRIORITIES
Definition: microhttpd.h:1505
MHD_OPTION_THREAD_POOL_SIZE
@ MHD_OPTION_THREAD_POOL_SIZE
Definition: microhttpd.h:1536
MHD_MD5_DIGEST_SIZE
#define MHD_MD5_DIGEST_SIZE
Definition: microhttpd.h:323
MHD_FEATURE_RESPONSES_SHARED_FD
@ MHD_FEATURE_RESPONSES_SHARED_FD
Definition: microhttpd.h:4036
MHD_OPTION_GNUTLS_PSK_CRED_HANDLER
@ MHD_OPTION_GNUTLS_PSK_CRED_HANDLER
Definition: microhttpd.h:1709
MHD_RF_HTTP_VERSION_1_0_RESPONSE
@ MHD_RF_HTTP_VERSION_1_0_RESPONSE
Definition: microhttpd.h:2974
MHD_add_connection
_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:3331
MHD_CONNECTION_OPTION
MHD_CONNECTION_OPTION
Definition: microhttpd.h:3794
MHD_AcceptPolicyCallback
enum MHD_Result(* MHD_AcceptPolicyCallback)(void *cls, const struct sockaddr *addr, socklen_t addrlen)
Definition: microhttpd.h:2145
MHD_CONNECTION_INFO_CIPHER_ALGO
@ MHD_CONNECTION_INFO_CIPHER_ALGO
Definition: microhttpd.h:1986
MHD_add_response_header
_MHD_EXTERN enum MHD_Result MHD_add_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition: response.c:133
MHD_REQUEST_TERMINATED_CLIENT_ABORT
@ MHD_REQUEST_TERMINATED_CLIENT_ABORT
Definition: microhttpd.h:1879
must_free
void int must_free
Definition: microhttpd.h:3054
MHD_DAEMON_INFO_FLAGS
@ MHD_DAEMON_INFO_FLAGS
Definition: microhttpd.h:2108
MHD_Daemon::apc_cls
void * apc_cls
Definition: internal.h:1471
MHD_USE_EPOLL_TURBO
@ MHD_USE_EPOLL_TURBO
Definition: microhttpd.h:1270
MHD_digest_auth_get_username
_MHD_EXTERN char * MHD_digest_auth_get_username(struct MHD_Connection *connection)
Definition: digestauth.c:630
MHD_get_connection_info
_MHD_EXTERN const union MHD_ConnectionInfo * MHD_get_connection_info(struct MHD_Connection *connection, enum MHD_ConnectionInfoType info_type,...)
Definition: connection.c:3793
MHD_DaemonInfo::port
uint16_t port
Definition: microhttpd.h:3848
MHD_destroy_response
_MHD_EXTERN void MHD_destroy_response(struct MHD_Response *response)
Definition: response.c:1268
MHD_create_response_from_fd_at_offset
#define MHD_create_response_from_fd_at_offset(size, fd, offset)
Definition: microhttpd.h:3201
fd
int fd
Definition: microhttpd.h:3195
MHD_get_version
_MHD_EXTERN const char * MHD_get_version(void)
Definition: version.c:35
MHD_digest_auth_check_digest2
_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:1278
MHD_USE_AUTO
@ MHD_USE_AUTO
Definition: microhttpd.h:1318
MHD_get_connection_values_n
_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:233
MHD_digest_auth_check2
_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:1240
MHD_ContentReaderCallback
ssize_t(* MHD_ContentReaderCallback)(void *cls, uint64_t pos, char *buf, size_t max)
Definition: microhttpd.h:2339
MHD_upgrade_action
_MHD_EXTERN enum MHD_Result MHD_upgrade_action(struct MHD_UpgradeResponseHandle *urh, enum MHD_UpgradeAction action,...)
MHD_OPTION_CONNECTION_MEMORY_INCREMENT
@ MHD_OPTION_CONNECTION_MEMORY_INCREMENT
Definition: microhttpd.h:1616
MHD_OPTION_HTTPS_CERT_CALLBACK2
@ MHD_OPTION_HTTPS_CERT_CALLBACK2
Definition: microhttpd.h:1720
MHD_ConnectionInfo::protocol
int protocol
Definition: microhttpd.h:1921
MHD_NotifyConnectionCallback
void(* MHD_NotifyConnectionCallback)(void *cls, struct MHD_Connection *connection, void **socket_context, enum MHD_ConnectionNotificationCode toe)
Definition: microhttpd.h:2239
MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
@ MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
Definition: microhttpd.h:4049
MHD_basic_auth_get_username_password
_MHD_EXTERN char * MHD_basic_auth_get_username_password(struct MHD_Connection *connection, char **password)
Definition: basicauth.c:47
MHD_OPTION_HTTPS_MEM_KEY
@ MHD_OPTION_HTTPS_MEM_KEY
Definition: microhttpd.h:1484
MHD_FEATURE_IPv6_ONLY
@ MHD_FEATURE_IPv6_ONLY
Definition: microhttpd.h:3937
MHD_DIGEST_ALG_AUTO
@ MHD_DIGEST_ALG_AUTO
Definition: microhttpd.h:3573
MHD_OPTION_LISTEN_SOCKET
@ MHD_OPTION_LISTEN_SOCKET
Definition: microhttpd.h:1513
MHD_create_response_from_data
struct MHD_Response * MHD_create_response_from_data(size_t size, void *data, int must_free, int must_copy)
Definition: response.c:749
MHD_create_response_from_fd_at_offset64
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd_at_offset64(uint64_t size, int fd, uint64_t offset)
Definition: response.c:630
MHD_OPTION_EXTERNAL_LOGGER
@ MHD_OPTION_EXTERNAL_LOGGER
Definition: microhttpd.h:1526
MHD_OPTION_UNESCAPE_CALLBACK
@ MHD_OPTION_UNESCAPE_CALLBACK
Definition: microhttpd.h:1579
MHD_get_fdset
#define MHD_get_fdset(daemon, read_fd_set, write_fd_set, except_fd_set, max_fd)
Definition: microhttpd.h:2616
MHD_DAEMON_INFO_LISTEN_FD
@ MHD_DAEMON_INFO_LISTEN_FD
Definition: microhttpd.h:2082
MHD_lookup_connection_value
_MHD_EXTERN const char * MHD_lookup_connection_value(struct MHD_Connection *connection, enum MHD_ValueKind kind, const char *key)
Definition: connection.c:423
MHD_USE_PIPE_FOR_SHUTDOWN
@ MHD_USE_PIPE_FOR_SHUTDOWN
Definition: microhttpd.h:1248
MHD_ConnectionInfo::suspended
int suspended
Definition: microhttpd.h:1926
MHD_USE_TLS
@ MHD_USE_TLS
Definition: microhttpd.h:1075
MHD_USE_EPOLL_INTERNAL_THREAD
@ MHD_USE_EPOLL_INTERNAL_THREAD
Definition: microhttpd.h:1213
MHD_CONNECTION_INFO_CONNECTION_SUSPENDED
@ MHD_CONNECTION_INFO_CONNECTION_SUSPENDED
Definition: microhttpd.h:2046
MHD_FEATURE_SENDFILE
@ MHD_FEATURE_SENDFILE
Definition: microhttpd.h:4056
MHD_PanicCallback
void(* MHD_PanicCallback)(void *cls, const char *file, unsigned int line, const char *reason)
Definition: microhttpd.h:2131
MHD_USE_SUPPRESS_DATE_NO_CLOCK
@ MHD_USE_SUPPRESS_DATE_NO_CLOCK
Definition: microhttpd.h:1169
MHD_OPTION
MHD_OPTION
MHD options.
Definition: microhttpd.h:1382
MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
@ MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
Definition: microhttpd.h:3957
MHD_USE_EPOLL
@ MHD_USE_EPOLL
Definition: microhttpd.h:1196
MHD_DAEMON_INFO_KEY_SIZE
@ MHD_DAEMON_INFO_KEY_SIZE
Definition: microhttpd.h:2071
MHD_USE_ITC
@ MHD_USE_ITC
Definition: microhttpd.h:1245
MHD_USE_INTERNAL_POLLING_THREAD
@ MHD_USE_INTERNAL_POLLING_THREAD
Definition: microhttpd.h:1101
MHD_ALLOW_UPGRADE
@ MHD_ALLOW_UPGRADE
Definition: microhttpd.h:1305
MHD_FEATURE_TLS
@ MHD_FEATURE_TLS
Definition: microhttpd.h:3916
MHD_DaemonInfo::epoll_fd
int epoll_fd
Definition: microhttpd.h:3853
MHD_FEATURE_IPv6
@ MHD_FEATURE_IPv6
Definition: microhttpd.h:3929
MHD_lookup_connection_value_n
_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:460
MHD_stop_daemon
_MHD_EXTERN void MHD_stop_daemon(struct MHD_Daemon *daemon)
Definition: daemon.c:7318
MHD_CONNECTION_NOTIFY_STARTED
@ MHD_CONNECTION_NOTIFY_STARTED
Definition: microhttpd.h:1896
MHD_Connection::version
char * version
Definition: internal.h:774
MHD_USE_SELECT_INTERNALLY
@ MHD_USE_SELECT_INTERNALLY
Definition: microhttpd.h:1104
MHD_OPTION_CONNECTION_MEMORY_LIMIT
@ MHD_OPTION_CONNECTION_MEMORY_LIMIT
Definition: microhttpd.h:1397
MHD_Daemon
Definition: internal.h:1001
MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY
@ MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY
Definition: microhttpd.h:2090
MHD_COOKIE_KIND
@ MHD_COOKIE_KIND
Definition: microhttpd.h:1802
MHD_free
_MHD_EXTERN void MHD_free(void *ptr)
Definition: memorypool.c:89
_MHD_EXTERN
#define _MHD_EXTERN
Definition: microhttpd.h:186
MHD_DaemonInfoType
MHD_DaemonInfoType
Definition: microhttpd.h:2067
MHD_queue_response
_MHD_EXTERN enum MHD_Result MHD_queue_response(struct MHD_Connection *connection, unsigned int status_code, struct MHD_Response *response)
Definition: connection.c:3919
MHD_ConnectionInfo::cipher_algorithm
int cipher_algorithm
Definition: microhttpd.h:1916
MHD_queue_basic_auth_fail_response
_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:124
MHD_create_response_for_upgrade
_MHD_EXTERN struct MHD_Response * MHD_create_response_for_upgrade(MHD_UpgradeHandler upgrade_handler, void *upgrade_handler_cls)
MHD_USE_DUAL_STACK
@ MHD_USE_DUAL_STACK
Definition: microhttpd.h:1259
MHD_run
_MHD_EXTERN enum MHD_Result MHD_run(struct MHD_Daemon *daemon)
Definition: daemon.c:5023
MHD_CONNECTION_INFO_CONNECTION_FD
@ MHD_CONNECTION_INFO_CONNECTION_FD
Definition: microhttpd.h:2030
MHD_create_response_from_pipe
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_pipe(int fd)
Definition: response.c:674
MHD_UPGRADE_ACTION_CORK_OFF
@ MHD_UPGRADE_ACTION_CORK_OFF
Definition: microhttpd.h:3254
MHD_UpgradeHandler
void(* MHD_UpgradeHandler)(void *cls, struct MHD_Connection *connection, void *con_cls, const char *extra_in, size_t extra_in_size, MHD_socket sock, struct MHD_UpgradeResponseHandle *urh)
Definition: microhttpd.h:3333
_MHD_DEPR_MACRO
#define _MHD_DEPR_MACRO(msg)
Definition: microhttpd.h:255
MHD_set_connection_value
_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:394
MHD_RESPMEM_PERSISTENT
@ MHD_RESPMEM_PERSISTENT
Definition: microhttpd.h:3072
MHD_USE_POLL_INTERNALLY
@ MHD_USE_POLL_INTERNALLY
Definition: microhttpd.h:1155
MHD_FEATURE_BASIC_AUTH
@ MHD_FEATURE_BASIC_AUTH
Definition: microhttpd.h:3977
MHD_RESPMEM_MUST_COPY
@ MHD_RESPMEM_MUST_COPY
Definition: microhttpd.h:3089
MHD_USE_PEDANTIC_CHECKS
@ MHD_USE_PEDANTIC_CHECKS
Definition: microhttpd.h:1130
MHD_USE_EPOLL_INTERNALLY
@ MHD_USE_EPOLL_INTERNALLY
Definition: microhttpd.h:1217
MHD_ALLOW_SUSPEND_RESUME
@ MHD_ALLOW_SUSPEND_RESUME
Definition: microhttpd.h:1282
MHD_create_response_from_fd
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd(size_t size, int fd)
Definition: response.c:702
MHD_NO_FLAG
@ MHD_NO_FLAG
Definition: microhttpd.h:1057
MHD_USE_EPOLL_LINUX_ONLY
@ MHD_USE_EPOLL_LINUX_ONLY
Definition: microhttpd.h:1199
MHD_OPTION_SOCK_ADDR
@ MHD_OPTION_SOCK_ADDR
Definition: microhttpd.h:1444
MHD_POSTDATA_KIND
@ MHD_POSTDATA_KIND
Definition: microhttpd.h:1812
MHD_FOOTER_KIND
@ MHD_FOOTER_KIND
Definition: microhttpd.h:1822
MHD_http_unescape
_MHD_EXTERN size_t MHD_http_unescape(char *val)
Definition: internal.c:142
MHD_USE_POLL
@ MHD_USE_POLL
Definition: microhttpd.h:1146
MHD_ConnectionNotificationCode
MHD_ConnectionNotificationCode
Definition: microhttpd.h:1890
MHD_USE_POLL_INTERNAL_THREAD
@ MHD_USE_POLL_INTERNAL_THREAD
Definition: microhttpd.h:1152
MHD_FEATURE_HTTPS_KEY_PASSWORD
@ MHD_FEATURE_HTTPS_KEY_PASSWORD
Definition: microhttpd.h:4000
MHD_create_response_from_buffer
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer(size_t size, void *buffer, enum MHD_ResponseMemoryMode mode)
Definition: response.c:809
MHD_FEATURE_EPOLL
@ MHD_FEATURE_EPOLL
Definition: microhttpd.h:3950
MHD_resume_connection
_MHD_EXTERN void MHD_resume_connection(struct MHD_Connection *connection)
Definition: daemon.c:3134
MHD_DIGEST_ALG_MD5
@ MHD_DIGEST_ALG_MD5
Definition: microhttpd.h:3578
MHD_create_post_processor
_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:280
MHD_ConnectionInfo::client_addr
struct sockaddr * client_addr
Definition: microhttpd.h:1958
MHD_queue_auth_fail_response2
_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:1351
MHD_DaemonInfo
Definition: microhttpd.h:3827
MHD_OPTION_HTTPS_CRED_TYPE
@ MHD_OPTION_HTTPS_CRED_TYPE
Definition: microhttpd.h:1499
MHD_DaemonInfo::listen_fd
MHD_socket listen_fd
Definition: microhttpd.h:3843
MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT
@ MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT
Definition: microhttpd.h:2016
MHD_LogCallback
void(* MHD_LogCallback)(void *cls, const char *fm, va_list ap)
Definition: microhttpd.h:1352
MHD_OPTION_ARRAY
@ MHD_OPTION_ARRAY
Definition: microhttpd.h:1557
MHD_CONNECTION_INFO_CLIENT_ADDRESS
@ MHD_CONNECTION_INFO_CLIENT_ADDRESS
Definition: microhttpd.h:2002
MHD_RequestTerminationCode
MHD_RequestTerminationCode
Definition: microhttpd.h:1832
MHD_DAEMON_INFO_EPOLL_FD
@ MHD_DAEMON_INFO_EPOLL_FD
Definition: microhttpd.h:2091
MHD_DAEMON_INFO_BIND_PORT
@ MHD_DAEMON_INFO_BIND_PORT
Definition: microhttpd.h:2116
MHD_queue_auth_fail_response
_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:1474
MHD_OPTION_HTTPS_MEM_TRUST
@ MHD_OPTION_HTTPS_MEM_TRUST
Definition: microhttpd.h:1610
MHD_FEATURE_SOCKETPAIR
@ MHD_FEATURE_SOCKETPAIR
Definition: microhttpd.h:3963
MHD_ResponseFlags
MHD_ResponseFlags
Definition: microhttpd.h:2952
MHD_ValueKind
MHD_ValueKind
Definition: microhttpd.h:1781
MHD_RO_END
@ MHD_RO_END
Definition: microhttpd.h:2994
MHD_REQUEST_TERMINATED_WITH_ERROR
@ MHD_REQUEST_TERMINATED_WITH_ERROR
Definition: microhttpd.h:1846
MHD_FEATURE_THREAD_NAMES
@ MHD_FEATURE_THREAD_NAMES
Definition: microhttpd.h:4015
MHD_run_from_select
_MHD_EXTERN enum MHD_Result MHD_run_from_select(struct MHD_Daemon *daemon, const fd_set *read_fd_set, const fd_set *write_fd_set, const fd_set *except_fd_set)
Definition: daemon.c:3955
MHD_HEADER_KIND
@ MHD_HEADER_KIND
Definition: microhttpd.h:1796
MHD_create_response_from_buffer_with_free_callback
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_with_free_callback(size_t size, void *buffer, MHD_ContentReaderFreeCallback crfc)
Definition: response.c:831
MHD_start_daemon_va
_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:6078
MHD_SUPPRESS_DATE_NO_CLOCK
@ MHD_SUPPRESS_DATE_NO_CLOCK
Definition: microhttpd.h:1172
MHD_FEATURE_HTTPS_CERT_CALLBACK2
@ MHD_FEATURE_HTTPS_CERT_CALLBACK2
Definition: microhttpd.h:4067
MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE
@ MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE
Definition: microhttpd.h:2058
MHD_USE_THREAD_PER_CONNECTION
@ MHD_USE_THREAD_PER_CONNECTION
Definition: microhttpd.h:1090
MHD_Response
Definition: internal.h:1568
MHD_UPGRADE_ACTION_CORK_ON
@ MHD_UPGRADE_ACTION_CORK_ON
Definition: microhttpd.h:3249
MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT
@ MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT
Definition: microhttpd.h:1332
MHD_FEATURE_DIGEST_AUTH
@ MHD_FEATURE_DIGEST_AUTH
Definition: microhttpd.h:3985
MHD_OPTION_STRICT_FOR_CLIENT
@ MHD_OPTION_STRICT_FOR_CLIENT
Definition: microhttpd.h:1701
MHD_Response::crc_cls
void * crc_cls
Definition: internal.h:1594
MHD_RESPMEM_MUST_FREE
@ MHD_RESPMEM_MUST_FREE
Definition: microhttpd.h:3080
MHD_OPTION_URI_LOG_CALLBACK
@ MHD_OPTION_URI_LOG_CALLBACK
Definition: microhttpd.h:1476
MHD_Connection
Definition: internal.h:634
MHD_REQUEST_TERMINATED_TIMEOUT_REACHED
@ MHD_REQUEST_TERMINATED_TIMEOUT_REACHED
Definition: microhttpd.h:1854
MHD_RESPONSE_HEADER_KIND
#define MHD_RESPONSE_HEADER_KIND
Definition: microhttpd.h:1788
MHD_Result
MHD_Result
Definition: microhttpd.h:142
MHD_OPTION_THREAD_STACK_SIZE
@ MHD_OPTION_THREAD_STACK_SIZE
Definition: microhttpd.h:1603
MHD_Connection::url
const char * url
Definition: internal.h:768
MHD_DaemonInfo::mac_key_size
size_t mac_key_size
Definition: microhttpd.h:3838
MHD_get_response_header
_MHD_EXTERN const char * MHD_get_response_header(struct MHD_Response *response, const char *key)
Definition: response.c:284
MHD_DIGEST_ALG_SHA256
@ MHD_DIGEST_ALG_SHA256
Definition: microhttpd.h:3583
offset
int off_t offset
Definition: microhttpd.h:3196
_MHD_DEPR_FUNC
#define _MHD_DEPR_FUNC(msg)
Definition: microhttpd.h:286
MHD_OPTION_HTTPS_MEM_CERT
@ MHD_OPTION_HTTPS_MEM_CERT
Definition: microhttpd.h:1492
MHD_FEATURE_POLL
@ MHD_FEATURE_POLL
Definition: microhttpd.h:3943
MHD_PskServerCredentialsCallback
int(* MHD_PskServerCredentialsCallback)(void *cls, const struct MHD_Connection *connection, const char *username, void **psk, size_t *psk_size)
Definition: microhttpd.h:1370
MHD_Connection::method
char * method
Definition: internal.h:762
MHD_ConnectionInfo::tls_session
void * tls_session
Definition: microhttpd.h:1948
MHD_del_response_header
_MHD_EXTERN enum MHD_Result MHD_del_response_header(struct MHD_Response *response, const char *header, const char *content)
Definition: response.c:198
MHD_OPTION_CONNECTION_TIMEOUT
@ MHD_OPTION_CONNECTION_TIMEOUT
Definition: microhttpd.h:1410
MHD_CONNECTION_INFO_DAEMON
@ MHD_CONNECTION_INFO_DAEMON
Definition: microhttpd.h:2022
MHD_Connection::socket_context
void * socket_context
Definition: internal.h:694
MHD_ConnectionInfo
Definition: microhttpd.h:1911
MHD_USE_TCP_FASTOPEN
@ MHD_USE_TCP_FASTOPEN
Definition: microhttpd.h:1298
MHD_get_timeout
_MHD_EXTERN enum MHD_Result MHD_get_timeout(struct MHD_Daemon *daemon, MHD_UNSIGNED_LONG_LONG *timeout)
Definition: daemon.c:3752
MHD_OPTION_HTTPS_CERT_CALLBACK
@ MHD_OPTION_HTTPS_CERT_CALLBACK
Definition: microhttpd.h:1632
MHD_UpgradeAction
MHD_UpgradeAction
Definition: microhttpd.h:3237
MHD_OPTION_NOTIFY_CONNECTION
@ MHD_OPTION_NOTIFY_CONNECTION
Definition: microhttpd.h:1677
MHD_CONNECTION_NOTIFY_CLOSED
@ MHD_CONNECTION_NOTIFY_CLOSED
Definition: microhttpd.h:1902
MHD_is_feature_supported
_MHD_EXTERN enum MHD_Result MHD_is_feature_supported(enum MHD_FEATURE feature)
Definition: daemon.c:7615
MHD_set_response_options
_MHD_EXTERN enum MHD_Result MHD_set_response_options(struct MHD_Response *response, enum MHD_ResponseFlags flags,...)
Definition: response.c:416
MHD_add_response_footer
_MHD_EXTERN enum MHD_Result MHD_add_response_footer(struct MHD_Response *response, const char *footer, const char *content)
Definition: response.c:177
MHD_ConnectionInfo::connect_fd
MHD_socket connect_fd
Definition: microhttpd.h:1938
MHD_FEATURE_THREADS
@ MHD_FEATURE_THREADS
Definition: microhttpd.h:4061
MHD_GET_ARGUMENT_KIND
@ MHD_GET_ARGUMENT_KIND
Definition: microhttpd.h:1817
MHD_CONNECTION_INFO_SOCKET_CONTEXT
@ MHD_CONNECTION_INFO_SOCKET_CONTEXT
Definition: microhttpd.h:2040