ChangeLog (158909B)
1 Fri Aug 7 10:15:01 PM CEST 2026 2 Fix race in thread-per-connection mode on wake-up signal 3 between daemon and thread that could result in lost wake-ups 4 and thus connections that did not finish processing. 5 Fix rare assertion failure in relation to suspend-and-resume 6 processing (harmless if assertions were turned off). 7 Releasing GNU libmicrohttpd 1.0.10. -CG 8 9 Thu Jul 30 05:32:00 PM CEST 2026 10 Enfocing a minimal size on the PSK. 11 Fix support for red zones in memorypool. 12 Fix rare over-writing of HTTP version string with network data 13 after parsing header. 14 Fix rare crash from adding connection manually followed by 15 immediate daemon shutdown. 16 Releasing GNU libmicrohttpd 1.0.9. -CG 17 18 Tue Jul 28 06:12:03 PM CEST 2026 19 Fixing additional vulnerabilities inspired by reviewing the 20 code for similar issues like the ones reported by A. Ramos; 21 expand the test suite to cover these and other issues. 22 Releasing GNU libmicrohttpd 1.0.8. -CG 23 24 Mon Jul 27 06:12:03 PM CEST 2026 25 Fixing various vulnerabilities reported by A. Ramos resulting 26 in possible crashes or out-of-bounds stack writes for certain 27 requests in specific configurations. 28 Releasing GNU libmicrohttpd 1.0.7. -CG 29 30 Wed Jul 8 12:32:30 PM CEST 2026 31 Fix various minor issues, like theoretical 32 integer overflows for extreme inputs or NULL 33 dereferences if the application passes NULL 34 where it should not. 35 Releasing GNU libmicrohttpd 1.0.6. -CG 36 37 Thu Apr 16 10:36:54 AM CEST 2026 38 Also ensuring other HTTP client headers that 39 should be unique are unique. 40 Releasing GNU libmicrohttpd 1.0.5. -EG/CG 41 42 Mon Apr 13 11:39:04 AM CEST 2026 43 Fixed bug where additional "Content-Length" headers were 44 ignored instead of rejecting the request, fixing a 45 (minor) header smuggling vulnerability discovered 46 by SySS GmbH. 47 Releasing GNU libmicrohttpd 1.0.4. -CG 48 49 Thu Apr 2 12:13:57 AM CEST 2026 50 Fixed bug in connection list traversal logic that could 51 cause ready connections to be skipped (possibly indefinitely) 52 if another connection was being suspended. 53 Releasing GNU libmicrohttpd 1.0.3. -CG 54 55 Sat Feb 28 23:38:39 CET 2026 56 Added MHD_OPTION_ALLOW_BIN_ZERO_IN_URI_PATH daemon option. 57 Added new function MHD_get_connection_URI_path_n(). -EG 58 59 Mon Jul 14 05:03:07 PM CEST 2025 60 Fix double-close bugs on bind() errors reported by MC on the list. 61 Removed MHD2 draft code, now in libmicrohttpd2.git. 62 Releasing GNU libmicrohttpd 1.0.2 -CG 63 64 Fri 23 Feb 2024 21:00:00 UZT 65 Releasing GNU libmicrohttpd 1.0.1 -EG 66 67 February 2024 68 Fixed builds without messages. -JP & CG 69 Fixed builds with external MD5 calculation. 70 Fixed SHA-512/256 code for hypothetical extra large sizes. 71 Fixed response handling during daemon shutdown. 72 Fixed code logic for builds without messages. 73 Reduced the binary size for builds without messages by removing 74 the strings with filenames used for panic reports. 75 Fixed tests and examples for builds without messages and for builds 76 without basic auth. 77 Fixed some compiler warnings. -EG 78 79 Thu 01 Feb 2024 15:00:00 CET 80 Releasing GNU libmicrohttpd 1.0.0 -EG 81 82 January 2024 83 add missing lock, do not call 'close(-1)' on very rare error path. 84 use correct HTTP header (content type, not content encoding) for mime type 85 in examples. 86 fix memory leak on error path. -CG 87 MHD_OPTION_CONNECTION_MEMORY_{LIMIT,INCREMENT}: added ignore of zero value. 88 test_upgrade{,_large}{,_tls}: unified code, removed workarounds, added new 89 test. 90 digest_auth_example_adv: added new advanced example for the new Digest 91 Auth API use. 92 Fixed compiler warnings in configure, lib, examples, tests. 93 test_digestauth2: supported old libcurl versions. 94 Fixed tests with GnuTLS in non-default path. 95 configure: sorted messages in final config summary. 96 Fixed non-debug build without HTTPS. 97 configure: removed old workaround for Solaris. 98 test_upgrade: adapted for macOS. -EG 99 100 December 2023 101 "Upgraded" TLS connections: fixed data pumping in various edge conditions. 102 'bootstrap': fixes and simplifications. 103 Digest Auth: added default timeout and max nc values, added daemon options 104 for default nonce timeout and max nc values, added testing, implemented 105 setting DAuth defaults by configure parameters. -EG 106 107 November 2023 108 Updated HTTP methods, headers and reason phrases. 109 Renamed one new basic auth function, improved doxy. 110 digest auth: updated header, slightly modified multi-value processing. -EG 111 websocket_threaded_example: fix websocket url string. -Evgeniy Gavrilenko 112 configure: warn if building without threads. -EG 113 configure: added detection of FD_SETSIZE value and ability to override it. 114 internal.h: added macros for polling mode detection. 115 Added use of configure-detected system default FD_SETSIZE value. 116 internal.h: added macros for internal threads modes detection. 117 Added MHD_OPTION_APP_FD_SETSIZE and MHD_FEATURE_FLEXIBLE_FD_SETSIZE. 118 daemon.c: moved processing and checking of app-provided listen socket. 119 MHD_start_daemon(): mark listen as UNIX based on available information. 120 MHD_start_daemon(): added stricter checks for bind() and listen() return 121 values. 122 MHD_start_daemon(): added check for epoll FD to fit fd_set for external 123 polling mode. 124 Implemented and documented MHD_OPTION_LISTEN_SOCKET followed by 125 MHD_INVALID_SOCKET. 126 Fixed ignored daemon port when MHD_OPTION_LISTEN_SOCKET or 127 MHD_OPTION_SOCK_ADDR are used as documented. 128 MHD_start_daemon(): further improved UNIX / IP socket detection. 129 Implemented new option MHD_OPTION_SOCK_ADDR_LEN. 130 MHD_start_daemon(): added check for app-provided socket to fit fd_set. 131 MHD_start_daemon(): fixed leaked listen socket when daemon start failed. 132 MHD_add_connection(): added more checks for correct members of sockaddr. 133 Timeout handling added detection of more conditions to process the data 134 without waiting. 135 MHD_quiesce_daemon(): fixed return value if already quiesced. 136 MHD_start_daemon(): reject INTERNAL_POLLING_THREAD if threads are disabled. 137 test_daemon: fixed to not skip the test if failed. 138 test_digestauth2: fixed order of the initial checks. 139 Improved daemon shutdown handling in external polling mode. 140 Unified and simplified fd_set filling. 141 Added new daemon flag MHD_USE_NO_THREAD_SAFETY and testing. 142 Officially support zero for MHD_OPTION_THREAD_POOL_SIZE. 143 test_upgrade: used sized send and receive, removed VLA, other improvements. 144 test_upgrade: implemented proper timeout detection and handling. -EG 145 146 September 2023 147 fix #7928: correct tutorial direntry. 148 proper fix for #7757. -CG 149 W32 VS projects: added perf_replies. 150 W32 VS projects: added .editorconfig. 151 perf_replies improvements for W32. 152 mhd_threads: muted compiler warning on W32. 153 mhd_threads: fixed check for error when starting a new thread on W32. 154 Renamed 'pid' -> 'tid' when used for threads. 155 mhd_str: fixed possible compiler and run-time sanitizers warnings. 156 Muted and fixed some compiler warnings. 157 W32 VS project: corrected compiler settings. 158 W32 VS: really muted run-time false warnings about data truncation. 159 examples/sessions.c: fixes. 160 Fixed missing <errno.h> includes. 161 Refactored threads support to handle platforms without "invalid" ID value. 162 Fixed MHD_CONNECTION_INFO_DAEMON: return master daemon. -EG 163 check rvalues from pthread_mutex_, MHD_add_response_header, 164 MHD_post_process in examples. 165 Theoretical use-after-free in test on error path. -CG 166 Do no use internal magic number if it is used by the remote client. 167 Refactoring: store "request target" original length. 168 Detect error earlier if request HTTP version is bad. 169 Added calculation of request headers total size. 170 Rewritten handling of exhaustion of memory pool when receiving. 171 tests: fixed compiler warnings, copy-paste error, added error reporting. 172 test_long_header: re-use the same port for all checks. 173 Control acceptance of LF as CRLF in chunked encoding in the same way as 174 in headers parsing. 175 Improved compatibility with old compilers. 176 Fixed more compiler warnings. -EG 177 178 Sun Sep 3 12:23:18 AM CEST 2023 179 Prevent queueing of responses if connection is not currently in the 180 access handler callback (which was always not allowed per API spec, 181 but is now met with an appropriate error response). Fixes #7757. -CG 182 183 August 2023 184 Improved CPU cores detection in perf_replies. -EG 185 186 July 2023 187 Added new tool perf_replies with automatic detection of number of available 188 CPU on system and for the program. -EG 189 190 June 2023 191 Bump version numbers as v0.9.77 was released on parallel branch. 192 Added test for MHD_get_version{,_bin} function and related macros. 193 base64 decoding: added more compact code version. 194 Refactoring: check whether memory pool block is resizeable. 195 Re-implemented parsing of the request line from scratch with strict 196 conformance with RFC 9110 and 9112 requirements. 197 Re-implemented parsing of the request headers and footers from scratch with 198 strict conformance with RFC 9110 and 9112 requirements. 199 Fuzzing tests: almost completely re-implemented. The new version is unified 200 and much easier to maintain. 201 Added new tests for folded headers. 202 Corrected HTTP error responses for clients. 203 connection: fixed pipelined requests processing. 204 Added checks for correct values specified for connection memory limits. 205 process new connection: fixed missing mutex unlock in error handling path. 206 W32 VS Projects: fixed code parsing by GUI. 207 Focused all read-buffer grows in a single point, related improvements. -EG 208 209 May 2023 210 Improved portability of boostrap (and autogen.sh) 211 Muted more compiler warnings in configure. 212 Tests: updated to support new libcurl APIs and fixed deprecation 213 warnings with new versions (the old versions are supported still). 214 Tests: minor and cosmetic fixes and improvements. 215 Tests: compiler warnings fixes. 216 configure: bump gettext version. 217 Tests: fixed build with C89 compilers. 218 Tests: fixed tests on Darwin 22.x (Ventura). 219 Tests: redesigned one tests group to avoid stress-testing of the OS. 220 configure: improved portability for exotic platforms. 221 examples: removed non-portable functions, added some checking, 222 fixed compiler warnings, fixed erroneously commented out code. 223 configure: fixed detection of __FUNCTION__ magic macro. 224 Unified function name magic macros usage in code. 225 W32 VS projects: supported ARM and ARM64. 226 Fixed compiler warning on x32. 227 Some minor fixes for W32 VS compilation. -EG 228 229 230 April 2023 231 Implemented and used new function MHD_pool_deallocate(). 232 Updated libtool fixes. 233 Removed some autotools files from git. 234 Added autoconf patches and fixes. 235 {md5,sha256}_ext.c: fixed processing of initialisation error with NULL 236 handler. -EG 237 238 March 2023 239 Upgraded TLS: fixed inefficient communication. 240 Upgraded TLS: use more available memory for pumping the data. -EG 241 242 Web 29 Mar 2023 20:56:00 CEST 243 Bumped version as the hotfix was released based on the separate branch. -EG 244 245 March 2023 246 configure: reordered checks for compiler flags. 247 configure: fixed checks for tsearch() and related changes. 248 Makefile: fixed build with 'make' without nested vars support. 249 configure: fixed compiler warnings. 250 libcurl.m4: patched to fix compiler warning. 251 configure: internal fixes, compiler warning fixes, cosmetics, better 252 POSIX compatibility, fixed compatibility with old autoconf. 253 Upgraded TLS: warn if emergency buffer is used. -EG 254 255 Sun Feb 26 05:49:30 PM CET 2023 256 Fix potential DoS vector in MHD_PostProcessor discovered 257 by Gynvael Coldwind and Dejan Alvadzijevic (CVE-2023-27371). -CG 258 259 February 2023 260 epoll: immediately notice when other side closes the socket, instead of 261 waiting for timeout. -CG 262 263 December 2022 264 Refactored cookies parsing. 265 Always close connection after reply if both Content-Length and chucked are 266 used. This is specified by RFC. 267 Added new daemon option MHD_OPTION_CLIENT_DISCIPLINE_LV with more detailed 268 control of accepted/rejected non-standard requests. 269 Added new M4 helper macro. 270 configure: used better detection of some functions when cross-compiling. 271 configure: try to detect whether eventfd is enabled. 272 Compiler warning fixes. 273 Improved reported strings in tests. -EG 274 275 November 2022 276 connection: refuse requests with unsupported Transfer-Encoding. 277 connection: reject or log requests with both chunked encoding and 278 Content-Length. 279 tests: fixed checking response headers as null-terminated string. 280 Some tests fixes. 281 configure: check fixes. 282 Refactored user-poison: minimized scope of non-sanitized code. 283 digestauth: avoided malloc() repeating by using the new function. 284 MHD_get_version_bin(): added new function. 285 test_parse_cookies: rewritten. -EG 286 287 October 2022 288 Reworked HTTPS tests. Removed hardcoded TLS version and ciphers, updated 289 self-signed certificate. 290 Fixed delayed call of connection notification callback in 291 thread-per-connection mode. 292 Fixed delayed new connection notification in thread-per-connection mode. 293 Minor internal code improvements. 294 Added handling of "DEBUG" preprocessor macro as an alias of "_DEBUG". 295 TLS initialisation: re-implemented. New implementation trying to use 296 "libmicrohttpd" system-wide GnuTLS configuration by default with fallbacks 297 to generic system-wide GnuTLS configuration and default GnuTLS 298 configuration. 299 New daemon option to use addition to default configuration instead of 300 specifying full configuration string. 301 Added relevant tests for GnuTLS initialization. 302 Added reporting of failed part of GnuTLS configuration string. 303 Added MHD_FEATURE_DEBUG_BUILD value. 304 Implemented internal protection from some wild data hypothetically reported 305 by accept4(). 306 Internal refactoring. 307 Prevented sending "100 continue" if request has no body or if any part of 308 request data has been received. 309 Reworked handling of situation when app just partially processed the data: 310 if any data was processed then zero timeout if used for polling sockets, 311 if no data was processed then callback in not called until the new data 312 arrived. 313 Fixed handling of various errors conditions detected in requests. 314 Added test with Content-Length broken value in request. 315 test_head: added check for excess data in reply 316 Improved epoll connection handling. 317 Fuzzing tests: fixed CPPFLAGS. 318 configure: do not pass AM_TESTS_ENVIRONMENT directly. 319 configure: added summary message about heavy and fuzzing tests 320 test-suite: marked some tests as "very heavy" tests 321 configure: improved check for asserts. -EG 322 323 September 2022 324 Added testing of userdigest and userhash calculations. 325 Implemented SHA-512/256 from scratch. 326 Digest Auth: implemented SHA-512/256 support, added 327 MHD_FEATURE_DIGEST_AUTH_SHA512_256 and relevant tests. 328 Made all algorithms (MD5, SHA-256, SHA-512/256) optional with ability 329 to remove by configure parameter. 330 Digest Auth: internal refactoring and improvements. 331 configure: minor improvements. 332 Fixed initialisation of very old GnuTLS versions. 333 Replace public domain MD5 implementation with the new implementation 334 written from scratch. 335 MD5, SHA-256, SHA-512/256: various code improvements, special versions for 336 compact code. 337 Digest Auth: changed internal algorithm for re-use of nonce-nc slot. 338 Digest Auth: used weak pseudo-random generators to avoid slot clashes. 339 Implemented optional ability to use GnuTLS functions for MD5 and SHA-256 340 calculations. 341 Fixed harmless unwanted extra data processing resulting in triggering of 342 the assert. 343 Added testing of HEAD requests. 344 Minor internal changes. 345 Fixed compiler warnings for compact code version. 346 Muted compiler warnings with clang. 347 Configure: more workarounds for clang on W32 with incorrect headers. 348 Removed long-unused "gauger" from tests. 349 Fixed compiler warnings in test. 350 test_add_conn: added reasonable limits. -EG 351 352 August 2022 353 Added testing of userhash parameter parsing. 354 Added testing of the auth type headers in one request. 355 Warn in log if random data has not been initialised. 356 Digest Auth: improved response header in RFC2069 mode. 357 Added more string processing internal functions. 358 Digest Auth: added new option MHD_OPTION_DIGEST_AUTH_NONCE_BIND_TYPE to 359 control nonces generation. 360 Increased testing for Digest Auth. 361 Digest Auth: do not use reproducible nonces generation by default. 362 Minor correction for auth headers processing. 363 Digest Auth: internal refactoring. 364 Digest Auth: added algorithm value to username info (required for userhash 365 values). 366 Digest Auth: added new public functions for userhash and userdigest 367 calculations. -EG 368 369 July 2022 370 Digest Auth: internal optimisations and refactoring, digest_auth_check 371 almost completely rewritten. 372 Digest Auth: removed use of VLA. 373 Digest Auth: added support for username in extended notation and test 374 for extended notation. 375 Digest Auth: implemented userhash support and tests for extended notation. 376 MHD_add_response_entry(): refactoring 377 Digest Auth: implemented DAuth response function 378 MHD_queue_auth_required_response3() from scratch. Removed old 379 implementations, old functions converted to wrappers for the new function. 380 Digest Auth: added new group of tests. 381 Digest Auth: added related MHD_FEATURES_* values. 382 Digest Auth: added detection of the algorithm used by the client and 383 use specified algorithm if allowed by application. 384 Configure: cosmetics and reports improvements, control static and shared 385 enablement by --enable-build-type=. 386 Added new daemon option MHD_OPTION_DIGEST_AUTH_RANDOM_COPY and tests. 387 Digest Auth: implemented support for old RFC 2069 (if allowed by app) and 388 tests for RFC 2069. 389 Internal refactoring: moved all request-related connection struct members 390 to dedicated struct. The same for reply-related struct members. 391 Implemented support for both Basic and Digest headers in the same 392 request. -EG 393 394 June 2022 395 Fixed compiler warnings in main code and examples. 396 Added error checking in examples. 397 Added test for parsing auth headers. 398 Improved parsing of auth headers. 399 Added more internal functions for quoted string processing. 400 Added test for quoting string processing. 401 Digest Auth: internal optimisations. 402 Basic Auth: fixed handling of realms with slashes and/or double quotes. 403 Digest Auth: fixed use of possible maximum client nonce length as maximum 404 server nonce length. Reduced size of internal arrays. 405 Basic Auth: new function MHD_queue_basic_auth_fail_response3() with support 406 for RFC 7617. 407 Basic Auth: added new function MHD_basic_auth_get_username_password3() with 408 more details about username and password. Technically allow binary zero in 409 username and in password. 410 Fixed data races when closing upgraded connection. 411 Replaced public domain Base64 decoder with the new implementation written 412 from scratch. The new implementation has very precise checks for the input 413 data. 414 Added new test for Base64 decoding. 415 Updated examples to use new Basic Auth functions. 416 Fixed and improved postprocessor tests. 417 Ported test to non-VLA compilers. 418 Added configure parameter --enable-compact-code. 419 Removed duplication of "Connection: upgrade" header. Patch by Alexander 420 Irion. 421 Configure: removed some unneeded compiler flags. 422 Digest Auth: improved RFC match (qop value caseless match), check 423 parameters length validity before checking the values validity, correctly 424 compare URLs with binary zeros, check URL arguments only in the same order 425 as specified in DAuth header. 426 Added internal functions for percent-decoding and tests for 427 percent-decoding. 428 Added internal function for hex to bin decoding, tests for hex<->bin 429 decoding. 430 Digest Auth: added new function MHD_digest_auth_get_request_info3() and 431 MHD_digest_auth_get_username3() with detailed information about DAuth 432 request. -EG 433 Fixed memory leaks in tests. 434 Fixed wrong array size for Digest Auth. -CG 435 436 May 2022 437 Improved public doxy. 438 Digest Auth: fixed missing mark on 'nc' value as 'used'. 439 Digest Auth: added internal checks for unrealistically high values. 440 Digest Auth: added check for correct values from application. 441 Digest Auth: nonce timestamps changed to milliseconds to lower conflict 442 probability. 443 Digest Auth: implemented management nonce-nc map array slots so old 444 entries are removed safely while trying to avoid to remove the new entries. 445 configure: added 'debugger' build type. 446 Added more tests for cookies parsing. 447 Digest Auth: use nonce-nc map arrays with locks in master daemon only 448 so works can re-use the nonces and nc information. 449 MHD_set_connection_option(): reduced scope for the lock. 450 Fixed leak of mutexes when daemon creation failed and when closing daemon 451 with thread pool. 452 Digest Auth: fixed stale nonce result value ambiguity. 453 Digest Auth: added special check for fabricated nonces. 454 Added new functions MHD_digest_auth_check3() and 455 MHD_digest_auth_check_digest3() with detailed result of the checks. 456 Added return NULL MHD_CONNECTION_INFO_CLIENT_ADDRESS when information is 457 not available. 458 Improved internal handling of non-IP connections (UNIX sockets or pipes) 459 when processing the client address. 460 Fixed compiler warnings. 461 Increased testing of cookies parsing. 462 Completely re-written cookies parsing. The new code follow RFC 6265. 463 Made cookies parsing functionality optional, can be disabled by configure. 464 Configure: added more warning flags. 465 Configure: internal improvements. 466 Globally changed '#if HAVE_SOMETHING' to '#ifdef HAVE_SOMETHING'. 467 Enabled more compiler warnings in W32 projects. 468 Fixed MHD functionality with blocking sockets. Patch by Kolja Nowak. 469 Moved some macros and declaration to new specialised headers: basicauth.h 470 and digestauth.h. 471 Added new function to process quoted strings. 472 Digest Auth: reworking support for multiple digest algorithms. 473 Response processing: better handle unrealistic but broken situation. 474 Basic and Digest Auth: completely reworked headers parsing, unified code. 475 Added new autoconf macros. 476 Configure: added more workarounds for clang. 477 Fixed possible use of uninitialised variable. 478 Added new test for Basic Auth. 479 Some code readability improvements. -EG 480 481 April 2022 482 Added autoconf macro for checking compiler parameter/flag. 483 Improved -fvisibility compiler flag support detection in configure. 484 Fixed compiler warnings. 485 Moved fixed libtool-specific flags to Makefile from configure. 486 Configure: added reporting of final compiler/linker flags. 487 Fixed ignored user linker flags when building library binary. 488 Improved makefiles dependency specification. 489 Implemented --enable-build-type=TYPE configure parameters for ready-to-use 490 configuration sets (defaults). 491 Separated internal types for request headers and response headers. 492 Fixed many unneeded drops of 'const' qualifier, converted some pointers 493 to 'const'. 494 Added use of _MHD_EXTERN with all external function definitions. 495 Refactored response creation functions. 496 Added new function MHD_create_response_from_buffer_static() to avoid 497 unwanted dropping of 'const' when application is using static strings. 498 Added new API function MHD_create_response_from_buffer_copy(). 499 Public doxy improvements. 500 Improved handling of TLS backends for libcurl when testing HTTPS. 501 Updated TLS certificates for tests and examples. New certificates 502 were generated with SAN fields to match actual requirements. 503 Fixed old style function definitions in examples. 504 Tuned compiler warning flags. 505 Fixed many preprocessor macros (removed space before bracket). 506 Fixed printf() format specifications in examples. 507 Removed non-literal strings for printf in examples. 508 Improved portability of examples. 509 Fixed unaligned access via sockaddr_in pointers. 510 Fixed unaligned access in MHD_get_connection_info() and 511 MHD_get_daemon_info(). 512 Compiler warning fixes. 513 Changed: any negative number returned by response data generation 514 callback function is treated as an error. 515 Fixed setting custom connection timeout value for thread-per-connection 516 mode. 517 Fixed short (lees then one second) busy-waiting when connection is about 518 to expire by switching to milliseconds accuracy instead of seconds. 519 Added new functions MHD_get_timeout64(), MHD_get_timeout64s(), 520 MHD_get_timeout_i(). 521 Added some checks for possible value trim due to width conversion. 522 Digest Auth: continuation of refactoring, optimisations. 523 Digest Auth: do not use nonces provided by the client if they were not 524 generated previously by MHD. -EG 525 526 March 2022 527 Added internal check for suitability of used response. 528 Improved doxy. 529 Improved handling of application-provide "Content-Length" header. 530 Internally separated "Icy" flag from the response code. 531 Fixed Address Sanitizer unpoison of memory when memory pool is destroyed. 532 Improved log messages. 533 Added more checks for "Upgrade" handling. 534 Better internally separated response type handling: 535 headers only without 536 body-specific headers, body-specific headers without body 537 (Content-Length/Transfer-Encoding), 538 all headers with body. 539 Blocked MHD_SIZE_UNKNOWN value for buffer-based responses. 540 Significantly improved doxy for MHD_queue_response(). 541 Added new function MHD_create_response_empty() 542 Fixed compiler flags for UBsan in configure. 543 Added new option for "--enable-sanitizers=" parameter. 544 Improved autoconf macros. -EG 545 546 January 2022 547 Tuned automake options. 548 Fixed compiler warning in examples. 549 Fixed use of initialised variable in tests. 550 Removed unused autotools files. 551 .gitignore: cleanup and update. 552 Autotools: always let user override build flags. 553 Moved 'po' files to separate directory. 554 Fixed missing include file in docs. 555 Fixed 'make distcheck'. 556 Fixed use on GNU/kFreeBSD. 557 Fixed HTTP/1.1 or 1.0 selection in tests. 558 Other tests improvements and fixes. 559 Digest Auth: changed "md5" / "sha-256" to "MD5" / "SHA-256" to better 560 match RFC (while clients should use caseless matching). 561 Initial digest auth refactoring, reject invalid input. 562 Global rename of callback parameter 'con_cls' -> 'req_cls'. 563 Digest auth tests improvements and fixes. 564 Added test for parallel digest auth requests. 565 Minor autoconf macros fixes. -EG 566 567 December 2021 568 configure: fixed unwanted output on Fedora. 569 configure: clarified licence message. 570 Doxy corrections and improvments. -EG 571 572 Sun 26 Dec 2021 20:30:00 MSK 573 Releasing GNU libmicrohttpd 0.9.75 -EG 574 575 December 2021 576 Fixed Makefile warning on MinGW. 577 Fixed compiler warning on MinGW. 578 Fixed "configure" portability (for NetBSD). 579 MSVC project cosmetics. 580 MSVC fixed project to fix linker warning. 581 Fixed compiler warning on some platforms. 582 Further improved test_client_put_stop to get stable results on all 583 platforms. 584 Added workaround for platforms (like OpenBSD) where system monotonic clocks 585 may jump forward and back. 586 Added more checks in test_large_put, increased timeout (was too small for 587 this test). -EG 588 589 Sun 19 Dec 2021 18:30:00 MSK 590 Releasing GNU libmicrohttpd 0.9.74 -EG 591 592 December 2021 593 Fixed doxy for MHD_suspend_connection(). 594 Some code improvements for new test test_client_put_stop. 595 Added special log message if thread creation failed due to system limits. 596 Fully restructured new_connection_process_() to correctly handle errors, 597 fixed missing decrement of number of daemon connections if any error 598 encountered, fixed app notification of connection termination when app has 599 not been notified about connection start, fixed (highly unlikely) reset of 600 the list of connections if reached daemon's connections limit. 601 configure: fixed some compiler warnings reported in config.log. 602 Fixed tests on FreeBSD to support system-limited rate of RST packets and 603 'blackhole' system setting. -EG 604 Fixed tests for libmagic to really use libmagic in examples. -CG 605 Used tricks in code formatting to workaround uncrustify bugs. 606 configure: improved compatibility with various shells. 607 configure: added selective enable of sanitizers. 608 Fixed compatibility with old GnuTLS versions. 609 Fixed tests compatibility with old libcurl versions. 610 Fixed busy-waiting in test_timeout (fixed CPU load spikes in the test). 611 test_https_time_out: check rewritten, previously it is was no-op. 612 test_upgrade{,_large}: fixed passing of socket value to GnuTLS on W32. 613 Simplified Makefile for HTTPS tests. 614 Added detection of old broken GnuTLS builds (on RHEL6 and clones) and 615 disabled some tests broken with these builds. 616 Muted compiler warnings with old libcurl versions. 617 Reworked dlltool support: added support for weakened oversimplified 618 half-broken llvm-dlltool 619 Silenced MS lib tool warning and MS lib tool invocation. 620 Added Makefiles rules for automatic regeneration of all required files if 621 anything is missing. 622 Added Makefile silent rules support for W32 RC and W32 static libs. 623 Added local patches for autotools (mainly for libtool) to build MHD 624 correctly on modern MinGW64/Clang. 625 Updated HTTP headers macros from registry. -EG 626 627 November 2021 628 Clarified comments and doxy for MHD_str* and related tests. 629 MHD_uint32_to_strx(): rewritten for readability and minor optimization, 630 used indexes instead of pointers. 631 Documented in doxy how to use MHD_AccessHandlerCallback. 632 mhd_sockets: added more network error codes. 633 W32 socket pair: set TCP_NODELAY to avoid unwanted buffering and delays. 634 Additional doxy fixes in microhttpd.h. 635 Fixed blocking sockets setting in tests and examples for W32. 636 Added checks for fcntl() results in tests and examples. 637 Added series of tests based on simple HTTP client implementation developed 638 for testing of MHD. 639 Renamed 'early_response' connection flag to 'discard_request' and reworked 640 handling of connection's flags. 641 Clarified request termination reasons doxy, fixed reporting of 642 MHD_REQUEST_TERMINATED_READ_ERROR (previously this code was not really used 643 in reporting). 644 Enforce all libcurl tests exit code to be zero or one. 645 Rewritten client upload processing: removed redundant checks, fixed 646 skipping of chunk closure when not data is not received yet, fixed skipping 647 of the last LF in termination chunk, handle correctly chunk sizes with more 648 than 16 digits (leading zeros are valid according to HTTP RFC), fixed 649 handling of CRCR, LFCR, LFLF, and bare CR as single line delimiters, report 650 error when invalid chunk format is received without waiting to receive 651 (possibly missing) end of the line, reply to the client with special error 652 if chunk size is too large to be handled by MHD (>16 EiB). 653 Added error reply if client used too large request payload (>16 EiB). 654 Fixed return value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32, now it 655 returns MHD_YES as W32 does not need sigpipe suppression. 656 configure: reordered and improved headers detection. Some headers require 657 other headers to be included before, now configure supports it. 658 Added missing ifdef guard for <stdbool.h>. 659 mhd_sockets: reordered includes for better compatibility. 660 Some code readability and formatting improvements. -EG 661 662 October 2021 663 Added test family test_toolarge to check correct handling of the buffers 664 when the size of data is larger than free space. 665 Fixed missing updated of read and write buffers sizes. 666 Added detection and use of supported "noreturn" keyword for function 667 declaration. It should help compiler and static analyser. 668 Added support for leak sanitizer. 669 Fixed analyser errors on W32. 670 Partially reworked memory allocation from the pool, more robust 671 implementation, always track read and write buffers. 672 Added custom memory poisoning in memory pool with address sanitizer. 673 Added missing update of the read buffer size. 674 Addition for doxy for new behaviour of MHD_del_response_header(). 675 Added two tests with non-standard symbols in requests. 676 Removed double close of connection with error in headers processing. 677 Respond to the client with error if chunked request has broken chunked 678 encoding as required by HTTP RFC instead of just closing the connection. 679 Fixed request headers processing. Do not recognize bare CR as end of line. 680 Fixed processing of CRCR, bare CR, LFCR, and LFLF as end of the line for 681 request chunked encoding. Now only CRLF or bare LF are recognized as end 682 of line. 683 Added Lawrence Sebald to the AUTHORS file (iovec-based responses). 684 Check for PAGESIZE and PAGE_SIZE macros and check whether they can be used 685 for static variable initialization. 686 Include "MHD_config.h" before all other includes to set macros required to 687 be set before standard includes. 688 Chunked response: abort with error if application returns more data than 689 requested. 690 Monotonic clock: use only native clock on W32 as all other clocks are just 691 wrappers. 692 W32: fixed builds with MSVC, added projects for VS2022, added MSVC 693 universal project that use latest available toolset, use C17 if supported. 694 Chunked response: fixed calculation of number of bytes left to send. 695 microhttpd.h: doxy clarifications for sockets polling. 696 Updated HTTP statuses, methods, and headers names from the registries. 697 Further improved doxy for MHD_add_response_header(). 698 A few comments improvements and clarifications. 699 Added internal connection's flag indicating discard of the request. -EG 700 Websockets update by David Gausmann. -DG 701 Fixed reported value for MHD_CONNECTION_INFO_CONNECTION_TIMEOUT. 702 Minor code readability improvements in MHD_set_connection_option(). 703 Improved doxy for MHD_get_timeout(). 704 Memorypool: minor code improvements. -EG 705 706 September 2021 707 Improved system includes headers detection and usage. Removed unused 708 headers detection. 709 Added indirect calculation of maximum values at compile time by 710 using types size detection. These values are used only to mute 711 compiler warnings. 712 Fixed pre-compiler errors if various *_MAX macros defined with 713 non-digits symbols not readable for pre-compiler. 714 Limit number of used CPU cores in tests to 6, unless heavy tests are 715 enabled. 716 Disabled parallel tests with libcurl if heavy tests are enabled. 717 configure: removed '--enable-sanitizer' and added '--enable-sanitizers' 718 parameters. Added testing for supported sanitizers and enabling only 719 supported sanitizers. 720 Added support for run-time sanitizers settings for tests when 721 sanitizers are enabled. 722 Added support for undefined behavior sanitizer without run-time library. 723 Fixed various undefined behavior sanitizer detected errors, improved 724 portability. 725 Fixed how bitwise NOT is used with enum, fixed portability. 726 microhttpd.h: changed macros MHD_CONTENT_READER_* to use ssize_t. 727 test_postprocessor: added more check, improved error reporting, added 728 new test data. 729 postprocessor: fixed undefined behavior (memcpy(), memmove() with zero 730 size and NULL pointer). 731 Updated copyright year in W32 DLLs. 732 postprocessor: fixed empty key processing. 733 test_postprocessor: added tests with hex-encoded values. 734 postprocessor: fixed incomplete processing of the last part of hex-encoded 735 value if data was broken into certain sized pieces. 736 Used type specifiers for printf() from inttypes.h to improved compatibility 737 with various run-time libs. Fallback to standard values if type specifiers 738 are not defined. 739 Added detection of used run-time library (MSVCRT/UCRT) on W32. 740 testcurl: fixed incorrect case-insensitive match for method name. Method 741 name must be checked by using case-sensitive match. 742 microhttpd.h: clarified some doxy descriptions. 743 Prevented potential double sending of error responses. 744 Fixed application notification with MHD_REQUEST_TERMINATED_COMPLETED_OK 745 when error response has been sent (MHD_REQUEST_TERMINATED_WITH_ERROR is 746 used). 747 Avoid trying to send error response if response is already being sent. 748 Improved log error message when error response is processing. -EG 749 750 August 2021 751 Silently drop "keep-alive" token from response "connection" header, 752 "keep-alive" cannot be enforced and always enabled if possible. 753 Further improved doxy for MHD_add_response_header(). 754 Added detection of the "Date:" header in the response headers set by 755 app at response forming time. 756 Disallow space in response header name, allow tab in response header 757 value. 758 Added internal MHD_uint8_to_str_pad() function. 759 Used internal MHD_uint8_to_str_pad() in datestamp generation function. 760 Added detection and reporting of incorrect "Upgrade" responses. -EG 761 Fixed short busy waiting (up to one second) when connection is going 762 to be closed. -AI 763 Minor improvement for test_callback, test_get_chunked 764 Fixed chunked responses with known size. 765 Added two more tests for chunked response. 766 Fixed chunked responses with predefined data (without data callback). 767 Fixed calculation of the buffer size for the next response chunk. 768 Completely rewritten reply header build function. The old version 769 had several levels of hacks, was unmaintainable, did not follow 770 HTTP specification in details; fixed used caseless header matching 771 where case-sensitive matching must be used; removed two passes of 772 header building. New version use clear logic and can be extended 773 when needed. 774 Changed behaviour: "Connection: keep-alive" is not being sent 775 for HTTP/1.1 connection (as per HTTP RFC). 776 test_get_chunked: fixed error reporting. 777 HTTPS tests: fixed memory leaks if function failed. 778 libcurl tests: improved handling of curl multi_*. 779 Added two tests for correct choice of "Keep-Alive" or "Close". 780 Simplified Makefile for testcurl. 781 Fixed select() error handling in tests. 782 microhttpd.h: minor macro formatting 783 Changed behaviour: if response size is unknown and chunked encoding is 784 allowed, chunked encoding is used even for non-keep-alive connection as 785 required by HTTP RFC. 786 Added two more tests for chunked replies. 787 Simplified keepalive_possible(); added new value for MHD_ConnKeepAlive, 788 added third state "Upgrade". 789 Changed behaviour: used HTTP/1.1 replies for HTTP/1.0 requests as 790 required by HTTP RFC. HTTP/1.0 reply still can be enforced by response 791 flag. 792 Added more doxy for MHD_ResponseFlags, added new names with the same 793 values as old names: MHD_RF_HTTP_1_0_COMPATIBLE_STRICT and 794 MHD_RF_HTTP_1_0_SERVER. 795 Added new value MHD_RF_SEND_KEEP_ALIVE_HEADER to enforce sending of 796 "Connection: keep-alive" even for HTTP/1.1 clients when keep-alive is 797 used. 798 test_get_close_keep_alive: added more combinations of parameters to 799 check. 800 Added separate flag for chunked response in connection instead of 801 reusing the same flag as for chunked request. 802 Added new connection's flag "stop_with_error". 803 Fixed empty first line processing: the request could be not processed 804 unless something else kicks next processing the same connection again. 805 Added new connection states: MHD_CONNECTION_REQ_LINE_RECEIVING, 806 MHD_CONNECTION_FULL_REQ_RECEIVED, MHD_CONNECTION_START_REPLY to 807 simplify states logic. 808 Changed write buffer allocation logic: as connection buffer size is 809 known and fixed, use initially use full buffer for writing and reduce 810 size of part used for writing if another allocation from the same 811 buffer needs to be done. Implemented helper function to automatically 812 reduce the size of read or write part to allocate buffer for other 813 needs. 814 Added define of NDEBUG if neither _DEBUG nor NDEBUG are defined. 815 As accepted sockets inherit non-blocking flag from listening socket 816 on all platform except Linux, track this state to use less number 817 of syscalls. 818 Fixed compiler and static analyser warnings. 819 Moved HTTPS tests helper file to the HTTPS tests directory. 820 Minor Makefiles cleanup. 821 Added support for new monotonic clock ids. 822 Added new internal monotonic clock function with milliseconds accuracy. 823 Fixed support of custom connection timeout in thread-per-connection mode. 824 Added more error checking to test_timeout. 825 microhttpd.h: removed duplicated macro. 826 Refined timeouts handling. Switched from seconds resolution to milliseconds 827 resolution, added automatic detection and support of low-resolution system 828 clock to avoid busy-waiting at connection expiration. Added log message 829 for too large timeout period (> 146 million years) with trim to supported 830 values. -EG 831 832 Wed 04 Aug 2021 06:56:52 PM CEST 833 Introduce new MHD_CONNECTION_INFO_HTTP_STATUS. -CG 834 835 July 2021 836 Added automatic response flags with detection when response 837 is being formed. 838 Added special processing for response "Connection" headers, combined 839 multiple "Connection" headers into single header. 840 Restructured MSVC project files. 841 Changed MSVC project defaults to Vista+ (WinXP is still supported). 842 Fixed copy-paste error in mhd_aligh.h, added support for MSVC. 843 Added internal function for printing hex and decimals numbers. 844 Reply chunked body handling fixes, used new internal functions 845 instead of snprintf(). 846 Added automatic response flag when app sets chunked encoding header. 847 New internal function for chunked reply footer forming. Unification with 848 reply header forming function just over-complicated things and made 849 function hardly maintainable. 850 Added new function MHD_get_reason_phrase_len_for(), related tests and 851 updated scripts for response phrases. 852 Added more tests for chunked replies. 853 Added function to reset connection state after finishing processing of 854 request-reply to prepare for the next request. 855 Added even more tests for chunked replies. 856 Added internal function for printing uint64_t decimal numbers. -EG 857 858 June 2021 859 Tests: implemented checking of response footer. 860 Fixed loss of incoming data if more than half of buffer is 861 used for the next request data. 862 Fixed completely broken calculation of request header size. 863 Chunked response: do not ask app callback for more data then 864 it is possible to process (more than 16 MBytes). 865 Check and report if app used wrong response code (>999 or <100) 866 Refuse to add second "Transfer-Encoding" header. 867 HTTPS tests: check whether all libcurl function succeeded. 868 HTTPS tests: implemented new detection of TLS backend. 869 HTTPS tests: fixed tests with new TLS defaults (SSL forbidden). 870 Implemented detection of basic HTTP methods, fixed wrong 871 caseless matching for HTTP method names. 872 MHD_create_response_*() functions: improved doxy. 873 MHD_add_response_header: added detailed comment about automatic 874 headers. 875 Do not allow responses with 1xx codes for HTTP/1.0 requests. 876 Fixed used order of headers: now user response headers are used in 877 the same order as was added by application. 878 Added new internal function MHD_get_response_element_n_(). 879 Added detection of more compiler built-ins for bits rotations. 880 Minor optimisation of caseless strings matching. 881 Added MHD_str_remove_token_caseless_() function and tests. 882 Added MHD_str_remove_tokens_caseless_() function and tests. -EG 883 884 May 2021 885 Doxy description clarifications for MHD_get_timeout() and related 886 functions. 887 Added MHD_create_response_from_buffer_with_free_callback_cls(). 888 Added SHA-1 calculation (required for WebSockets). 889 Added new internal header mhd_aligh.h for checking alignment of 890 variables. 891 Fixed SHA-256 and MD5 calculation with unaligned data. 892 Added tests for hashes with unaligned data. 893 Used compiler built-ins for bits rotations. 894 Added detection of HTTP version at early stage. 895 Added early response of unsupported HTTP version. 896 Fixed wrong caseless matches for HTTP version strings. 897 Added calculation of error responses at compile time (avoided 898 repeated strlen() for known data). -EG 899 900 April 2021 901 New test for reply chunked encoding. -EG 902 903 Mon 26 Apr 2021 02:09:46 PM CEST 904 Importing experimental Websocket support by David Gausmann. -CG 905 906 Sun 25 Apr 2021 14:00:00 MSK 907 Releasing GNU libmicrohttpd 0.9.73. -EG 908 909 Sat 24 Apr 2021 23:00:00 MSK 910 Fixed build with Clang and Visual Studio. 911 MSVS project files updated. 912 Enabled bind port autodetection with MSVS builds. -EG 913 914 Fri 23 Apr 2021 14:27:00 MSK 915 Fixed build without TLS lib. 916 Fixed build without system poll() function. 917 Fixed compiler warnings on 32-bit platforms. 918 Fixed various compiler warnings. -EG 919 920 Thu 22 Apr 2021 12:32:00 MSK 921 Fixed some typos. 922 Force disable TCP_CORK, TCP_NOPUSH, and TCP_NODELAY before switching 923 connection to "upgraded" mode. 924 Improved portability of the test-suite for upgraded connections. -EG 925 926 Tue 20 Apr 2021 17:11:00 MSK 927 Disabled NLS by default in configure. -EG 928 929 Mon 19 Apr 2021 18:58:00 MSK 930 Fixed testzzuf/test_put_chanked to correctly use MHD. 931 Added internal error code for TLS errors. 932 Added all missing messages to the .pot file. 933 Detect more types of errors for receiving data and report 934 error description in the MHD log. 935 Added support for ALPN on TLS connections if supported by 936 used TLS library. -EG 937 938 Sun 18 Apr 2021 20:47:00 MSK 939 Removed dead code. 940 Limited iov-backed responses size to SSIZE_MAX as limited by 941 system calls. 942 Report error message in MHD log for send errors. -EG 943 944 Sat 17 Apr 2021 18:50:00 MSK 945 Unified upgrade test behavior for all platforms. 946 Some code simplification and unification. 947 Compiler warning (false positive) fixed. -EG 948 949 Fri 16 Apr 2021 17:58:00 MSK 950 Used run-time value if IOV_MAX if available. 951 Fixed portability of error handling for sending functions. 952 Detect pipes/unix sockets on fly and do not use TCP/IP specific 953 functions with them. 954 Fixed support of UNIX sockets on non-Linux kernels. -EG 955 956 Fri 16 Apr 2021 10:23:39 AM CEST 957 Detect if a socket is a UNIX domain socket and do not try to play 958 with TCP corking options in this case (avoids useless failed 959 syscalls). -CG 960 961 Thu 15 Apr 2021 18:56:00 MSK 962 Fixed configure '--enable-sanitizer' parameter. 963 Stopped pushing of partial responses when limited by system maximum size 964 for sendmsg(). -EG 965 966 Web 14 Apr 2021 22:20:00 MSK 967 Fixed: use sendmsg() in POSIX-compatible way, do not try to send more 968 than IOV_MAX elements per single call. -EG 969 970 Sun 11 Apr 2021 15:44:00 MSK 971 Updated test TLS certificates to not expired modern versions, restored 972 HTTPS examples compatibility with modern browsers. 973 TCP_NODELAY is not pre-enabled for HTTPS connection as it actually 974 does not speed-up TLS handshakes on moders OSes. -EG 975 976 Thu 01 Apr 2021 21:29:46 MSK 977 Fixed MD5 digest authorization broken when compiled without variable 978 length arrays support (notably with MSVC). 979 Fixed and muted compiler warning. 980 Deeper test with zzuf if configured with --enable-heavy-tests. 981 Removed run-check of assert() in configure to avoid core dumps. -EG 982 983 Thu 01 Apr 2021 17:46:00 MSK 984 Added new function MHD_run_wait() useful for single-threaded applications 985 without other network activity. 986 Added tests for the new function. -EG 987 988 Wed 17 Mar 2021 20:53:33 MSK 989 Re-factored startup log parameters processing. Warn user if wrong logger 990 could be used potentially. 991 Added headers doxy with information about minimal MHD version when 992 particular symbols were introduced. 993 Added new daemon option to indicate SIGPIPE handling by application for 994 daemons being run in application thread. -EG 995 996 Wed 24 Feb 2021 19:23:00 MSK 997 SIGPIPE-related macro minor refactoring for readability. 998 Added new response iov function (and related framework), based on the patch 999 provided by Lawrence Sebald and Damon N. Earp from NASA. -EG 1000 1001 Thu 04 Feb 2021 06:41:34 PM CET 1002 Fix PostProcessor to always properly stop iteration when application callback 1003 tells it to do so. -CG 1004 1005 Sun 24 Jan 2021 21:30:00 MSK 1006 Added '--enable-heavy-tests' configure parameter. 1007 Minor configure.ac and Makefiles fixes. -EG 1008 1009 Tue 19 Jan 2021 17:59:00 MSK 1010 Fixed compatibility with autoconf. 2.70 1011 Updated M4 macros. -EG 1012 1013 Wed 06 Jan 2021 08:39:58 PM CET 1014 Return timeout of zero also for connections awaiting cleanup. -CG 1015 1016 Tue 29 Dec 2020 15:39:00 MSK 1017 Improved speed of TLS handshake by pre-enabling TCP_NODELAY. -EG 1018 1019 Mon 28 Dec 2020 21:36:00 MSK 1020 Releasing libmicrohttpd 0.9.72. -EG 1021 1022 Mon 28 Dec 2020 09:37:00 MSK 1023 Completely reworked and rewritten TCP_CORK, TCP_NOPUSH, TCP_NODELAY and 1024 MSG_MORE handling. Reduced number of sys-calls, fixed portability for 1025 FreeBSD, OpenBSD, NetBSD, Darwin, W32, Solaris. 1026 Removed usage of gnutls_record_cork() as it fully blocks stream until 1027 final block is ready. 1028 Fixed compatibility with C90 compilers. 1029 Really started using sendmsg() for header + body combined single-call 1030 response sending. 1031 Fixed sending of response body by sendmsg() when it shouldn't be sent, 1032 like responses for HEAD requests. 1033 Improved error handling for gnutls_record_send(). 1034 Updated W32 resources for .DLLs. 1035 Fixed building with various disabled features (like messages, HTTPS, 1036 http-upgrade, authorization etc.) 1037 Fixed possible SIGPIPE generation when sendfile() is used (it was always 1038 possible on Linux that sendfile() produce SIGPIPE, now it's fixed). 1039 Several compiler warnings muted and/or fixed in the lib code and in 1040 the examples. -EG 1041 1042 Sun 01 Nov 2020 17:17:00 MSK 1043 Fixed conflict with system CPU_COUNT macro. 1044 Minor improvements of error reporting in MHD daemon. 1045 Fixed FTBFS with GnuTLS versions before 3.1.9 1046 Fixed test_add_conn for multi-CPU machines. 1047 Fixed analyzer warnings. 1048 Fixed use-after-free and resources leaks for upgraded connections 1049 in TLS mode with thread-per-connection. -EG 1050 1051 Sun 25 Oct 2020 19:31:00 MSK 1052 Fixed epoll mode without listening socket. 1053 Minor improvements of thread sync. 1054 Fixed broken sendfile on FreeBSD. 1055 Fixed broken MHD with thread-pool and without listening socket. 1056 Added four tests for MHD_add_connection(). 1057 Fixed several resources leaks in error handlers. 1058 Re-implemented scheme of handling of externally added connections, 1059 fixed thread-safety. -EG 1060 1061 Wed 21 Oct 2020 10:00:58 AM CEST 1062 Corking should be OFF when sending the footer (#6610). -AP/CG 1063 1064 Wed 07 Oct 2020 11:07:00 MSK 1065 W32 default target version changed to Vista, XP is still supported. 1066 Minor fixes and additional asserts for memorypool. 1067 IPv6 tests are not used if IPv6 is disabled at run-time. -EG 1068 1069 Sun 27 Sep 2020 10:08:03 PM CEST 1070 Fixed incorrect triggering of epoll edge polling for 1071 "upgraded" TLS connections. Fixed a few cases where 1072 gnutls_record_uncork() return value was still ignored, 1073 possibly causing buffer to not be flushed correctly. -CG 1074 1075 Sat 26 Sep 2020 08:18:02 PM CEST 1076 Make MHD_USE_NO_LISTEN_SOCKET work in conjunction with 1077 MHD internal threads. -CG/DE 1078 1079 Thu 24 Sep 2020 16:55:00 MSK 1080 Fixed compiler warnings on W32. 1081 Minor optimisation of MHD_YES/MHD_NO internal usage. 1082 Refactor and cleanup of internal debugging macros. 1083 Updated HTTP status codes, header names and methods from 1084 the registries. 1085 Fixed portability of test_upgrade_large. 1086 Minor testsuite fixes. 1087 Restored parallel build of libmicrohttpd (except tests). -EG 1088 1089 Fri 11 Sep 2020 10:08:22 PM CEST 1090 Fix crash problem in PostProcessor reported by MD. -CG 1091 Fix GnuTLS configure test to check for gnutls_record_uncork. -CG 1092 1093 Wed 19 Aug 2020 09:40:39 AM CEST 1094 Add logic to check on MHD_pool_reallocate() failure reported on the 1095 mailinglist (will NOT yet fix the issue). -CG 1096 1097 Sun 26 Jul 2020 01:56:54 PM CEST 1098 Add MHD_create_response_from_pipe() to allow creating a response based 1099 on data read from a pipe. -CG 1100 1101 Fri Jul 10 15:04:51 CEST 2020 1102 Fixed Postprocessor URL-encoded parsing if '%' fell on boundary. -CG/MD 1103 1104 Thu 02 Jul 2020 09:56:23 PM CEST 1105 Fixed return type of MHD_queue_basic_auth_fail_response. -CA/CG 1106 1107 Sun 28 Jun 2020 09:36:01 PM CEST 1108 Fix buffer overflow issue in URL parser. 1109 Releasing libmicrohttpd 0.9.71. -CG 1110 1111 Tue 16 Jun 2020 08:44:22 PM CEST 1112 Add logic to try again if GNUtls uncork() fails. -CG 1113 1114 Wed 10 Jun 2020 09:44:29 PM CEST 1115 Fixed PostProcessor bug discovered by MD, which given certain parser 1116 boundaries caused the returned values to be wrong. -CG/MD 1117 1118 Wed 08 Apr 2020 10:53:01 PM CEST 1119 Introduce `enum MHD_Result` for #MHD_YES/#MHD_NO to avoid using 'int' so much. 1120 Note that this change WILL cause compiler warnings until (most) MHD callbacks 1121 in application code change their return type from 'int' to 'enum MHD_Result'. 1122 That said, avoiding possible confusions of different enums is going to make 1123 the code more robust in the future. For conditional compilation, test 1124 for "MHD_VERSION >= 0x00097002". -CG 1125 1126 Tue 07 Apr 2020 02:58:39 PM BRT 1127 Fixed #5501 (Added example for how to provide a tiny threaded websocket server). -SC 1128 1129 Tue 31 Mar 2020 02:36:40 PM BRT 1130 Fixed #6142 (applied several spelling fixes). -DKG/-SC 1131 1132 Sat 07 Mar 2020 05:20:33 PM CET 1133 Fixed #6090 (misc. severe socket handling bugs on OS X). -CG 1134 1135 Sat 08 Feb 2020 09:12:54 PM CET 1136 Fixed 100-continue handling for PATCH method (#6068). 1137 Fixed FTBFS from wrong #endif position for certain builds (#6025). 1138 Fixed connection overflow issue when combining MHD_USE_NO_LISTEN_SOCKET 1139 with MHD_USE_THREAD_PER_CONNECTION (#6036). 1140 Updated m4 script to fix FTBFS when using -Werror=unused-but-set-parameter (#6078). 1141 Releasing libmicrohttpd 0.9.70. -CG 1142 1143 Thu Dec 26 14:43:27 CET 2019 1144 Adding fix for urlencoding of keys without values in 1145 post-processor logic. -CG 1146 1147 Tue 24 Dec 2019 03:32:18 PM CET 1148 Adding patch from Ethan Tuttle with test case for urlencoding 1149 in post-processor for keys without values. -CG/ET 1150 1151 Sun 15 Dec 2019 02:12:02 PM CET 1152 Fix send() call (affects Mac OS X). #5977 -CG/fbrault 1153 Releasing libmicrohttpd 0.9.69. -CG 1154 1155 Fri 29 Nov 2019 11:22:25 PM CET 1156 If application suspends a connection before we could send 100 CONTINUE, 1157 give application another shot at queuing a reply before the upload begins. -CG 1158 1159 Sat 26 Oct 2019 06:53:05 PM CEST 1160 Fix regression where MHD would fail to return an empty response 1161 when used with HTTPS. 1162 Releasing libmicrohttpd 0.9.68. -CG/TR 1163 1164 Fri 25 Oct 2019 02:31:59 PM CEST 1165 Introduce MHD_RF_INSANITY_HEADER_CONTENT_LENGTH. -CG 1166 1167 Thu 17 Oct 2019 04:50:52 PM CEST 1168 Integrate 0-byte send() method for uncorking for old FreeBSD/OS X 1169 systems into new mhd_send.c logic for uncorking. 1170 Releasing libmicrohttpd 0.9.67. -CG 1171 1172 Fri 18 Aug 2019 00:00:00 PM UTC 1173 Fixes and optimizations for the setsockopt handling: 1174 * Added: MHD_UPGRADE_ACTION_CORK_ON and MHD_UPGRADE_ACTION_CORK_OFF 1175 to enum MHD_UpgradeAction (turn corking on/off on the underlying 1176 socket). 1177 * Use calls and flags native to the system for corking and 1178 other operations, tested with performance improvements on 1179 FreeBSD, Debian Linux, NetBSD, and cygwin. In particular, 1180 this adds selective usage of MSG_MORE, NODELAY, TCP_NOPUSH, 1181 TCP_CORK. -ng0 1182 1183 Fri 09 Aug 2019 10:07:27 AM CEST 1184 Copy compiler and linker hardening flags from GNUnet (updating 1185 configure.ac). -CG 1186 1187 Thu 01 Aug 2019 01:23:36 PM CEST 1188 Releasing libmicrohttpd 0.9.66. -CG 1189 1190 Thu 01 Aug 2019 12:53:49 AM CEST 1191 Fix issue with discarding unhandled upload data discovered 1192 by Florian Dold. -CG 1193 1194 Mon 29 Jul 2019 08:01:50 PM CEST 1195 Fix hanging situation with large transmission over upgraded 1196 (i.e. Web socket) connection with epoll() and HTTPS enabled 1197 (as reported by Viet on the mailinglist). -CG 1198 1199 Thu 25 Jul 2019 02:40:12 PM CEST 1200 Fixing regression introduced in cc5032b85 (bit mask matching 1201 of the header kinds in MHD_lookup_connection_value()), as 1202 reported by Jose Bollo on the mailinglist. -CG/JB 1203 1204 Tue Jul 16 19:56:14 CEST 2019 1205 Add MHD_OPTION_HTTPS_CERT_CALLBACK2 to allow OCSP stapling 1206 and MHD_FEATURE_HTTPS_CERT_CALLBACK2 to check for. -TR 1207 1208 Fri Jul 05 2019 22:30:40 MSK 1209 Releasing libmicrohttpd 0.9.65. -EG 1210 1211 Sun Jun 23 2019 21:27:43 MSK 1212 Many fixes and improvements for connection-specific memory pool: 1213 * Added asserts; 1214 * Added testing of reallocation; 1215 * Reallocation code rewritten to avoid extra allocation, when 1216 possible to reuse already allocated memory; 1217 * Large memory pools aligned to system page size; 1218 * Large memory pools on W32 are cleared more securely after use, 1219 optimised usage of system memory. 1220 Better handled connection's memory shortage situations: 1221 * error response could be sent to client even if all buffer space 1222 was used; 1223 * if buffer space become low when receiving, do not allocate last 1224 buffer space and use small receive blocks instead. 1225 Improved sending speed by using all available buffer space for 1226 sending. -EG 1227 1228 Sun Jun 09 2019 20:27:04 MSK 1229 Releasing libmicrohttpd 0.9.64. -EG 1230 1231 Sun Jun 09 2019 20:03:16 MSK 1232 Updated HTTP headers, methods and status codes from registries, 1233 Added scripts to import new headers, methods and status codes from 1234 registries, 1235 Minor doxyget comment fix, 1236 Added missing MSVS project files to tarball. 1237 Reodered includes in microhttpd.h -EG 1238 1239 Mon 03 Jun 2019 11:45:52 PM CEST 1240 Apply MHD_-prefix to hash functions, even if they are not in the 1241 officially exported API. -CG/DB 1242 1243 Sun Jun 02 01:52:11 MSK 2019 1244 Support usage of SOCK_NOSIGPIPE on Solaris 11.4 and NetBSD 7+, 1245 finally avoid SIGPIPE on Solaris. -EG 1246 1247 Sat Jun 01 22:51:50 MSK 2019 1248 Do not report errors if AF_UNIX socket is used on *BSD. -EG 1249 1250 Thu May 30 23:32:09 MSK 2019 1251 Improved detection of 'getsockname()' in configure. 1252 Avoided using 'getsockname()' in code if not detected. -EG 1253 1254 Sun May 26 23:32:49 MSK 2019 1255 Fixed some tests on W32. -EG 1256 1257 Sun May 26 23:05:42 MSK 2019 1258 Better detection of sockaddr member in configure, fixed build on *BSD, 1259 Fixed compiler warnings, 1260 Updated and fixed libcurl tests. -EG 1261 1262 Tue May 21 22:12:43 MSK 2019 1263 Fixed doxygen comments, 1264 Avoid dropping 'const' qualifier in macros, 1265 Fixed some compiler warnings, 1266 Properly support automatic port detections on some platforms, 1267 Added checks for too long TLS parameters strings. -EG 1268 1269 Tue May 21 17:52:48 MSK 2019 1270 Spelling fixes. -EG 1271 1272 Mon May 20 15:39:35 MSK 2019 1273 Compiler warning fixes. -EG/CG 1274 Fixed example for non-64bits platforms. -EG 1275 1276 Wed May 15 23:51:49 MSK 2019 1277 Optimized and improved processing speed by using precalculated and 1278 already calculated lengths of strings. -EG 1279 1280 Wed May 15 14:54:00 MSK 2019 1281 Fixed build from source on GNU Hurd. -EG 1282 1283 Mon May 6 11:58:00 MSK 2019 1284 Updated README and COPYING files. MHD remains LGPLv2.1-licensed. -EG 1285 1286 Fri May 3 20:08:00 MSK 2019 1287 Store connection's keys and values with sizes; 1288 Speedup keys search be comparing key length first; 1289 Added functions for working with keys and values with binary zeros; 1290 Fixed test_postprocessor_amp to fail on problems. -EG 1291 1292 Wed May 1 16:40:00 MSK 2019 1293 Reverted change of MHD_KeyValueIterator, implemented MHD_KeyValueIteratorN 1294 with sizes for connection's key and value to get keys and values 1295 with binary zeros. -EG 1296 1297 Mon 29 Apr 2019 01:26:39 AM BRT 1298 Fixed signed/unsigned comparison in example http_chunked_compression.c. -SC/TR 1299 1300 Sun Apr 21 16:40:00 MSK 2019 1301 Improved compatibility with MSVC compilers; 1302 Fixed MHD compilation by Clang/LLVM in VS; 1303 Used MSVC intrinsics for bit rotations and bytes swap; 1304 Added project files for VS2019. -EG 1305 1306 Fri Apr 19 23:00:00 MSK 2019 1307 Rewritten SHA-256 calculations from scratch to avoid changing LGPL version; 1308 Added usage of GCC/Clang built-ins for bytes swap to significantly improve 1309 speed of MD5 and SHA-256 calculation on platforms with known endianness. 1310 Added test for SHA-256 calculations. -EG 1311 1312 Wed Apr 17 20:52:00 MSK 2019 1313 Refactoring of mhd5.c: optimized, dead code removed; 1314 Faster MD5 calculation on little endian platforms; 1315 Bit manipulations moved to separate header file. 1316 Added tests for MD5 calculations. -EG 1317 1318 Mon 15 Apr 2019 05:33:52 PM CEST 1319 Add MHD_USE_POST_HANDSHAKE_AUTH_SUPPORT and 1320 MHD_USE_INSECURE_TLS_EARLY_DATA flags. -CG 1321 1322 Thu Apr 11 11:37:00 MSK 2019 1323 Fixed MSVC 'Release' builds; 1324 Fixed usage of MSVC's assert. -EG 1325 1326 Wed Apr 10 14:31:00 MSK 2019 1327 Improved shell compatibility for 'bootstrap', removed bash-ism. 1328 Added wrapper script 'autogen.sh'. -EG 1329 1330 Mon 08 Apr 2019 03:06:05 PM CEST 1331 Fix close() checks as suggested by MK on the mailinglist 1332 (#3926). -MK/CG 1333 1334 Wed 20 Mar 2019 10:20:24 AM CET 1335 Adding additional "value_length" argument to MHD_KeyValueIterator 1336 callback to support binary zeros in values. This is done in a 1337 backwards-compatible way, but may require adding a cast to existing 1338 code to avoid a compiler warning. -CG 1339 1340 Sun Feb 10 21:00:37 BRT 2019 1341 Added example for how to compress a chunked HTTP response. -SC 1342 1343 Sun 10 Feb 2019 05:03:44 PM CET 1344 Releasing libmicrohttpd 0.9.63. -CG 1345 1346 Sat 09 Feb 2019 01:51:02 PM CET 1347 Extended test_get to test URI logging and query string parsing 1348 to avoid regression fixed in previous patch in the future. -CG 1349 1350 Thu Feb 7 16:16:12 CET 2019 1351 Preliminary patch for the raw query string issue, to be tested. -CG 1352 1353 Tue Jan 8 02:57:21 BRT 2019 1354 Added minimal example for how to compress HTTP response. -SC 1355 1356 Wed Dec 19 00:06:03 CET 2018 1357 Check for GNUTLS_E_AGAIN instead of GNUTLS_E_INTERRUPTED when 1358 giving up on a TLS connection. -LM/CG 1359 1360 Thu Dec 13 22:48:14 CET 2018 1361 Fix connection timeout logic if in thread-per-connection mode the 1362 working thread takes longer than the timeout to queue the response. -CG 1363 1364 Tue Dec 11 09:58:32 CET 2018 1365 Add logic to avoid VLA arrays with compilers that do not support them. -CG 1366 1367 Sat Dec 8 23:15:53 CET 2018 1368 Fixed missing WSA_FLAG_OVERLAPPED which can cause W32 to block on 1369 socket races when using threadpool. (See very detailed description 1370 of the issue in the libmicrohttpd mailinglist post of today.) -JM 1371 1372 Sat Dec 8 22:53:56 CET 2018 1373 Added test for RFC 7616 and documented new API. 1374 Releasing libmicrohttpd 0.9.62. -CG 1375 1376 Sat Dec 8 17:34:58 CET 2018 1377 Adding support for RFC 7616, experimental, needs 1378 testing and documentation still! -CG 1379 1380 Fri Dec 7 12:37:17 CET 2018 1381 Add option to build MHD without any threads 1382 and MHD_FEATURE_THREADS to test for it. -CG 1383 1384 Thu Dec 6 13:25:08 BRT 2018 1385 Renamed all occurrences from _model(s)_ to _mode(s)_. -SC 1386 1387 Thu Dec 6 12:50:11 BRT 2018 1388 Optimized the function MHD_create_response_from_callback() for 1389 Windows by increasing its internal buffer size and allowed to customize 1390 it via macro MHD_FD_BLOCK_SIZE. -SC 1391 1392 Thu Dec 6 02:11:15 BRT 2018 1393 Referenced the gnutls_load_file() function in the HTTPs examples. -SC 1394 1395 Wed Dec 5 18:08:59 CET 2018 1396 Fix regression causing URLs to be unescaped twice. -CG 1397 1398 Sun Nov 18 13:08:11 CET 2018 1399 Parse arguments with (properly) escaped URLs correctly. 1400 (making things work with recent cURL changes, #5473). 1401 Replace sprintf with snprintf in testcases. 1402 Releasing libmicrohttpd 0.9.61. -CG 1403 1404 Wed Nov 14 14:01:21 CET 2018 1405 Fix build issue with GnuTLS < 3.0. -CG 1406 1407 Mon Nov 12 19:50:43 CET 2018 1408 Fix #5473 (test case failure due to change in libcurl). -eworm 1409 1410 Thu Nov 8 14:53:27 CET 2018 1411 Add MHD_create_response_from_buffer_with_free_callback. -CG 1412 1413 Tue Nov 6 19:43:47 CET 2018 1414 Upgrading to gettext 0.19.8. 1415 Releasing libmicrohttpd 0.9.60. -CG 1416 1417 Thu Nov 1 16:29:59 CET 2018 1418 Enable using epoll() without listen socket. -JB 1419 1420 Sat Oct 20 12:44:16 CEST 2018 1421 In thread-per-connection mode, signal main thread for 1422 thread termination for instant clean-up and application 1423 notification about closed connections. -CG 1424 1425 Tue Oct 16 20:43:41 CEST 2018 1426 Add MHD_RF_HTTP_VERSION_1_0_RESPONSE option to make MHD 1427 act more like an HTTP/1.0 server. -GH 1428 1429 Fri Oct 5 18:44:45 CEST 2018 1430 MHD_add_response_header() now prevents applications from 1431 setting a "Transfer-Encoding" header to values other than 1432 "identity" or "chunked" as other transfer encodings are 1433 not supported by MHD. (Note that usually MHD will pick the 1434 transfer encoding correctly automatically, but applications 1435 can use the header to force a particular behavior.) 1436 Fixing #5411 (never set Content-length if Transfer-Encoding 1437 is given). -CG 1438 1439 Sat Jul 14 11:42:15 CEST 2018 1440 Add MHD_OPTION_GNUTLS_PSK_CRED_HANDLER to allow use of PSK with 1441 TLS connections. -CG/TM 1442 1443 Sat Jul 14 11:03:37 CEST 2018 1444 Integrate patch for checking digest authentication based on 1445 a digest, allowing servers to store passwords only hashed. 1446 Adding new function MHD_digest_auth_check_digest(). -CG/DB 1447 1448 Sat Mar 10 12:15:35 CET 2018 1449 Upgrade to gettext-0.19.8.1. Switching to more canonical 1450 gettext integration. -CG 1451 1452 Fri Mar 2 21:44:24 CET 2018 1453 Ensure MHD_RequestCompletedCallback is always called from 1454 the correct thread (even on shutdown and for upgraded connections). -CG 1455 1456 Tue Feb 27 23:27:02 CET 2018 1457 Ensure MHD_RequestCompletedCallback is also called for 1458 upgraded connections. -CG 1459 1460 Fri Feb 16 03:09:33 CET 2018 1461 Fixing #5278 as suggested by reporter. -CG/texec 1462 1463 Thu Feb 1 10:12:22 CET 2018 1464 Releasing GNU libicrohttpd 0.9.59. -CG 1465 1466 Thu Feb 1 08:39:50 CET 2018 1467 Fix masking operation. -CG/silvioprog 1468 1469 Mon Jan 29 17:33:54 CET 2018 1470 Fix deadlock when failing to prepare chunked response 1471 (#5260). -CG/ghaderer 1472 1473 Thu Jan 4 12:24:33 CET 2018 1474 Fix __clang_major__ related warnings for non-clang 1475 compilers reported by Tim on the mailinglist. -CG 1476 1477 Mon Dec 11 17:11:00 MSK 2017 1478 Fixed tests on platforms with huge number of CPUs. 1479 Doxygen configuration was updated. 1480 Various doxygen fixes. -EG 1481 1482 Mon Dec 07 21:08:00 MSK 2017 1483 Releasing GNU libmicrohttpd 0.9.58. -EG 1484 1485 Mon Dec 07 16:01:00 MSK 2017 1486 Fixed HTTPS tests on modern platforms. -EG 1487 1488 Mon Dec 04 15:43:00 MSK 2017 1489 Minor documentation installation fixes. -EG 1490 1491 Mon Nov 27 22:58:38 CET 2017 1492 Tolerate AF_UNIX when trying to determine our binding port 1493 from socket. Use `sockaddr_storage` instead of trying to 1494 guess the sockaddr type before calling getsockname(). -CG 1495 1496 Mon Nov 27 22:24:00 MSK 2017 1497 Releasing GNU libmicrohttpd 0.9.57. -EG 1498 1499 Mon Nov 27 21:36:00 MSK 2017 1500 Updated README. -EG 1501 1502 Mon Nov 27 18:37:00 MSK 2017 1503 Corrected names in W32 DLL resources. 1504 Reordered and clarified configure summary message. 1505 Additional compiler warning mutes for builds with various configure 1506 parameters. 1507 Fixed tests on Cygwin. 1508 Used larger SETSIZE for Cygwin (same value as for native W32). 1509 Minor fixes for Cygwin. 1510 Added configure parameter to force disable usage of sendfile(). 1511 Minor testsuite fixes. 1512 Really fixed builds with optimisation for size. -EG 1513 1514 Sat Nov 25 18:37:00 MSK 2017 1515 Fixed build with optimisation for size. -EG 1516 1517 Fri Nov 24 20:14:02 CET 2017 1518 Releasing GNU libmicrohttpd 0.9.56. -CG 1519 1520 Thu Nov 23 17:40:00 MSK 2017 1521 Added MHD_FEATURE_SENDFILE enum value and report. -EG 1522 1523 Thu Nov 23 08:56:00 MSK 2017 1524 Fixed receiving large requests in TLS mode with epoll. 1525 Improved GnuTLS and libgcrypt detection in configure, do not ignore 1526 flags in GNUTLS_{CFLAGS,LIBS} variables. 1527 Added special trick for Solaris/Openindiana to find GnuTLS-3 with 1528 right bitness. 1529 Added support for Solaris sendfile(3) function. 1530 Fixed dataraces with thread ID on W32 and pthread. Now check for 1531 correct thread in MHD_queue_response() works correctly. 1532 Fixed and silenced compiler warnings in tests and examples. 1533 Removed usage of TLS flags in examples where TLS is not required. 1534 Added support for MultiSSL in https tests with libcurl >= 7.56.0. 1535 Improved detection of OFF_T_MAX, SIZE_MAX. Added macros for 1536 SSIZE_MAX in mhd_limits.h. There are some platforms that really 1537 require those macros. 1538 Added support for Darwin's sendfile() function. 1539 Updated .gitignore files. 1540 Reworked mhd_sys_extentions.m4 with better support of modern 1541 platforms, more reliable detection of required macros, and 1542 detection of disabling of system-specific features by 1543 _XOPEN_SOURCE macro. -EG 1544 1545 Wed Nov 1 20:43:00 MSK 2017 1546 Mixed and muted many compiler warnings. Now GCC's flags 1547 -Wall -Wextra could be used for building. 1548 Fixed compilation of examples without libmagic. 1549 Better detection of libgnutls in configure. 1550 Reworked launch of nested configure in "po" directory to 1551 prevent useless reconfiguration. 1552 Fixed some wrong asserts. 1553 Enabled "test_options" test. 1554 Use "test_start_stop" without libcurl. 1555 Use chunks with sendfile() to prevent locking thread for 1556 single connection with large file. 1557 Added support for FreeBSD's sendfile with additional 1558 optimisations for FreeBSD 11. 1559 Refactoring and improvements for MHD_start_daemon_va() and 1560 MHD_stop_daemon(). 1561 Fixed testing with GnuTLS >= 3.6.0. -EG 1562 1563 Mon Oct 9 22:38:07 CEST 2017 1564 Add MHD_free() to allow proper free()-ing of username/password 1565 data returned via MHD_digest_auth_get_username() or 1566 MHD_basic_auth_get_username_password() on Windows. -CG 1567 1568 Tue Sep 26 14:00:58 CEST 2017 1569 Fixing race involving setting "at_limit" flag. -CG 1570 1571 Tue Sep 08 21:39:00 MSK 2017 1572 Fixed build of examples when MHD build with non-pthread lib. 1573 MHD_queue_response(): added check for using in correct thread. 1574 Fixed sending responses larger 16 KiB in TLS mode with epoll. 1575 Improved doxy for MHD_get_timeout() and related functions. 1576 Minor internal refactoring. -EG 1577 1578 Tue Jul 23 11:32:00 MSK 2017 1579 Updated chunked_example.c to provide real illustration of usage of 1580 chunked encoding. -EG 1581 1582 Thu Jul 13 21:41:00 MSK 2017 1583 Restored SIGPIPE suppression in TLS mode. 1584 Added new value MHD_FEATURE_AUTOSUPPRESS_SIGPIPE so application could 1585 check whether SIGPIPE handling is required. 1586 Used GNUTLS_NONBLOCK for TLS sessions. -EG 1587 1588 Tue Jun 20 23:52:00 MSK 2017 1589 Libgcrypt is now optional and required only for old GnuTLS versions. -EG 1590 1591 Wed Jun 14 21:42:00 MSK 2017 1592 Added support for debug assert() and new configure parameter 1593 --enable-asserts for debug builds. 1594 Removed non-functional Symbian support. -EG 1595 1596 Mon Jun 05 23:34:00 MSK 2017 1597 More internal refactoring: 1598 merged MHD_tls_connection_handle_read/write() with non-TLS version, 1599 reduced and unified number of layers for network processing (before 1600 refactoring MHD_tls_connection_handle_read->MHD_connection_handle_read-> 1601 do_read->recv_tls_adapter->GnuTLS->recv_param_adapter - 5 MHD layers; 1602 after refactoring MHD_connection_handle_read->recv_tls_adapter->GnuTLS - 1603 2 MHD layers), 1604 simplified and removed dead code from 1605 MHD_connection_handle_read/write() without functional change. -EG 1606 1607 Mon Jun 05 22:20:00 MSK 2017 1608 Internal refactoring: 1609 used TCP sockets directly with GnuTLS (performance improvement), 1610 moved some connection-related code from daemon.c to 1611 connection.c/connection_https.c, 1612 removed hacks around sendfile() and implemented correct support of 1613 sendfile(), 1614 removed do_read() and do_write() to reduce number of layer around send() 1615 and recv() and to improve readability and maintainability of code, 1616 implemented separate tracking of TLS layer state, independent of HTTP 1617 connection stage. -EG 1618 1619 Sun Jun 04 15:02:00 MSK 2017 1620 Improved thread-safety of MHD_add_connection() and 1621 internal_add_connection(), minor optimisations. -EG 1622 1623 Sun May 28 23:26:00 MSK 2017 1624 Releasing GNU libmicrohttpd 0.9.55. -EG 1625 1626 Sun May 21 18:48:00 MSK 2017 1627 Fixed build with disabled "UPGRADE". 1628 Fixed possible null-dereference in HTTPS test. 1629 Fixed compiler warning in process_request_body(), minor optimizations. 1630 Do not allow suspend of "upgraded" connections. 1631 Fixed returned value for MHD_CONNECTION_INFO_CONNECTION_SUSPENDED. 1632 Fixed removal from timeout lists of non-existing connections in 1633 cleanup_connection(). 1634 Fixed double locking of mutex. -EG 1635 1636 Sun May 14 15:05:00 MSK 2017 1637 Fixed resuming connections and closing upgraded connections in select() 1638 mode with thread-per-connection. -EG 1639 1640 Sun May 14 14:49:00 MSK 2017 1641 Removed extra call to resume connections in MHD_run(). 1642 Handle resumed connection without delay in epoll mode. 1643 Update states of resumed connection after resume in thread-per-connection 1644 mode. 1645 Fixed resuming connections and closing upgraded connections in poll() 1646 mode with thread-per-connection. -EG 1647 1648 Thu May 11 22:37:00 MSK 2017 1649 Faster start really processing data in resumed connections. -EG 1650 1651 Thu May 11 14:24:00 MSK 2017 1652 Do not add any "Connection" headers for "upgrade" connections. -EG 1653 1654 Wed May 10 23:09:00 MSK 2017 1655 Resume resuming connection before other processing in external polling 1656 mode. -EG 1657 1658 Tue May 9 23:16:00 MSK 2017 1659 Fixed: Do not add "Connection: Keep-Alive" header for "upgrade" 1660 connections. -EG 1661 1662 Tue May 9 21:01:00 MSK 2017 1663 Fixed: check all "Connection" headers of request for "Close" and "Upgrade" 1664 tokens instead of using only first "Connection" header with full string 1665 match. -EG 1666 1667 Tue May 9 12:28:00 MSK 2017 1668 Revert: continue match footers in MHD_get_response_header() for backward 1669 compatibility. -EG 1670 1671 Mon May 8 19:30:00 MSK 2017 1672 Fixed: use case-insensitive matching for header name in 1673 MHD_get_response_header(), match only headers (not footers). -EG 1674 1675 Fri May 5 20:57:00 MSK 2017 1676 Fixed null dereference when connection has "Upgrade" request and 1677 connection is not upgraded. -JB/EG 1678 Better handle Keep-Alive/Close. -EG 1679 1680 Tue May 2 18:37:53 CEST 2017 1681 Update manual. -CG 1682 Add MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE. 1683 Releasing GNU libmicrohttpd 0.9.54. -CG 1684 1685 Thu Apr 27 22:31:00 CEST 2017 1686 Replaced flags MHD_USE_PEDANTIC_CHECKS and MHD_USE_PERMISSIVE_CHECKS by 1687 single option MHD_OPTION_STRICT_FOR_CLIENT. Flag MHD_USE_PEDANTIC_CHECKS 1688 is still supported. -EG 1689 1690 Tue Apr 26 15:11:00 CEST 2017 1691 Fixed shift in HTTP reasons strings. 1692 Added test for HTTP reasons strings. -EG 1693 1694 Tue Apr 25 19:11:00 CEST 2017 1695 Allow flag MHD_USE_POLL with MHD_USE_THREAD_PER_CONNECTION and without 1696 flag MHD_USE_INTERNAL_POLLING_THREAD for backward compatibility. -EG 1697 1698 Mon Apr 24 17:29:45 CEST 2017 1699 Enforce RFC 7230's rule on no whitespace by default, 1700 introduce new MHD_USE_PERMISSIVE_CHECKS to disable. -CG 1701 1702 Sun Apr 23 20:05:44 CEST 2017 1703 Enforce RFC 7230's rule on no whitespace in HTTP header 1704 field names if MHD_USE_PEDANTIC_CHECKS is set. -CG 1705 1706 Sun Apr 23 19:20:33 CEST 2017 1707 Replace remaining occurrences of sprintf() with 1708 MHD_snprintf_(). Thanks to Ram for pointing this out. -CG 1709 1710 Sat Apr 22 20:39:00 MSK 2017 1711 Fixed builds in Linux without epoll. 1712 Check for invalid --with-thread= configure parameters. 1713 Fixed support for old libgcrypt on W32 with W32 threads. -EG 1714 1715 Tue Apr 11 22:17:00 MSK 2017 1716 Releasing GNU libmicrohttpd 0.9.53. -EG 1717 1718 Mon Apr 10 19:50:20 MSK 2017 1719 HTTPS tests: skip tests instead of failing if HTTPS is not supported by 1720 libcurl. 1721 HTTPS tests: fixed return values so testsuite is able to correctly 1722 interpret it. 1723 Fixed ignored result of epoll test in test_https_get_select. -EG 1724 1725 Thu Apr 06 23:02:07 MSK 2017 1726 Make zzuf tests compatible with *BSD platforms. -EG 1727 1728 Thu Apr 06 22:14:22 MSK 2017 1729 Added warning for hypothetical extra large timeout. 1730 Fixed incorrect timeout calculation under extra rare conditions. 1731 Fixed accidental usage of IPv6 in testsuite in specific conditions. -EG 1732 1733 Wed Apr 05 14:14:22 MSK 2017 1734 Updated autoinit_funcs.h to latest upstream version with proper support of 1735 Oracle/Sun compiler. -EG 1736 1737 Wed Apr 05 12:53:26 MSK 2017 1738 Fixed some compiler warnings. 1739 Fixed error snprintf() errors detection in digestauth.c. 1740 Converted many run-time 'strlen()' to compile-time calculations. -EG 1741 1742 Sun Mar 26 13:49:01 MSK 2017 1743 Internal refactoring for simplification and unification. 1744 Minor optimizations and minor fixes. 1745 MHD_USE_ITC used again in thread pool mode. -EG 1746 1747 Sat Mar 25 20:58:24 CET 2017 1748 Remove dead MHD_strx_to_sizet-functions and associated 1749 test cases from code. -CG 1750 1751 Sat Mar 25 20:40:10 CET 2017 1752 Allow chunk size > 16 MB (up to 2^64-1). Ignore 1753 chunk extensions instead of triggering an error. 1754 (fixes #4967). -CG 1755 1756 Tue Mar 25 20:59:18 MSK 2017 1757 Check for invalid combinations of flags and options in 1758 MHD_start_daemon(). -EG 1759 1760 Tue Mar 21 13:51:04 CET 2017 1761 Use "-lrt" to link libmicrohttpd if we are using 1762 clock_gettime() as needed by glibc < 2.17. -CG 1763 1764 Tue Mar 21 13:42:07 CET 2017 1765 Allow chaining of suspend-resume calls withuot 1766 the application processing data from the network. -CG 1767 1768 Mon Mar 20 0:51:24 MSK 2017 1769 Added autoconf module for detection whatever shutdown of listening socket 1770 trigger select. This is only reliable method to use such feature as some 1771 platforms change behaviour from version to version. -EG 1772 1773 Sun Mar 19 13:57:30 MSK 2017 1774 Rewritten logic of handling "upgraded" TLS connections in epoll mode: 1775 used edge trigger instead of level trigger, 1776 upgraded "ready" connection are stored in DL-list, 1777 fixed handling of more than 128 ready connections, 1778 fixed busy-waiting for idle "upgraded" TLS connections. -EG 1779 1780 Fri Mar 17 10:45:31 MSK 2017 1781 If read buffer is full, MHD need to receive remote data and application 1782 suspended connection, do not fail while connection is suspended and give 1783 application one more chance to read data from buffer once connection is 1784 resumed. -EG 1785 1786 Thu Mar 16 23:45:29 MSK 2017 1787 Allow again to run MHD in external epoll mode by 1788 MHD_run_from_select() - this allow unification of user code 1789 and produce no harm for performance. Especially useful with 1790 MHD_USE_AUTO flag. -EG 1791 1792 Thu Mar 16 23:12:07 MSK 2017 1793 Idle connection should be disconnected *after* "timeout" number of 1794 second, not *before* this number. -EG/VT 1795 1796 Thu Mar 16 22:31:54 MSK 2017 1797 Unified update of last activity on connections. 1798 Update last activity only if something is really transmitted. 1799 Update last activity each time when something is transmitted. 1800 Removed early duplicated check for timeout on HTTPS connections. 1801 Removed update of last active time for connections without timeout. 1802 Fixed reset of timeout timer on resumed connections. 1803 Fixed never-expired timeouts on HTTPS connections. 1804 Fixed thread-safety of MHD_set_connection_option(). -EG 1805 1806 Thu Mar 16 21:05:08 MSK 2017 1807 Fixed minor bug resulted in slight slowdown of HTTPS connection 1808 handshake. -EG 1809 1810 Thu Mar 16 20:35:59 MSK 2017 1811 Improved thread-safety for DL-lists. -EG 1812 1813 Thu Mar 16 17:55:01 MSK 2017 1814 Fixed thread-safety of MHD_get_daemon_info() for 1815 MHD_DAEMON_INFO_CURRENT_CONNECTIONS. -EG 1816 1817 Thu Mar 16 16:49:07 MSK 2017 1818 Added ability to get actual daemon flags via MHD_get_daemon_info(). 1819 Fixed test_upgrade to work in request mode. 1820 Fixed compiler warnings in test_upgrade. -EG 1821 1822 Wed Mar 15 23:29:59 MSK 2017 1823 Prevented socket read/write if connection is suspended. 1824 Added missing resets of 'connection->in_idle'. 1825 Reworked handling of suspended connection: ensure that 1826 connection is not disconnected by timeout, always 1827 updated read/write states right after suspending. -EG 1828 1829 Wed Mar 15 21:02:26 MSK 2017 1830 Added new enum value MHD_CONNECTION_INFO_CONNECTION_TIMEOUT 1831 to get connection timeout by MHD_get_connection_info(). -EG 1832 1833 Sat Mar 11 12:03:45 CET 2017 1834 Fix largepost example from tutorial to properly generate 1835 error pages. -CG 1836 Fix largepost example, must only queue replies either before upload 1837 happens or after upload is done, not while upload is ongoing 1838 1839 Fri Mar 10 16:37:12 CET 2017 1840 Fix hypothetical integer overflow for very, very large 1841 timeout values. -CG 1842 1843 Fri Mar 10 16:22:54 CET 2017 1844 Handle case that we do not listen at all more gracefully 1845 in MHD_start_daemon() and not pass '-1' to helper functions 1846 that expect a valid socket. -CG 1847 1848 Tue Mar 7 12:11:44 BRT 2017 1849 Updates file `.gitignore`. 1850 1851 Tue Mar 7 10:37:45 BRT 2017 1852 Updated the MHD_OPTION_URI_LOG_CALLBACK's documentation. 1853 1854 Mon Mar 6 21:46:59 BRT 2017 1855 Added the i18n example fixing #4924. -SC 1856 1857 Wed Mar 1 23:47:05 CET 2017 1858 Minor internal optimisations. 1859 Changed closure connection monitoring logic: now all connections are 1860 monitored for OOB data (which treated as error), connections are not 1861 monitored any more for incoming data if incoming data is not required for 1862 processing. except_fd_set is not optional now for MHD_get_fdset(), 1863 MHD_get_fdset2() and MHD_run_from_select(). 1864 Improved connection processing in epoll mode: now connection can process 1865 both read and write each turn. 1866 Updated HTTP response codes; updated and added all missing standard HTTP 1867 headers names (and headers categories); updated and added all missing 1868 standard and additional HTTP methods. Now MHD return status 1869 MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE (431) instead of old 1870 MHD_HTTP_REQUEST_ENTITY_TOO_LARGE (413) for very long header. 1871 Reworked handling of data pending in TLS buffers, resolved busy-waiting 1872 if incoming data is pending in TLS buffers and connection is in 1873 LOOP_INFO_WRITE mode. 1874 Do not clear 'ready' flag in epoll mode if send()/recv() result is 1875 EINTERRUPTED. 1876 Better detection of unready connection state: used less number of calls of 1877 recv()/send() in epoll mode. 1878 Configure: do not run gcrypt and GnuTLS tests if HTTPS is disabled by 1879 configure parameter. 1880 Fixed wrong value returned by MHD_get_timeout(). 1881 All double-linked lists now walked from tail to head. As new items are 1882 added to head, this result in more uniform processing time. 1883 Improved sockets errors handling in epoll mode. 1884 OOB data on 'upgraded' sockets is treated as error. -EG 1885 1886 Thu Feb 16 11:20:05 CET 2017 1887 Replace tsearch configure check with code from gnulib. -CG 1888 1889 Wed Feb 15 13:35:36 CET 2017 1890 Fixing a few very rare race conditions for thread-pool or 1891 thread-per-connection operations during shutdown. 1892 Various minor cosmetic improvements. 1893 Fixed #4884 and #4888 (solaris portability issues). -CG 1894 1895 Wed Feb 08 22:33:10 MSK 2016 1896 Ported test_quiesce_stream to W32. 1897 Improved precompiler flags selection of OpenBSD. 1898 Fixed sending responses backed by files not supported by sendfile(). 1899 Fixed thread safety for responses backed by file FD. 1900 Updated fileserver_example. 1901 Improved handling of 'upgraded' TLS forwarding in select() and poll() 1902 modes. 1903 Fixed processing of incoming TLS data in epoll mode if more than 128 1904 connections are active. 1905 Fixed accepting more than 128 incoming connection in epoll mode. 1906 Improved test_large_put, added poll() and epoll testing. 1907 Added test_large_put_inc for testing of incremental buffer processing. 1908 Rewritten epoll connection processing logic: handle all connection one 1909 time per turn instead of trying to handle all active connection until all 1910 pending data is dried. Result is more uniform connection processing 1911 period. -EG 1912 1913 Wed Nov 23 15:24:10 MSK 2016 1914 Used SO_REUSEADDR (on non-W32) alongside with SO_REUSEPORT if option 1915 MHD_OPTION_LISTENING_ADDRESS_REUSE was set. -EG 1916 1917 Wed Nov 23 12:48:23 MSK 2016 1918 Move all gettext-related staff to 'po' subdirectory. 1919 Excluded gettext files generation from normal build. 1920 Removed generated files from GIT. -EG 1921 1922 Tue Nov 15 19:08:43 MSK 2016 1923 Fixed forwarding "upgraded" TLS connections for 1924 chunks sizes larger than buffer size. -EG 1925 1926 Mon Nov 14 22:18:30 MSK 2016 1927 Fixed unintentional usage of SO_REUSEADDR on W32. 1928 Added support for SO_EXCLBIND on Solaris. 1929 Fixed using MHD with MHD_OPTION_LISTENING_ADDRESS_REUSE 1930 on Linux kernels before 3.9 (longterm 3.2 and 3.4 1931 are still supported). -EG 1932 1933 Sun Nov 13 19:16:38 CET 2016 1934 Fixed a few race issues on suspend-resume in cases where the 1935 application uses threads even though MHD did not (or at least 1936 had no internal need for locking). Also fixed DLL handling of 1937 the timeout list, avoiding manipulating it for suspended 1938 connections. Finally, eliminated calling application logic 1939 on suspended connections (which before could happen under 1940 certain circumstances). -CG 1941 1942 Thu Nov 11 20:49:23 MSK 2016 1943 Added support for various forms of 1944 pthread_attr_setname_np() so thread names will be set 1945 more efficiently on certain platforms (Solaris, NetBSD etc.) -EG 1946 1947 Thu Nov 10 21:50:35 MSK 2016 1948 Added rejection in MHD_start_daemon() of invalid combinations 1949 of daemon flags. 1950 Added MHD_USE_AUTO and MHD_USE_AUTO_INTERNAL_THREAD for 1951 automatic selection of polling function depending on 1952 platform capabilities and requested mode. -EG 1953 1954 Thu Nov 10 17:49:56 MSK 2016 1955 Ported "upgrade" tests to W32 and other platforms, used 1956 "gnutls-cli" instead of "openssl" in tests, minor bugs 1957 fixed, added verbose reporting if requested. 1958 "Upgrade" processing - changed internal handling logic, improved 1959 and refactored, bugs fixed, fixed sigpipe on Darwin, added 1960 printing error to log, fixed compilation without HTTPS. 1961 Added 'configure' parameter "--disable-httpupgrade" for building 1962 minimal-sized MHD versions. 1963 Added feature check "MHD_FEATURE_UPGRADE". 1964 Responses destroyed (freed) earlier if possible. 1965 Added many remarks in code comments about thread safety. 1966 Some data races and other multithread-related issues are fixed, 1967 including usage of closed sockets (may resulted in accidental closing 1968 of wrong socket). 1969 SO_NOSIGPIPE is used on all platform which support it, not only 1970 on Darwin. 1971 Added support for suspending connections in thread-per-connection 1972 mode (itself almost useless, mostly to unify modes support). 1973 Fixed Inter-Thread Communication channel usage in epoll modes. 1974 Reworked daemon cleanups and handling MHD_stop_daemon(): resources 1975 are freed only by specific threads, data races and other fixes. 1976 Started usage of C99 standard 'bool' where supported with 1977 fallback to 'int'. 1978 Renamed many MHD flags. Now they are self-explainable and more 1979 obvious, like MHD_USE_INTERNAL_POLLING_THREAD instead of 1980 MHD_USE_SELECT_INTERNALLY. Old flag names are supported for 1981 backward compatibility. 1982 Improved processing of "fast" connections: now full sequence 1983 "read request - send reply headers - send reply body" is processed 1984 after single select()/poll(). If connection is slow, request is huge 1985 or response in not immediately ready - connection will be processed 1986 in "traditional" way. 1987 Added usage of "calloc()" where supported. 1988 Minor documentation fixes. 1989 Minor improvements and fixes. -EG 1990 "Upgrade" test fixes. 1991 Documentation updated. 1992 Added HTTP "Upgrade" example. -CG 1993 1994 Mon Oct 17 19:08:18 CEST 2016 1995 Fixed misc. issues relating to upgrade. 1996 Releasing experimental 0.9.52. -CG 1997 1998 Wed Oct 12 14:26:20 CEST 2016 1999 Migrated repository from Subversion to Git. -CG 2000 2001 Tue Oct 11 18:09:56 CEST 2016 2002 Deprecated MHD_USE_SSL, use MHD_USE_TLS instead. -CG 2003 2004 Tue Oct 11 18:14:40 MSK 2016 2005 Code internal refactoring: 'pipes' renamed to 'inter-thread 2006 communication (channels)/ITCs', as code can use different types 2007 of communications. 2008 Optimizations: ITCs now always created in non-blocking mode. 2009 Added configure parameter to choose ITC type. 2010 Updated documentation and comments. 2011 Minor errors fixed (related to heavy load). -EG 2012 2013 Thu Sep 22 17:51:04 CEST 2016 2014 Implementing support for eventfd() instead of pipe() for 2015 signaling (on platforms that support it); fixing #3557. -CG 2016 2017 Thu Sep 22 11:03:43 CEST 2016 2018 Simplify internal error handling logic by folding it into the 2019 MHD_socket_close_, MHD_mutex_lock_, MHD_mutex_unlock_ and 2020 MHD_mutex_destroy_ functions. -CG 2021 2022 Tue Sep 13 22:20:26 MSK 2016 2023 Added autoconf macro to enable maximum platform 2024 features. Fixed compiling on Solaris. -EG 2025 2026 Wed Sep 7 12:57:57 CEST 2016 2027 Fixing #4641. -Hawk 2028 2029 Wed Sep 7 00:28:59 CEST 2016 2030 Adding remaining "_"-markups for i18n (#4614). -CG 2031 2032 Tue Sep 6 23:39:56 CEST 2016 2033 Allow out-of-order nonces for digest authentication (#4636). -CG 2034 2035 Tue Sep 6 21:29:09 CEST 2016 2036 Martin was right, "socket_context" should be "void *" 2037 in `union MHD_ConnectionInfo`. -MS 2038 2039 Sun Sep 4 18:16:32 CEST 2016 2040 Fixing potential memory leak (#4634). -CG 2041 2042 Sun Sep 4 17:25:45 CEST 2016 2043 Tests for "Upgrade" logic are now in place and passing. 2044 However, still need to make sure code is portable. -CG 2045 2046 Sat Sep 3 11:56:20 CEST 2016 2047 Adding logic for handling HTTP "Upgrade" in thread-per-connection 2048 mode. Also still untested. -CG 2049 2050 Sat Aug 27 21:01:43 CEST 2016 2051 Adding a few extra safety checks around HTTP "Upgrade" 2052 (against wrong uses of API), and a testcase. -CG 2053 2054 Sat Aug 27 20:07:53 CEST 2016 2055 Adding completely *untested* logic for HTTP "Upgrade" 2056 handling. -CG 2057 2058 Sat Aug 27 18:20:38 CEST 2016 2059 Releasing libmicrohttpd 0.9.51. -CG 2060 2061 Tue Aug 23 22:54:07 MSK 2016 2062 Internal refactoring: W32 compatibility layer was finally 2063 replaced with several specialized abstraction layers for 2064 sockets, control pipes (inter-thread communication) and 2065 generic functions. Now all major platform functions 2066 (including threads and mutex) are implemented in thin 2067 abstraction layers. 2068 Improved performance on W32 due to eliminating 2069 translation of error to POSIX codes and using W32 codes 2070 directly (through macros). 2071 Improved error reporting on all platforms. 2072 Improved error handling and reporting on Darwin. 2073 Minor fixes. -EG 2074 2075 Tue Aug 16 15:14:30 MSK 2016 2076 Minor improvement for monotonic clock. 2077 Minor configure fix for non-bash shells. -EG 2078 2079 Mon Aug 15 13:06:52 CEST 2016 2080 Fixed possible crash due to write to read-only region of 2081 memory given ill-formed HTTP request (write was otherwise 2082 harmless, writing 0 to where there was already a 0). 2083 Fixed issue with closed connection slots not immediately 2084 being available again for new connections if we reached 2085 our connection limit. 2086 Avoid even accept()ing connections in certain thread modes 2087 if we are at the connection limit and 2088 MHD_USE_PIPE_FOR_SHUTDOWN is available. -CG 2089 2090 Wed Aug 10 16:42:57 MSK 2016 2091 Moved threads, locks and mutex abstraction to separate files, 2092 some minor errors fixed, added support for thread name functions 2093 on various platforms, added configure flag for disable thread 2094 naming. -EG 2095 2096 Sat Jul 23 20:45:51 CEST 2016 2097 Added macro detection of speed/size compiler optimization. 2098 Added different implementation of functions in mhd_str.c for 2099 size optimization. Enabled automatically if compiler size 2100 optimization is detected or MHD_FAVOR_SMALL_CODE is defined. 2101 Added unit tests for all mhd_str.c functions. -EG 2102 2103 Sat Jul 16 21:54:49 CEST 2016 2104 Warn user if they sent connection into blocking 2105 state by not processing all POST data, not suspending, 2106 and not running in external select mode. -CG 2107 2108 Fri Jul 8 21:35:07 CEST 2016 2109 Fix FIXME in tutorial. -CG 2110 2111 Fri Jul 8 15:57:06 CEST 2016 2112 Adding support for 308 status code. -CG 2113 2114 Sat Jun 25 13:49:31 CEST 2016 2115 Use shutdown to trigger select on NetBSD. -EG 2116 2117 Thu Jun 2 09:55:50 CEST 2016 2118 Releasing libmicrohttpd 0.9.50. -CG 2119 2120 Wed Jun 1 21:59:34 CEST 2016 2121 Do not send "Content-Length" header for 1xx/204/304 status codes. -CG 2122 2123 Tue May 17 13:32:21 CEST 2016 2124 Allow clients to determine whether a connection is suspended; 2125 introduces MHD_CONNECTION_INFO_CONNECTION_SUSPENDED. -CG/FC 2126 2127 Sun May 15 12:17:25 CEST 2016 2128 Fix handling system or process resource limit exhaustion upon 2129 accept(). -CG/CP 2130 2131 Thu May 12 08:42:19 CEST 2016 2132 Fix handling of partial writes in MHD_USE_EPOLL_LINUX_ONLY; only 2133 consider sockets returning EAGAIN as unready. -CG/CP 2134 2135 Mon May 2 06:08:26 CEST 2016 2136 Adding logic to help address FE performance issue as 2137 discussed on the mailinglist with subject 2138 "single-threaded daemon, multiple pending requests, responses batched". 2139 The new logic is only enabled when MHD_USE_EPOLL_TURBO is set. 2140 Note that some additional refactoring was also done to clean up 2141 the code and avoid code duplication, which may have actually fixed 2142 an unrelated issue with HTTPS and a POLL-style event loop. -CG 2143 2144 Sat Apr 30 10:22:37 CEST 2016 2145 Added clarifications to manual based on questions on list. -CG 2146 2147 Sat Apr 23 20:12:01 CET 2016 2148 Tests perf_get_concurrent and test_concurrent_stop ported to use 2149 pthread instead of fork(). Added more error detections. -EG 2150 2151 Sat Apr 23 16:06:30 CET 2016 2152 Improved test_quiesce test. -EG 2153 2154 Sat Apr 23 15:39:38 CET 2016 2155 Notify other threads in MHD_quiesce_daemon() so listen socket FD 2156 is removed from awaiting select() and poll(). -EG 2157 2158 Sat Apr 23 14:17:15 CET 2016 2159 Revert "shutdown trigger select" on Darwin. Fixed daemon shutdown 2160 on Darwin without "MHD_USE_PIPE_FOR_SHUTDOWN" option. -EG 2161 2162 Fri Apr 22 14:29:28 CET 2016 2163 Fixed race conditions when stopping quiesced daemon with thread 2164 pool. -EG 2165 2166 Wed Apr 20 18:12:30 CET 2016 2167 Fixed macros in sysfdsetsize.c which could prevent compiling with 2168 non-default FD_SETSIZE. 2169 Fixed comments in mhd_str.c. 2170 Updated test_post.c to not ignore specific error on W32 if libcurl 2171 is built with workaround for WinSock bug. -EG 2172 2173 Mon Apr 18 19:35:14 CET 2016 2174 Fixed data races leading to inability in rare situations to 2175 resume suspended connection. -EG 2176 2177 Tue Apr 13 21:46:01 CET 2016 2178 Removed unneeded locking for global timeout list in 2179 MHD_USE_THREAD_PER_CONNECTION mode. 2180 Added 'simplepost' and 'largepost' examples to VS projects. 2181 Added strtoXX() locale-independent replacement functions. 2182 Added more error checking and minor fixes in digest auth 2183 functions - should improve security. 2184 Ignored specific errors in 'test_post' test until libcurl 2185 will implement workaround for WinSock bug. 2186 Fixed handling of caller-supplied socket with 2187 MHD_OPTION_LISTEN_SOCKET (regression in 0.9.49). 2188 Minor fixes. 2189 Various cosmetics and comments fixes. -EG 2190 2191 Sat Apr 09 13:05:42 CET 2016 2192 Releasing libmicrohttpd 0.9.49. -EG 2193 2194 Fri Apr 08 18:32:17 CET 2016 2195 Some minor internal fixes, addition error checking and 2196 micro optimizations. 2197 Reworked usage of sockets shutdown() - now work equally 2198 on all platforms, disconnection should be "more graceful". -EG 2199 2200 Tue Mar 15 21:52:27 CET 2016 2201 Do not crash if pthread_create() fails. -DD 2202 2203 Tue Mar 15 20:29:34 CET 2016 2204 Do not use eready DLL data structure unless 2205 we are actually using epoll(). -DD/CG 2206 2207 Fri Feb 5 20:43:11 CET 2016 2208 Fixed testsuite compile warning on W32. 2209 Added check test for triggering poll() on 2210 listen socket. -EG 2211 2212 Thu Feb 4 11:38:11 CET 2016 2213 Added some buffer overrun protection. 2214 Fixed handling of malformed URI with spaces. -EG 2215 2216 Wed Feb 3 15:41:57 CET 2016 2217 Make signal-pipe non-blocking and drain it. -CG 2218 2219 Sat Jan 30 15:49:07 CET 2016 2220 Fix running select() with empty fdsets on W32. -EG 2221 2222 Mon Jan 25 13:45:50 CET 2016 2223 Added check test for triggering select() on 2224 listen socket. -EG 2225 2226 Thu Jan 21 19:35:18 CET 2016 2227 Fixed old bug with making sockets non-blocking on 2228 various platforms so now sockets are really 2229 non-blocking on all supported platforms. 2230 Reworked and fixed code for using SOCK_CLOEXEC, 2231 SOCK_NONBLOCK and EPOLL_CLOEXEC resulting in 2232 fewer used system calls. -EG 2233 2234 Tue Jan 19 20:59:59 CET 2016 2235 Cleaned up and optimized with minor fixes code for 2236 making sockets non-blocking non-inheritable. -EG 2237 2238 Tue Jan 19 11:14:18 CET 2016 2239 Removed workaround for Cygwin non-blocking sockets: 2240 handling non-blocking sockets were fixed in Cygwin 2241 and libmicrohttpd how uses non-blocking sockets on 2242 all platforms. -EG 2243 2244 Mon Jan 18 23:54:45 CET 2016 2245 Cleaned up examples to avoid giving oversimplified code 2246 that may lead to complications if adopted naively. -CG 2247 2248 Sun Jan 17 11:18:55 CET 2016 2249 Do no refuse to send response if sendfile() failed with 2250 EINVAL (common error for files located on SMB/CIF). -EG 2251 2252 Sat Jan 16 19:14:39 CET 2016 2253 Use US-ASCII only (instead of user locale settings) when 2254 performing caseless string comparison as required by 2255 standard. -EG 2256 2257 Tue Jan 12 16:10:09 CET 2016 2258 Fixed declaraion of MHD_get_reason_phrase_for(). -EG 2259 2260 Mon Jan 11 19:58:50 CET 2016 2261 Configure.ac small fixes and refactoring. -EG 2262 2263 Fri Dec 18 15:54:50 CET 2015 2264 Releasing libmicrohttpd 0.9.48. -CG 2265 2266 Tue Dec 15 18:35:55 CET 2015 2267 Improved compatibility with VS2010 and other older 2268 compilers. -EG 2269 2270 Tue Dec 8 21:48:44 CET 2015 2271 Default backlog size for listen socket was changed from 2272 32 to SOMAXCONN, added new option MHD_OPTION_LISTEN_BACKLOG_SIZE 2273 to override default backlog size. 2274 If not all connections can be handled by MHD_select() than 2275 at least some of connections will be processed instead of 2276 failing without any processing. 2277 Fixed redefenition of FD_SETSIZE on W32 so select() will 2278 work with 2000 connections instead of 64. 2279 Better handled redefenition of FD_SETSIZE on all 2280 platforms. -EG 2281 2282 Sat Dec 5 17:30:45 CET 2015 2283 Close sockets more aggressively in multi-threaded 2284 mode (possibly relevant for idle servers). -CG 2285 2286 Fri Dec 4 13:53:05 CET 2015 2287 Releasing libmicrohttpd 0.9.47. -CG 2288 2289 Thu Dec 3 18:21:44 CET 2015 2290 Reworked VS project files. Used x64 build tools by 2291 default, many optimizations, fixes. 2292 Added project files for VS 2015. -EG 2293 2294 Tue Dec 1 14:05:13 CET 2015 2295 SPDY is dead, killing experimental libmicrospdy. -CG 2296 2297 Tue Dec 1 10:01:12 CET 2015 2298 New logic for controlling socket buffer modes. 2299 Eliminated delay before last packet in response and before 2300 "100 Continue" response on all platforms. Also response 2301 header are pushed to client without waiting for response 2302 body. -EG 2303 2304 Wed Nov 25 17:02:53 CET 2015 2305 Remove 200ms delay observable with keep-alive on Darwin 2306 and *BSD platforms. -EG 2307 2308 Tue Nov 10 15:25:48 CET 2015 2309 Fix issue with shutdown if connection was resumed just 2310 before shutdown. -FC 2311 2312 Fri Nov 6 22:54:38 CET 2015 2313 Fixing the buffer shrinkage issue, this time with test. -CG 2314 Releasing libmicrohttpd 0.9.46. -CG 2315 2316 Tue Nov 3 23:24:52 CET 2015 2317 Undoing change from Sun Oct 25 15:29:23 CET 2015 2318 as the original code was counter-intuitive but 2319 correct, and the new code does break pipelining. 2320 Ignore empty lines at the beginning of an HTTP 2321 request (more tolerant implementation). -CG 2322 2323 Sat Oct 31 15:52:52 CET 2015 2324 Releasing libmicrohttpd 0.9.45. -CG 2325 2326 Tue Oct 27 12:08:02 CET 2015 2327 Rework deprecation maros: fix errors with old GCC versions, 2328 improved support for old clang and new GCC. -EG 2329 2330 Sun Oct 25 23:05:32 CET 2015 2331 Return correct header kind in MHD_get_connection_values() 2332 even if a bitmask is used for the "kind" argument. -FC/CG 2333 2334 Sun Oct 25 15:29:23 CET 2015 2335 Fixing transient resource leak affecting long-lived 2336 connections with a lot of keep-alive and HTTP request 2337 pipelining under certain circumstances (which reduced 2338 the receive window). 2339 Fixed assertion failure triggered by a race in 2340 thread-per-connection mode on shutdown in rare 2341 circumstances. -CG 2342 2343 Mon Oct 5 11:53:52 CEST 2015 2344 Deduplicate code between digestauth and connection 2345 parsing logic for URI arguments, shared code moved 2346 to new MHD_parse_arguments_ function in internal.c. -CG 2347 2348 Thu Oct 1 21:22:05 CEST 2015 2349 Releasing libmicrohttpd 0.9.44. -CG 2350 2351 Wed Sep 30 21:05:38 CEST 2015 2352 Various fixes for W32 VS project files. -EG 2353 2354 Fri Sep 25 09:49:10 CEST 2015 2355 Fix digest authentication with URL arguments where 2356 value-less keys are given before the last argument. 2357 Thanks to MA for reporting. -CG 2358 2359 Tue Sep 22 19:17:54 CEST 2015 2360 Do not use shutdown() on listen socket if MHD_USE_PIPE_FOR_SHUTDOWN 2361 is set. -CG 2362 2363 Wed Sep 16 11:06:02 CEST 2015 2364 Releasing libmicrohttpd 0.9.43. -CG 2365 2366 Wed Sep 2 16:50:31 CEST 2015 2367 Call resume_suspended_connections() when the user is running 2368 its own mainloop and calls MHD_run_from_select() to support 2369 resuming connections with external select. -FC 2370 2371 Sun Aug 30 14:53:51 CEST 2015 2372 Correct documentation as to when MHD_USE_EPOLL_LINUX_ONLY 2373 is allowed. -CG 2374 2375 Thu Aug 27 09:38:44 CEST 2015 2376 Reimplement monotonic clock functions for better 2377 support various platforms. 2378 Print more information during configure. -EG 2379 2380 Fri Aug 14 14:13:55 CEST 2015 2381 Export MHD_get_reason_phrase_for() symbol. -CG 2382 2383 Sat Aug 8 12:19:47 CEST 2015 2384 Added checks for overflows and buffer overruns, fixed 2385 possible buffer overrun. 2386 Updated md5 implementation. 2387 Fixed many compiler warning (mostly for VC compiler). -EG 2388 2389 Tue Aug 4 13:50:23 CEST 2015 2390 Fix failure to properly clean up timed out connections 2391 if running in external select mode without listen socket, 2392 which caused busy waiting until new connections arrived. 2393 (Fixes #3924, thanks to slimp for reporting and testcase). -CG 2394 2395 Sun Aug 2 19:08:20 CEST 2015 2396 Ignore close() errors on sockets except for EBADF, 2397 fixes #3926. -CG 2398 2399 Sat Jun 27 22:16:27 CEST 2015 2400 Make sure to decrement connection counter before 2401 calling connection notifier so that 2402 MHD_DAEMON_INFO_CURRENT_CONNECTIONS does not 2403 present stale information (relevant if this is 2404 used for termination detection of a daemon 2405 stopped via MHD_quiesce_daemon()). Thanks to 2406 Markus Doppelbauer for reporting. -CG 2407 2408 Fri Jun 26 23:17:20 CEST 2015 2409 Fix (automatic) handling of HEAD requests with 2410 MHD_create_response_from_callback() and HTTP/1.1 2411 connection keep-alive. Thanks to Cristian Klein 2412 for reporting. -CG 2413 2414 Tue Jun 09 18:30:17 CEST 2015 2415 Add new functions MHD_create_response_from_fd64() and 2416 MHD_create_response_from_fd_at_offset64(). -EG 2417 2418 Thu Jun 4 13:37:05 CEST 2015 2419 Fixing memory leak in digest authentication. -AW 2420 2421 Wed Jun 03 21:23:47 CEST 2015 2422 Add deprecation compiler messages for deprecated functions 2423 and macros. -EG 2424 2425 Fri May 29 12:23:01 CEST 2015 2426 Fixing digest authentication when used in combination 2427 with escaped characters in URLs. -CG/AW 2428 2429 Wed May 13 11:49:09 CEST 2015 2430 Releasing libmicrohttpd 0.9.42. -CG 2431 2432 Wed May 13 11:33:59 CEST 2015 2433 Fix off-by-one in MHD_start_daemon_va() error handling logic 2434 when initialization of threads for thread pool fails for some 2435 reason. -CG/JC 2436 2437 Thu May 7 17:05:46 CEST 2015 2438 Add support for poll() in W32. -EG 2439 2440 Wed May 6 18:07:38 CEST 2015 2441 Fix #3784: actually implement MHD_CONNECTION_INFO_SOCKET_CONTEXT. -asherkin 2442 2443 Thu Apr 30 00:03::49 CEST 2015 2444 Releasing libmicrohttpd 0.9.41. -CG 2445 2446 Thu Apr 30 00:02:33 CEST 2015 2447 Fix issue where resumed connections would not continue 2448 unless other requests are active in certain 2449 event-loop modes. Thanks to Mike Castillo for reporting. -CG 2450 2451 Wed Apr 15 03:16:18 CEST 2015 2452 Fixing issue #3753 (testcase issue). -CG 2453 2454 Wed Apr 15 00:30:34 CEST 2015 2455 Fix looping issue when using MHD_USE_POLL_INTERNALLY 2456 and a client times out. -LB 2457 2458 Sun Apr 12 21:48:50 CEST 2015 2459 Fix looping issue when combining MHD_USE_EPOLL_LINUX_ONLY 2460 with HTTPS and slow clients. -CG 2461 2462 Fri Apr 10 22:02:27 CEST 2015 2463 Fix logic to add "Connection: Close" that was broken in 0.9.38 2464 when adding MHD_RF_HTTP_VERSION_1_0_ONLY. -CG 2465 2466 Fri Apr 10 00:38:40 CEST 2015 2467 Ensure fast termination in MHD_USE_THREAD_PER_CONNECTION 2468 mode on W32 by using signal pipe. -CG 2469 2470 Thu Apr 9 09:01:15 CEST 2015 2471 Fixing issue with undrained signal pipe when using 2472 MHD_USE_SELECT_INTERNALLY and MHD_USE_POLL in combination 2473 with MHD_resume_connection(), causing 100% CPU usage. -DD 2474 2475 Tue Apr 7 00:12:36 CEST 2015 2476 Releasing libmicrohttpd 0.9.40. -CG 2477 2478 Sat Apr 4 18:28:24 CEST 2015 2479 Fix potential deadlock issue in MHD_USE_THREAD_PER_CONNECTION 2480 mode if shutdown is initiated while connections are active. -CG 2481 2482 Sat Apr 4 17:48:13 CEST 2015 2483 Fix issue in thread-pool mode where a MHD_stop_daemon() 2484 might not reach threads that stopped listening because 2485 we hit the maximum number of concurrent connections and 2486 the option MHD_USE_PIPE_FOR_SHUTDOWN was also not used. 2487 Testcase added as well. -CG 2488 2489 Fri Apr 3 12:55:31 CEST 2015 2490 Update HTTPS testcases to avoid SSLv3, as SSLv3 is dead. 2491 2492 Fri Apr 3 12:25:28 CEST 2015 2493 Do not enforce FD_SETSIZE-limit on worker control 2494 pipe when using MHD_USE_EPOLL_LINUX_ONLY (#3751). -MH/CG 2495 2496 Tue Mar 31 10:28:26 CEST 2015 2497 Adding MHD_OPTION_NOTIFY_CONNECTION, 2498 MHD_CONNECTION_NOTIFY_STARTED, 2499 MHD_CONNECTION_NOTIFY_CLOSED and 2500 MHD_CONNECTION_INFO_SOCKET_CONTEXT to allow 2501 applications to trigger operations when TCP 2502 connections start or end, instead of just 2503 exposing HTTP requests starting and ending. -RG/CG 2504 2505 Thu Feb 26 09:55:43 CET 2015 2506 Fixing bug that prevented MHD_OPTION_HTTPS_MEM_DHPARAMS 2507 from working within a MHD_OPTION_ARRAY. -DD 2508 2509 Sun Feb 8 01:24:38 CET 2015 2510 Adding MHD_OPTION_HTTPS_KEY_PASSWORD as proposed by 2511 Andrew Basile. -CG/AB 2512 2513 Wed Feb 4 20:34:22 CET 2015 2514 Fix issue where for HTTP/1.0-clients that set 2515 Connection: Keep-Alive header a response of 2516 indefinite size was generated with chunked encoding. -CG 2517 2518 Sun Jan 18 20:09:06 CET 2015 2519 Fix potential infinite loop on shutdown in multi-threaded mode 2520 under certain conditions. -CG 2521 2522 Mon Dec 22 16:33:18 CET 2014 2523 Releasing 0.9.39. -CG 2524 2525 Mon Dec 22 13:02:36 CET 2014 2526 Fix generated compiler flags for Solaris Studio linker (#3584). -CG 2527 2528 Sat Dec 20 00:35:40 CET 2014 2529 Adding MHD_http_unescape() to public API (#3585). -CG 2530 Updating documentation to document 2531 MHD_is_feature_supported(). -CG 2532 2533 Thu Dec 4 00:43:10 CET 2014 2534 If "Connection: upgrade" is requested, do not add 2535 "Connection: Keep-Alive" in the response. -GJ 2536 2537 Tue Nov 18 13:52:29 CET 2014 2538 Call MHD_cleanup_connections() during MHD_DAEMON_INFO_CURRENT_CONNECTIONS 2539 processing for more accurate results. -MS 2540 2541 Wed Oct 29 20:45:21 CET 2014 2542 Adding MHD_OPTION_LISTENING_ADDRESS_REUSE option allowing clients 2543 to force allowing re-use of the address:port combination 2544 (SO_REUSEPORT). -MS 2545 2546 Wed Oct 29 16:27:05 CET 2014 2547 Adding MHD_DAEMON_INFO_CURRENT_CONNECTIONS to allow clients 2548 to query the number of active connections. -MS 2549 2550 Fri Oct 3 14:28:58 CEST 2014 2551 Releasing 0.9.38. -CG 2552 2553 Mon Sep 29 22:25:34 CEST 2014 2554 Properly decode '+' in URL-encoded POST data. -CG/KM 2555 2556 Fri Sep 12 17:32:09 CEST 2014 2557 Fix --disable-dauth configure option (#3543). -doostee 2558 2559 Thu Jun 26 21:06:04 CEST 2014 2560 Fix failure to terminate 'instantly' in thread-per-connection 2561 mode if there is a client with open connections. 2562 Thanks to Kenneth Mastro for reporting. -CG 2563 2564 Sun Jun 22 12:22:08 CEST 2014 2565 Actually, avoid locking on response as responses must 2566 not be modified in a connection-specific way; instead 2567 modify the connection's data buffer to add missing 2568 responses headers. If we are forced to add 2569 "Connection: close", suppress output of conflicting 2570 application-provided "Connection: Keep-Alive" header. -CG 2571 2572 Sun Jun 22 00:22:08 CEST 2014 2573 Lock on response if adding headers, needed if response 2574 object is shared across threads and connections. -CG 2575 2576 Thu Jun 19 17:32:32 CEST 2014 2577 Ensure that listen FD is bound to epoll FD even before 2578 MHD_run() is called if running with MHD_USE_EPOLL_LINUX_ONLY 2579 in combination with 'external select' mode. Thanks to 2580 Marcos Pindado Sebastian for reporting. -CG 2581 2582 Sun Jun 8 15:10:44 CEST 2014 2583 Add 'MHD_set_response_options' as a way to set per-response 2584 flags. Add flag to force HTTP 1.0-only conservative 2585 behavior, in particular suppressing adding "Connection" 2586 headers. -CG 2587 2588 Mon Jun 2 00:03:28 CEST 2014 2589 Added back unescaping for URI path (#3413) but without 2590 unescaping '+' (#3371) to remain compatible with 2591 MHD 0.9.34 and before. Note that applications providing 2592 a custom MHD_OPTION_UNESCAPE_CALLBACK are no longer expected 2593 to replace '+' with ' ', as that is now done separately for 2594 the locations where this transformation is appropriate. 2595 Releasing 0.9.37. -CG 2596 2597 Wed May 28 15:30:56 CEST 2014 2598 Properly applying patch that was supposed to be 2599 committed on "May 2 20:22:45 CEST 2014" to address 2600 infinite loop (DoS) when HTTP connection is reset (#3392). -GM 2601 2602 Sun May 25 20:18:27 CEST 2014 2603 Fixed W32 build issues. -EG 2604 Releasing 0.9.36. -CG 2605 2606 Sat May 17 06:47:00 CEST 2014 2607 Fix notifying client about completed request twice 2608 under certain circumstances. -CG 2609 2610 Tue May 13 18:24:37 CEST 2014 2611 Fix accidental transmission of footer termination '\r\n' 2612 for responses with zero byte payload and non-chunked 2613 encoding (#3397). Thanks to amatus for reporting. -CG 2614 2615 Sun May 4 11:05:26 CEST 2014 2616 Fix gnutls header check to make it cross-compile aware. -BK 2617 2618 May 2 20:22:45 CEST 2014 2619 Fix infinite loop (DoS) when HTTP connection is reset (#3392). -GM 2620 Fix possible issue from combination of epoll and suspend/resume 2621 logic if edge trigger event is lost; also simplify logic to 2622 maintain simpler invariants on the epoll state. -CG 2623 Use OpenSSL cipher list "HIGH" in libmicrospdy (#3391). -CG 2624 Releasing 0.9.35. -CG 2625 2626 Thu Apr 10 09:39:38 CEST 2014 2627 Removed unescaping for URI path (#3371) as '+' should not 2628 be converted to space in accordance with 2629 http://www.w3.org/TR/html401/appendix/notes.html#ampersands-in-uris 2630 and http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 2631 Note that we now also no longer convert '#38;' to '&'; if needed, 2632 the application needs to apply unescaping to the path of the URI 2633 itself (before, MHD unescaped '#38;' but not '&', so this 2634 inconsistency was now resolved by simply not unescaping anything 2635 before the first '&'). -CG 2636 2637 Tue Apr 08 15:35:44 CET 2014 2638 Added support for W32 native threads. 2639 Added --with-threads=LIB configure parameter. -EG 2640 2641 Mon Apr 7 13:25:30 CEST 2014 2642 Add MHD_OPTION_HTTPS_MEM_DHPARAMS to allow applications 2643 to enable PFS. -HB/CG 2644 2645 Tue Apr 01 07:10:23 CET 2014 2646 Added usage of native mutex on W32. -EG 2647 2648 Sat Mar 29 16:12:03 CET 2014 2649 Added MHD_is_feature_supported() function. -EG 2650 2651 Thu Mar 27 14:47:54 CET 2014 2652 Used larger FD_SETSIZE internally on W32. 2653 Extended API to work with non-default FD_SETSIZE. -EG 2654 2655 Tue Mar 25 12:53:55 CET 2014 2656 Fix limiting by IPv6 address. -EG 2657 2658 Tue Mar 25 09:06:13 CET 2014 2659 Added more FD_SETSIZE checks. 2660 Implemented FD_SETSIZE checks for W32. -EG 2661 2662 Wed Mar 05 13:15:05 CET 2014 2663 Cleanup and refactoring of configure.ac. 2664 m4 macros updated. 2665 Custom configure macros replaced with autoconf archive macros. 2666 SPDY disabled by default on W32. 2667 Changed configure flag from '--disable-pipe' to 2668 '--enable-socketpair'. 2669 Added configure flags '--disable-doc' and '--disable-examples'. 2670 Narrowed down external lib specific compiler and linker flags 2671 usage. -EG 2672 2673 Wed Feb 26 17:42:34 CET 2014 2674 Refactoring of configure.ac: custom macros replaced with macros 2675 from Autoconf Archive. 2676 Minor corrections of configure.ac. 2677 Excluded pthread flags from global flags, pthread now used only 2678 where required. 2679 W32: fixed .dll resource compilation with '-isystem' CPPFLAG. 2680 W32: improved header compatibility with MSVC. 2681 W32: now tested on Win64, compiled by MinGW-w64. -EG 2682 2683 Mon Feb 24 23:13:53 CET 2014 2684 Added support for TCP FASTOPEN. -SHT 2685 Releasing 0.9.34. -CG 2686 2687 Thu Feb 20 14:17:05 CET 2014 2688 W32: Added creation of libmicrohttpd.lib, libmicrohttpd.def, 2689 libmicrohttpd.exp and libmicrohttpd-static.lib for easy use 2690 compiled MHD with MSVC. 2691 W32: Use MS lib.exe tool if available for creating MSVC staff. 2692 W32: Added .dll information resource. -EG 2693 2694 Tue Feb 18 19:46:45 CET 2014 2695 Removed dependency on plibc for simpler compilation for W32. 2696 Added configure option "--disable-pipes" to use socketpairs 2697 instead of pipes for signalling to child threads. Pipes are 2698 always disabled on W32. 2699 Some code refactoring. -EG 2700 2701 Sat Feb 8 15:08:35 CET 2014 2702 Corrected some uses of 'int' vs. 'size_t'. -EG/CG 2703 2704 Wed Jan 22 09:44:33 CET 2014 2705 MHD_USE_DUAL_STACK in libmicrohttpd currently just *inhibits 2706 setting* the IPV6_V6ONLY socket option, but per Microsoft's 2707 documentation the default on Windows is that this is enabled, thus 2708 MHD_USE_DUAL_STACK will not work (since it leaves the 2709 default). libmicrohttpd should probably just unconditionally set 2710 IPV6_V6ONLY to the desired value when the option is available. -LJ 2711 2712 Wed Jan 1 21:38:18 CET 2014 2713 Allow Keep-Alive with HTTP 1.0 (if explicitly requested), 2714 and automatically set "Connection: Keep-Alive" in response 2715 in this case as well. -CG 2716 2717 Tue Dec 24 12:27:39 CET 2013 2718 Adding explicit annotations to hide symbols that are not for 2719 export in the C code (gcc 4.0 or higher only). -CG 2720 2721 Sun Dec 22 14:54:30 CET 2013 2722 Adding a few lines to avoid warnings from picky compilers. -CG 2723 2724 Sat Dec 21 17:26:08 CET 2013 2725 Fixed an issue with a missing argument in the postexample. 2726 Fixed issue with bogus offset increment involving sendfile 2727 on GNU/Linux. Adding support for SNI. 2728 Releasing 0.9.33. -CG 2729 2730 Mon Dec 9 21:41:57 CET 2013 2731 Fix for per-worker daemon pipes enabled with 2732 MHD_USE_SUSPEND_RESUME that were not closed in 2733 MHD_stop_daemon. -MH 2734 2735 Sat Dec 7 00:44:49 CET 2013 2736 Fixing warnings and build issue if --disable-https is given 2737 to configure. -CG 2738 2739 Tue Dec 3 21:25:56 CET 2013 2740 Security fix: do not read past 0-terminator when unescaping 2741 strings (thanks to Florian Weimer for reporting). 2742 Releasing 0.9.32. -CG 2743 2744 Tue Dec 3 21:05:38 CET 2013 2745 Signaling n times for shutdown works, but for resume we need to 2746 wake up the correct daemon. Even if we signal n times in that 2747 case also, there's no guarantee that some daemon can't run 2748 through its select loop more than once before the daemon we want 2749 to wake up gets a chance to read. Thus we need a signal pipe 2750 per thread in the thread pool IF MHD_suspend_connection is used. 2751 This introduces a new flag MHD_USE_SUSPEND_RESUME to add those 2752 additional pipes and only allow MHD_suspend_connection to be 2753 used in conjunction with this flag. 2754 2755 Also, as MHD_resume_connection() will be called on a non-daemon 2756 thread, but none of the queue insert/delete calls are thread safe, 2757 we need to be concerned about (a) corrupting the queue, and (b) 2758 having to add mutex protection around every access to the queues, 2759 including loops through timer queues, etc. This wasn't a problem 2760 before adding resume; even suspend should be safe since it happens 2761 in a callback from the daemon. 2762 2763 I think it's easier to (a) have MHD_suspend_connection() move the 2764 connection to a suspended queue, (b) have MHD_resume_connection() 2765 mark the connection as resuming, and then (c) do all the actual 2766 queue manipulations in MHD_select (poll, epoll, etc.) to move the 2767 resumed connections back to their normal queues, in response to 2768 the wake up. The changes are simpler & cleaner. There is a cost to 2769 the basic select loop that is avoided by making suspend/resume a 2770 startup option. The per-worker pipes can then also be enabled only 2771 with that option set. -MH 2772 2773 Fri Nov 29 20:17:03 CET 2013 2774 Eliminating theoretical stack overflow by limiting length 2775 of URIs in authentication headers to 32k (only applicable 2776 if the application explicitly raised the memory limits, 2777 and only applies to MHD_digest_auth_check). Issue was 2778 reported by Florian Weimer. -CG 2779 2780 Tue Nov 26 01:26:15 CET 2013 2781 Fix race on shutdown signal with thread pool on non-Linux 2782 systems by signalling n times for n threads. -CG 2783 2784 Sun Nov 24 13:41:15 CET 2013 2785 Introduce state to mark connections in suspended state (with 2786 epoll); add missing locking operations in MHD_suspend_connection. 2787 Fix definition of MHD_TLS_CONNECTION_INIT. -MH/JC 2788 2789 Wed Oct 30 09:34:20 CET 2013 2790 Fixing issue in PostProcessor when getting partial boundary 2791 at the beginning, expanding test suite. -CG 2792 2793 Sun Oct 27 15:19:44 CET 2013 2794 Implementing faster processing of upload data in multipart 2795 encoding (thanks to performance analysis by Adam Homolya). -CG 2796 2797 Thu Oct 24 10:40:03 CEST 2013 2798 Adding support for connection flow control via 2799 MHD_suspend_connection and MHD_resume_connection. -CG 2800 2801 Sat Oct 19 16:40:32 CEST 2013 2802 Releasing libmicrohttpd 0.9.31. -CG 2803 2804 Mon Sep 23 20:24:48 CEST 2013 2805 Fixing build issues on OS X with CLOCK_MONOTONIC not being 2806 implemented on OS X. -CG 2807 2808 Mon Sep 23 14:15:00 CEST 2013 2809 Make libmicrohttpd play nicely with upcoming libgcrypt 1.6.0. -CG 2810 2811 Fri Sep 20 17:01:37 CEST 2013 2812 Improved configure checks for cURL. -CG 2813 2814 Wed Sep 18 18:29:24 CEST 2013 2815 Signal connection termination as OK (and not as ERROR) if the 2816 stream was terminated by the callback returning 2817 MHD_CONTENT_READER_END_OF_STREAM. Also, release response 2818 mutex before calling the termination callback, to avoid 2819 possible deadlock if the client destroys the response in 2820 the termination callback (due to non-recursiveness of the 2821 lock). -CG 2822 2823 Wed Sep 18 14:31:35 CEST 2013 2824 Adding #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN. -CG 2825 2826 Tue Sep 17 21:32:47 CEST 2013 2827 Also pass MHD connection handle in URI log callback. -CG 2828 2829 Fri Sep 6 10:00:44 CEST 2013 2830 Improved check for proper OpenSSL version for 2831 libmicrospdy. -CG 2832 2833 Wed Sep 4 17:23:15 CEST 2013 2834 Set IPV6_V6ONLY socket option correctly when IPv6 is 2835 enabled (MHD_USE_IPv6) but not dual stack 2836 (MHD_USE_DUAL_STACK) -MW 2837 2838 Mon Sep 2 22:59:45 CEST 2013 2839 Fix use-after-free in epoll()-mode on read error. 2840 Releasing libmicrohttpd 0.9.30. -CG 2841 2842 Sun Sep 1 21:55:53 CEST 2013 2843 Fixing build issues on FreeBSD. -CG 2844 2845 Fri Aug 30 13:53:04 CEST 2013 2846 Started to implement #3008 (RFC 2616, section 8.1.4 2847 says HTTP server SHOULD terminate connection if the 2848 client closes it for writing via TCP FIN, so we should 2849 continue to try to read and react differently 2850 if recv() returns zero). -CG 2851 2852 Wed Aug 28 18:40:47 CEST 2013 2853 Fix #3007 (build issue if messages are disabled). -CG 2854 2855 Tue Aug 27 18:39:08 CEST 2013 2856 Fix build issue if SOCK_NONBLOCK/EPOLL_CLOEXEC are not 2857 defined (as is the case on older glibc versions). -CG 2858 2859 Fri Aug 23 14:28:02 CEST 2013 2860 Releasing libmicrohttpd 0.9.29. -CG 2861 2862 Mon Aug 12 23:51:18 CEST 2013 2863 Updated manual, documenting W32 select/shutdown issue. -CG 2864 2865 Sat Aug 10 21:01:18 CEST 2013 2866 Fixed #2983. -CG 2867 2868 Sat Aug 10 20:39:27 CEST 2013 2869 Use 'errno' to indicate why 'MHD_add_connection' failed 2870 (#2984). -CG 2871 2872 Sat Aug 10 17:31:31 CEST 2013 2873 Disable use of 'shutdown' on W32 always as winsock 2874 doesn't properly behave with half-closed connections 2875 (see http://www.chilkatsoft.com/p/p_299.asp). -CG/LRN 2876 2877 Thu Aug 8 07:55:07 CEST 2013 2878 Fixing issue with pipelining not working as desired. -CG 2879 2880 Wed Aug 7 08:17:40 CEST 2013 2881 Removing dependency on liberty (on W32). -MC 2882 2883 Fri Aug 2 20:55:47 CEST 2013 2884 Fix HTTP 1.1 compliance with respect to not returning 2885 content-length headers for successful "CONNECT" requests. 2886 Note that for unsuccessful "CONNECT" requests with an 2887 empty response body, users must now explicitly set the 2888 content-length header. -CG 2889 2890 Sun Jul 28 16:35:17 CEST 2013 2891 Fixing build issue (missing #ifdef) in conjunction with 2892 --disable-messages. -blueness 2893 2894 Sat Jul 20 12:35:40 CEST 2013 2895 Fixing combination of MHD_USE_SSL and MHD_USE_EPOLL_LINUX_ONLY. -CG 2896 2897 Fri Jul 19 09:57:27 CEST 2013 2898 Fix issue where connections were not cleaned up when 2899 'MHD_run_from_select' was used. Adding experimental 2900 TURBO mode. 2901 Releasing libmicrohttpd 0.9.28. -CG 2902 2903 Sun Jul 14 19:57:56 CEST 2013 2904 Removing 'shutdown' calls that happen just before close or 2905 that are for read-only and for a client that has already 2906 stopped sending anyway (thus reducing number of system calls 2907 slightly). -CG 2908 2909 Sun Jul 14 19:37:37 CEST 2013 2910 Name MHD worker threads on glibc >= 2.12. -,L4X[o] 2911 2912 Fri Jul 5 12:05:01 CEST 2013 2913 Added MHD_OPTION_CONNECTION_MEMORY_INCREMENT to allow users 2914 to specify a custom value for incrementing read buffer 2915 sizes (#2899). -MH 2916 2917 Fri Jun 28 14:05:15 CEST 2013 2918 If we shutdown connection for reading on POST due to error, 2919 really do not process further requests even if we already 2920 read the next request from the connection. Furthermore, do 2921 not shutdown connections for reading on GET/HEAD/etc. just 2922 because the application queued a response immediately --- 2923 reserve that behavior for PUT/POST. -CG 2924 2925 Tue Jun 25 15:08:30 CEST 2013 2926 Added option 'MHD_USE_DUAL_STACK' to support a single 2927 daemon for IPv4 and IPv6 without the application having 2928 to do the binding. -CG 2929 2930 Mon Jun 24 22:33:34 CEST 2013 2931 Finished integration with epoll, including benchmarking and 2932 documentation. -CG 2933 2934 Sun Jun 23 15:28:13 CEST 2013 2935 Added option 'MHD_USE_PIPE_FOR_SHUTDOWN' to cleanly support 2936 'MHD_quiesce_daemon' with thread pools and per-connection 2937 threads (we then need a pipe for shutdown, but if 2938 'MHD_quiesce_daemon' is not used, we do not want to 2939 require the use of a pipe; introducing the pipe after 2940 the threads have been started can also fail, so the 2941 application needs to tell us early on). -CG 2942 2943 Sat Jun 22 20:24:17 CEST 2013 2944 Removed locking calls for thread modes that do not need them. 2945 Reorganized way to obtain connection's event loop state. 2946 Added sorted XDLL for connections with default timeout to 2947 avoid having to loop over all connections to determine current 2948 timeout (custom per-connection timeouts are in another list 2949 which is iterated each time). -CG 2950 2951 Fri Jun 21 20:55:48 CEST 2013 2952 Preparing build system and tests for epoll support. -CG 2953 2954 Tue May 21 14:34:36 CEST 2013 2955 Improving configure tests for OpenSSL and spdylay to 2956 avoid build errors in libmicrospdy code if those libraries 2957 are not present. -CG 2958 2959 Mon May 20 12:29:35 CEST 2013 2960 Added MHD_CONNECTION_INFO_CONNECTION_FD to allow clients 2961 direct access to connection socket; useful for COMET 2962 applications that need to disable NAGLE (#2886). -CG 2963 2964 Mon May 15 12:49:01 CEST 2013 2965 Fixing #2859. -CG 2966 2967 Sun May 5 21:44:08 CEST 2013 2968 Merged libmicrospdy code with libmicrohttpd build system 2969 (no major changes to libmicrospdy itself yet). -CG 2970 2971 Sun May 5 20:13:59 CEST 2013 2972 Improved documentation and code style a bit. 2973 Releasing libmicrohttpd 0.9.27. -CG 2974 2975 Thu Apr 25 13:08:10 CEST 2013 2976 Added 'MHD_quiesce_daemon' to allow application to stop 2977 processing new incoming connections while finishing 2978 ongoing requests. -CG 2979 2980 Sun Mar 31 23:17:13 CEST 2013 2981 Added MHD demonstration code 'src/examples/demo.c'. -CG 2982 2983 Sun Mar 31 20:27:48 CEST 2013 2984 Adding new API call 'MHD_run_from_select' to allow programs 2985 running in 'external select mode' to reduce the number of 2986 'select' calls by a factor of two. -CG 2987 2988 Sun Mar 31 20:03:48 CEST 2013 2989 Performance improvements, updated documentation. 2990 Make better use of available memory pool memory for 2991 reading (especially important for large POST uploads); 2992 improve post processor speed by internally adjusting the 2993 buffer size by 4 bytes to ensure "round" IO sizes given 2994 a "round" post processor buffer size argument. Note 2995 that applications that previously added 4 bytes to the 2996 post processor buffer size might now perform worse. 2997 Using the new 'demo' example, POST upload speed 2998 increased from ~90 MB/s to ~120 MB/s for a large file 2999 (note that the improvement comes from better aligned 3000 disk IO; without disk IO, the speed was (and remains) 3001 at ~1500 MB/s on this system). -CG 3002 3003 Fri Mar 29 16:44:29 CET 2013 3004 Renaming testcases to consistently begin with test_; 3005 Changing build system to build examples in doc/. 3006 Releasing libmicrohttpd 0.9.26. -CG 3007 3008 Thu Mar 7 10:13:08 CET 2013 3009 Fix bug in postprocessor URL parser (#2818). -jgresula 3010 3011 Mon Mar 4 13:45:35 CET 2013 3012 Fix dropping of SSL connections if uptime is less than 3013 MHD_OPTION_CONNECTION_TIMEOUT due to integer underflow (#2802). -greed 3014 3015 Fri Mar 1 01:11:57 CET 2013 3016 Fully initialize cleanup mutex struct for each thread (#2803). -Ulion 3017 3018 Wed Feb 6 01:51:52 CET 2013 3019 Releasing libmicrohttpd 0.9.25. -CG 3020 3021 Fri Feb 1 10:19:44 CET 2013 3022 Handle case where POST data contains "key=" without value 3023 at the end and is not new-line terminated by invoking the 3024 callback with the "key" during MHD_destroy_post_processor (#2733). -CG 3025 3026 Wed Jan 30 13:09:30 CET 2013 3027 Adding more 'const' to allow keeping of reason phrases in ROM. 3028 (see mailinglist). -CG/MV 3029 3030 Tue Jan 29 21:27:56 CET 2013 3031 Make code work with PlibC 0.1.7 (which removed plibc_init_utf8). 3032 Only relevant for W32. Fixes #2734. -CG 3033 3034 Sat Jan 26 21:26:48 CET 2013 3035 Fixing regression introduced Jan 6 (test on data_size instead 3036 of total_size. -CG 3037 3038 Fri Jan 11 23:21:55 CET 2013 3039 Also return MHD_YES from MHD_destroy_post_processor if 3040 we did not get '\r\n' in the upload. -CG 3041 3042 Sun Jan 6 21:10:13 CET 2013 3043 Enable use of "MHD_create_response_from_callback" with 3044 body size of zero. -CG 3045 3046 Tue Dec 25 16:16:30 CET 2012 3047 Releasing libmicrohttpd 0.9.24. -CG 3048 3049 Tue Dec 18 21:18:11 CET 2012 3050 Given both 'chunked' encoding and 'content-length', 3051 ignore the 'content-length' header as per RFC. -ES 3052 3053 Thu Dec 6 10:14:44 CET 2012 3054 Force adding "Connection: close" header to response if 3055 client asked for connection to be closed (so far, we 3056 did close the connection, but did not send the 3057 "Connection: close" header explicitly, which some clients 3058 seem to dislike. (See discussion on mailinglist). 3059 Also, if there is already a transfer-encoding other 3060 than 'chunked' set by the application, we also now close 3061 the connection if the response is of unknown size. -CG 3062 3063 Wed Dec 5 19:22:26 CET 2012 3064 Fixing parameter loss of POST parameters with IE8 and Chrome 3065 in the PostProcessor as the code failed to properly handle 3066 partial data. -MM 3067 3068 Fri Nov 9 21:36:46 CET 2012 3069 Releasing libmicrohttpd 0.9.23. -CG 3070 3071 Thu Nov 8 22:32:59 CET 2012 3072 Ship our own version of tsearch and friends if not provided by platform, 3073 so that MHD works nicely on Android. -JJ 3074 3075 Mon Oct 22 13:05:01 CEST 2012 3076 Immediately do a second read if we get a full buffer from 3077 TLS as there might be more data in the TLS buffers even if 3078 there is no activity on the socket. -CG 3079 3080 Tue Oct 16 01:33:55 CEST 2012 3081 Consistently use "#ifdef" and "#ifndef" WINDOWS, and not 3082 sometimes "#if". -CG 3083 3084 Sat Sep 1 20:51:21 CEST 2012 3085 Releasing libmicrohttpd 0.9.22. -CG 3086 3087 Sat Sep 1 20:38:35 CEST 2012 3088 Adding configure option to allow selecting support for basic 3089 and digest authentication separately (#2525). -CG 3090 3091 Thu Aug 30 21:12:56 CEST 2012 3092 Fixing URI argument parsing when string contained keys without 3093 equals sign (i.e. '&bar&') in the middle of the argument (#2531). 3094 Also replacing 'strstr' with more efficient 'strchr' when 3095 possible. -CG 3096 3097 Tue Aug 21 14:36:17 CEST 2012 3098 Use "int" instead of "enum X" in 'va_arg' calls to be nice to 3099 compilers that use 'short' (i.e. 8 or 16 bit) enums but pass 3100 enums still as "int" in varargs. (See discussion on mailinglist). -CG/MV 3101 3102 Tue Aug 21 14:31:54 CEST 2012 3103 Reduce default size in post processor buffer (for small systems; 3104 performance impact on large systems should be minimal). -CG/MV 3105 3106 Thu Jul 19 21:48:42 CEST 2012 3107 Releasing libmicrohttpd 0.9.21. -CG 3108 3109 Thu Jul 19 11:34:50 CEST 2012 3110 Consistently use 'panic' function instead of ever directly 3111 calling 'abort ()'. Eliminating unused mutex in SSL mode. 3112 Removing check in testcases that fails depending on which 3113 version of gnuTLS is involved. -CG 3114 3115 Tue Jul 17 23:50:43 CEST 2012 3116 Stylistic code clean up. Allowing lookup up of trailing values 3117 without keys using "MHD_lookup_connection_value" with a key of NULL 3118 (thus achieving consistency with the existing iterator API). -CG 3119 3120 Tue Jul 17 22:37:05 CEST 2012 3121 Adding experimental (!) code for MHD operation without listen socket. -CG 3122 3123 Tue Jul 17 22:15:57 CEST 2012 3124 Making sendfile test pass again on non-W32 systems. -CG 3125 3126 Mon Jul 9 13:43:35 CEST 2012 3127 Misc changes to allow testcases to pass on W32. -LRN 3128 3129 Sun Jul 8 15:05:31 CEST 2012 3130 Misc changes to fix build on W32. -LRN 3131 3132 Fri Jun 22 11:31:25 CEST 2012 3133 Make sure sockets opened by MHD are non-inheritable by default (#2414). -CG 3134 3135 Tue Jun 19 19:44:53 CEST 2012 3136 Change various uses of time(NULL) to new MHD_monotonic_time() function to 3137 make timeouts immune to the system real time clock changing. -MC 3138 3139 Tue Jun 12 21:35:00 CEST 2012 3140 Adding 451 status code. -CG 3141 3142 Thu May 31 13:33:45 CEST 2012 3143 Releasing 0.9.20. -CG 3144 3145 Tue May 29 13:55:03 CEST 2012 3146 Fixed some testcase build issues with disabled post processor. -CG 3147 3148 Tue May 29 13:45:15 CEST 2012 3149 Fixing bug where MHD failed to call connection termination callback 3150 if a connection either was closed due to read errors or if MHD 3151 was terminated with certain threading modes. Added new 3152 termination code MHD_REQUEST_TERMINATED_READ_ERROR for the 3153 read-termination cause. -CG 3154 3155 Thu Mar 15 23:47:53 CET 2012 3156 Eliminating code clone in tls connection read/write handlers. -CG 3157 3158 Fri Mar 2 23:44:56 CET 2012 3159 Making sure that MHD_get_connection_values iterates over the 3160 headers in the order in which they were received. -CG 3161 3162 Wed Feb 1 09:39:12 CET 2012 3163 Fixed compilation problem on MinGW. -BS 3164 3165 Tue Jan 31 17:50:24 CET 2012 3166 Releasing 0.9.19. -CG 3167 3168 Mon Jan 30 20:02:34 CET 2012 3169 Fixed handling of garbage prior to first multipart boundary 3170 (#2126). -woof 3171 3172 Fri Jan 27 11:00:43 CET 2012 3173 Fixed postprocessor failure for applications that enclosed boundary 3174 in quotes (#2120). -woof 3175 3176 Tue Jan 24 16:07:53 CET 2012 3177 Added configure check for sin_len in 'struct sockaddr' and adding 3178 code to initialize this field if it exists now. -CG 3179 3180 Mon Jan 23 14:02:26 CET 2012 3181 Fixed double-free if specified cipher was not valid (during 3182 MHD_daemon_start). Releasing 0.9.18. -CG 3183 3184 Thu Jan 19 22:11:12 CET 2012 3185 Switch to non-blocking sockets for all systems but Cygwin 3186 (we already used non-blocking sockets for GNU/Linux); also 3187 use non-blocking sockets on Cygwin for HTTPS as this is 3188 required to avoid DoS-by-partial-record via gnutls. On 3189 Cygwin, #1824 implies that we need to use blocking sockets 3190 for HTTP on Cygwin for now. -CG 3191 3192 Thu Jan 19 17:46:05 CET 2012 3193 Fixing use of uninitialized 'earliest_deadline' variable in 3194 MHD_get_timeout which can lead to returning an incorrect 3195 (too early) timeout (#2085). -tclaveirole 3196 3197 Thu Jan 19 13:31:27 CET 2012 3198 Fixing digest authentication for GET requests with URI arguments 3199 (#2059). -CG 3200 3201 Sat Jan 7 17:30:48 CET 2012 3202 Digest authentication expects nonce count in base 16, not base 10 3203 (#2061). -tclaveirole 3204 3205 Thu Jan 5 22:01:37 CET 2012 3206 Partial fix for #2059, digest authentication with GET arguments. -CG 3207 3208 Thu Dec 1 15:22:57 CET 2011 3209 Updated authorization_example.c to actually demonstrate the current 3210 MHD API. -SG 3211 3212 Mon Nov 21 18:51:30 CET 2011 3213 Added option to suppress generation of the 'Date:' header to be 3214 used on embedded systems without RTC. Documented the new option 3215 and the configure options. -CG 3216 3217 Sat Nov 19 20:08:40 CET 2011 3218 Releasing 0.9.17. -CG 3219 3220 Fri Nov 18 20:17:22 CET 2011 3221 Fixing return value of MHD_get_timeout if timeouts are not in use. 3222 (#1914). -rboulton 3223 3224 Sun Nov 13 13:34:29 CET 2011 3225 Trying to fix accidental addition of a "Connection: close" footer 3226 under certain (rare) circumstances. -CG 3227 3228 Fri Nov 4 10:03:00 CET 2011 3229 Small updates to the tutorial. 3230 Releasing 0.9.16. -CG 3231 3232 Thu Nov 3 10:14:59 CET 2011 3233 shutdown(RDWR) fails on OS X after shutdown(RD), so only use 3234 shutdown(WR) if we already closed the socket for reading (otherwise 3235 OS X might not do shutdown (WR) at all). -CG 3236 3237 Tue Nov 1 18:51:50 CET 2011 3238 Force adding of 'Connection: close' to the header if we (for whatever 3239 reason) are shutting down the socket for reading (see also 3240 #1760). -CG 3241 3242 Thu Oct 27 14:16:34 CEST 2011 3243 Treat EAGAIN the same way as EINTR (helps on W32). -LRN 3244 3245 Wed Oct 12 10:40:12 CEST 2011 3246 Made sockets blocking again for non-Linux platforms as non-blocking 3247 sockets cause problems (#1824) on Cygwin but offer better performance 3248 on Linux (see change on August 11 2011). -CG/pross 3249 3250 Fri Oct 7 19:50:07 CEST 2011 3251 Fixed problems with testcases on W32. -LRN 3252 3253 Fri Sep 30 17:56:36 CEST 2011 3254 Fixed MHD_CONNECTION_OPTION_TIMEOUT for HTTPS (#1811). -CG 3255 3256 Wed Sep 28 08:37:55 CEST 2011 3257 Releasing libmicrohttpd 0.9.15. -CG 3258 3259 Tue Sep 27 13:07:36 CEST 2011 3260 Added ability to access URL arguments of the form 'url?foo' (without 3261 '='). Added testcase and updated documentation accordingly. -CG 3262 3263 Mon Sep 26 21:24:00 CEST 2011 3264 Only run response cleanup testcase if curl binary was found by 3265 configure. -CG 3266 3267 Wed Sep 21 09:53:18 CEST 2011 3268 Reverting to using pipes for signalling select on non-Linux 3269 platforms where shutdown-on-listen-sockets does not work. -WB/CG 3270 3271 Mon Sep 19 14:06:30 CEST 2011 3272 Fixing problem introduced with prompt response cleanup code. -CG 3273 3274 Wed Sep 14 13:43:26 CEST 2011 3275 Fixing minor memory leak if daemon with HTTPS support failed to 3276 initialize (#1766). -CG 3277 3278 Tue Sep 13 09:47:58 CEST 2011 3279 Try to release responses more promptly upon connection termination. -CG 3280 3281 Mon Sep 12 10:20:28 CEST 2011 3282 Releasing libmicrohttpd 0.9.14. -CG 3283 3284 Mon Sep 12 10:05:36 CEST 2011 3285 Added new function to allow setting of a custom timeout value 3286 for an individual connection (the MHD_set_connection_option is 3287 more generic, but this is currently the only use). -CG 3288 3289 Sat Sep 10 07:30:12 CEST 2011 3290 Documenting that MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT is not 3291 implemented and will not be implemented, and what to use instead. -CG 3292 3293 Fri Sep 9 13:42:20 CEST 2011 3294 Added testcase to demonstrate that response cleanup calling is 3295 working. No bug was found. -CG 3296 3297 Thu Aug 18 11:05:16 CEST 2011 3298 Fixed bug with wrong state transition if callback returned 3299 MHD_CONTENT_READER_END_OF_STREAM causing spurious extra callbacks 3300 to the handler (thanks to Jan Seeger for pointing it out). -CG/JS 3301 3302 Thu Aug 11 11:40:03 CEST 2011 3303 Changing sockets to be non-blocking as suggested by Eivind Sarto 3304 on the mailinglist. -CG 3305 3306 Mon Jul 25 16:13:15 CEST 2011 3307 Added a logo. -CG 3308 3309 Sat Jul 16 22:42:10 CEST 2011 3310 Change type of nonce to 'unsigned long int' to match return type 3311 from 'strtoul'. Fixes ERANGE check which would have previously 3312 failed. -CG 3313 3314 Wed Jul 13 09:26:17 CEST 2011 3315 Fixing HTTP error status strings for certain high-numbered status codes. 3316 Added support for some more (non-standard) status codes. 3317 Releasing libmicrohttpd 0.9.13. -CG 3318 3319 Thu Jul 7 10:24:20 CEST 2011 3320 Adding performance measurements. -CG 3321 3322 Thu Jun 23 14:21:13 CEST 2011 3323 Releasing libmicrohttpd 0.9.12. -CG 3324 3325 Wed Jun 22 14:32:23 CEST 2011 3326 Force closing connection if either the client asked it or 3327 if the response contains 'Connection: close' (so far, 3328 only the client's request was considered). -CG/RV 3329 3330 Wed Jun 22 10:37:35 CEST 2011 3331 Removing listen socket from poll/select sets in 3332 MHD_USE_THREAD_PER_CONNECTION mode; using 'shutdown' 3333 on connection sockets to signal termination instead. -CG 3334 3335 Wed Jun 22 10:25:13 CEST 2011 3336 Eliminate unnecessary (and badly synchronized) calls to 3337 MHD_get_timeout in MHD_USE_THREAD_PER_CONNECTION mode. 3338 Document that this is not acceptable. -CG 3339 3340 Tue Jun 21 13:54:59 CEST 2011 3341 Fixing tiny memory leak in SSL code from 'gnutls_priority_init'. 3342 Fixing data race between code doing connection shutdown and 3343 connection cleanup. 3344 Changing code to reduce connection cleanup cost from O(n) to O(1). 3345 Cleaning up logging code around 'connection_close_error'. -CG 3346 3347 Sat Jun 11 13:05:12 CEST 2011 3348 Replacing use of sscanf by strtoul (#1688). -CG/bplant 3349 3350 Fri Jun 3 15:26:42 CEST 2011 3351 Adding MHD_CONNECTION_INFO_DAEMON to obtain MHD_Daemon 3352 responsible for a given connection. -CG 3353 3354 Wed May 25 14:23:20 CEST 2011 3355 Trying to fix stutter problem on timeout described by 3356 David Myers on the mailinglist (5/10/2011). -CG 3357 3358 Fri May 20 22:11:55 CEST 2011 3359 Fixed bug in testcase setup code causing crashes in 3360 tls_session_timeout_test on some systems. 3361 Releasing libmicrohttpd 0.9.11. -CG 3362 3363 Fri May 20 19:34:59 CEST 2011 3364 Fixed bug in parsing multipart/form-data with post processor where 3365 the code failed to add a 0-terminator in the correct position. -PP 3366 3367 Thu May 12 14:40:46 CEST 2011 3368 Fixed bug where if multiple HTTP request messages are piped in at once, 3369 microhttpd would call the handler with the wrong upload_data_size. -HZM 3370 3371 Thu May 12 14:40:08 CEST 2011 3372 Documented possible issue with off_t being sometimes 3373 32-bit and sometimes 64-bit depending on #includes. -CG 3374 3375 Sun May 8 21:52:47 CEST 2011 3376 Allow MHD_SIZE_UNKNOWN to be used in conjunction with 3377 MHD_create_response_from_fd (fixing #1679). -TG 3378 3379 Wed Apr 27 16:11:18 CEST 2011 3380 Releasing libmicrohttpd 0.9.10. -CG 3381 3382 Fri Apr 8 11:40:35 CEST 2011 3383 Workaround for cygwin poll brokenness. -TS 3384 3385 Sun Apr 3 13:56:52 CEST 2011 3386 Fixing compile error on OS X. -CG 3387 3388 Wed Mar 30 12:56:09 CEST 2011 3389 Initialize tv_usec in MHD_USE_THREAD_PER_CONNECTION with select 3390 and per-connection timeout. -CG 3391 3392 Tue Mar 29 14:15:13 CEST 2011 3393 Releasing libmicrohttpd 0.9.9. -CG 3394 3395 Tue Mar 29 14:11:19 CEST 2011 3396 Fixed call to mmap for memory pool, extended testcase to cover 3397 POLL. -CG 3398 3399 Wed Mar 23 23:24:25 CET 2011 3400 Do not use POLLIN when we only care about POLLHUP (significantly 3401 improves performance when using MHD_USE_THREAD_PER_CONNECTION 3402 in combination with MHD_USE_POLL). -ES 3403 3404 Sun Mar 20 09:16:53 CET 2011 3405 Fixing race when using MHD_USE_THREAD_PER_CONNECTION in combination 3406 with MHD_USE_POLL. -CG 3407 3408 Fri Mar 18 13:23:47 CET 2011 3409 Removing MSG_DONTWAIT which should not be needed and was presumably 3410 causing problems with EAGAIN under certain circumstances. -ES 3411 3412 Fri Mar 11 22:25:29 CET 2011 3413 Fixing bug in MHD_create_response_from_fd_at_offset with non-zero offsets. -ES 3414 3415 Sat Mar 5 22:00:36 CET 2011 3416 Do not use POLLRDHUP, which causes build errors on OS X / OpenSolaris 3417 (#1667). -CG 3418 3419 Fri Mar 4 10:24:04 CET 2011 3420 Added new API to allow MHD server to initiate connection to 3421 client (special use-case for servers behind NAT), thereby 3422 addressing #1661 (externally created connections). 3423 Releasing libmicrohttpd 0.9.8. -CG 3424 3425 Fri Mar 4 10:07:18 CET 2011 3426 Avoid using a pipe for signalling as well, just use server 3427 socket shutdown (also for thread-per-connection). -CG 3428 3429 Thu Mar 3 21:42:47 CET 2011 3430 Fixing issue where Base64 decode fails when char is defined 3431 as unsigned char (Mantis 1666). -CG/tmayer 3432 3433 Tue Mar 1 13:58:04 CET 2011 3434 Allow use of 'poll' in combination with the external select mode. 3435 Avoid using pthread signals (SIGALRM), use pipe instead. 3436 Corrected timeout calculation (s vs. ms). -CG 3437 3438 Wed Feb 23 14:21:44 CET 2011 3439 Removing useless code pointed out by Eivind Sarto. -CG 3440 3441 Fri Feb 18 11:03:59 CET 2011 3442 Handle large (>2 GB) file transfers with sendfile on 32-bit 3443 systems better; handle odd sendfile failures by libc/kernel 3444 by falling back to standard 'SEND'. -CG 3445 3446 Sun Feb 13 10:52:29 CET 2011 3447 Handle gnutls receive error(s) for interrupted SSL 3448 connections better. -MS 3449 Releasing libmicrohttpd 0.9.7. -CG 3450 3451 Fri Feb 11 10:15:38 CET 2011 3452 Fixing parameter ordering in documentation (#1659). -wellska 3453 3454 Thu Jan 27 10:51:39 CET 2011 3455 Disable 'EXTRA_CHECKS's by default as suggested in #1652 3456 (I guess it is time). -CG/timn 3457 3458 Thu Jan 27 10:48:55 CET 2011 3459 Removing bogus assertion in basic authentication code (#1651). -CG/timn 3460 3461 Tue Jan 25 14:10:45 CET 2011 3462 Releasing libmicrohttpd 0.9.6. -CG 3463 3464 Mon Jan 24 16:36:35 CET 2011 3465 Fixing compilation error if DAUTH_SUPPORT was 0 (#1646). -CG/bplant 3466 3467 Tue Jan 18 23:58:09 CET 2011 3468 Fixing hash calculation in digest auth; old function had 3469 collisions causing the browser to challenge users for 3470 authentication too often. -CG/AW 3471 3472 Fri Jan 14 19:19:45 CET 2011 3473 Removing dead code, adding missing new symbols to export list. 3474 Fixed two missing NULL checks after malloc operations. -CG 3475 3476 Mon Jan 10 14:07:33 CET 2011 3477 Releasing libmicrohttpd 0.9.5. -CG 3478 3479 Wed Jan 5 15:20:11 CET 2011 3480 Fixing double-locking on non-Linux platforms when using 3481 MHD_create_response_from_fd (#1639). -CG 3482 Avoid use of strndup for better portability (#1636). -CG 3483 3484 Tue Jan 4 13:07:21 CET 2011 3485 Added MHD_create_response_from_buffer, deprecating 3486 MHD_create_response_from_data. Deprecating 3487 MHD_create_response_from_fd as well. -CG 3488 3489 Sun Dec 26 00:02:15 CET 2010 3490 Releasing libmicrohttpd 0.9.4. -CG 3491 3492 Sat Dec 25 21:57:14 CET 2010 3493 Adding support for basic authentication. 3494 Documented how to obtain client SSL certificates in tutorial. -MS 3495 3496 Thu Dec 23 15:40:36 CET 2010 3497 Increasing nonce length to 128 to support digest authentication 3498 with Opera (see #1633). 3499 3500 Mon Dec 20 21:22:57 CET 2010 3501 Added macro MHD_LONG_LONG to allow change of MHD's "long long" use 3502 to some other type on platforms that do not support "long long" 3503 (Mantis #1631). -CG/bplant 3504 3505 Sun Dec 19 19:54:15 CET 2010 3506 Added 'MHD_create_response_from_fd_at_offset'. -CG 3507 3508 Sun Dec 19 15:16:16 CET 2010 3509 Fixing --enable and --disable configure options to behave properly. -CG 3510 3511 Sun Dec 19 13:46:52 CET 2010 3512 Added option to specify size of stacks for threads created by MHD. -CG 3513 3514 Tue Nov 23 09:41:00 CET 2010 3515 Releasing libmicrohttpd 0.9.3. -CG 3516 3517 Thu Nov 18 23:10:36 CET 2010 3518 Fixing #1619 (testcases not working with NSS on Fedora). -CG/timn 3519 3520 Thu Nov 18 22:55:58 CET 2010 3521 Fixing #1621 (socket not closed under certain circumstances). -CG/jaredc 3522 3523 Wed Nov 17 12:16:53 CET 2010 3524 Allowing signalling of errors in generating chunked responses to 3525 clients (by closing connectins) using the new 3526 MHD_CONTENT_READER_END_WITH_ERROR ((size_t)-2) return value. Also 3527 introducing MHD_CONTENT_READER_END_OF_STREAM constant instead 3528 of (size_t) -1 / SIZE_MAX. 3529 3530 Sun Nov 14 20:45:45 CET 2010 3531 Adding API call to generate HTTP footers in response. -CG 3532 3533 Sat Oct 16 12:38:43 CEST 2010 3534 Releasing libmicrohttpd 0.9.2. -CG 3535 3536 Tue Oct 12 15:41:51 CEST 2010 3537 Fixed issue with data received via SSL being delayed in the 3538 GNUtls buffer if sender stopped transmitting (but did not close 3539 the connection) and MHD buffer size was smaller than last fragment, 3540 resulting in possibly significantly delayed processing of 3541 incoming data. -CG 3542 3543 Wed Sep 22 09:48:59 CEST 2010 3544 Changed port argument from 'unsigned short' to 'uint16_t'. 3545 Removed dead code when compiling with messages enabled. 3546 Minimal unrelated code cleanup. -CG 3547 3548 Tue Sep 21 15:12:41 CEST 2010 3549 Use "size_t" for buffer size instead of "int". -CG 3550 3551 Sat Sep 18 07:16:30 CEST 2010 3552 Adding support for SHOUTcast. -CG 3553 3554 Wed Sep 15 09:33:46 CEST 2010 3555 Fixed double-free. -CG/ES 3556 3557 Fri Sep 10 14:47:11 CEST 2010 3558 Releasing libmicrohttpd 0.9.1. -CG 3559 3560 Fri Sep 10 14:29:37 CEST 2010 3561 Adding proper nonce counter checking for digest authentication. -CG/AA 3562 3563 Sat Sep 4 21:55:52 CEST 2010 3564 Digest authentication now seems to be working. -CG/AA 3565 3566 Wed Sep 1 13:59:16 CEST 2010 3567 Added ability to specify external unescape function. 3568 "microhttpd.h" now includes the right headers for GNU/Linux 3569 systems unless MHD_PLATFORM_H is defined (in which case it 3570 is assumed that the right headers were already determined by 3571 some configure-like process). -CG 3572 3573 Tue Aug 31 15:39:25 CEST 2010 3574 Fixed bug with missing call to response cleanup in case of 3575 connection handling error (for example, after getting a SIGPIPE). -CG 3576 3577 Tue Aug 24 11:39:25 CEST 2010 3578 Fixed bug in handling EAGAIN from GnuTLS (caused 3579 needlessly dropped SSL connections). -CG 3580 3581 Sun Aug 22 16:49:13 CEST 2010 3582 Initial draft for digest authentication. -AA 3583 3584 Thu Aug 19 14:15:01 CEST 2010 3585 Changed code to enable error messages and HTTPS by default; 3586 added option to disable post processor API (use 3587 breaks binary compatibility, should only be done 3588 for embedded systems that require minimal footprint). -CG 3589 3590 Thu Aug 19 13:26:00 CEST 2010 3591 Patches for Windows to ease compilation trouble. -GT/CG 3592 3593 Sat Aug 14 15:43:30 CEST 2010 3594 Fixed small, largely hypothetical leaks. 3595 Reduced calls to strlen for header processing. -CG 3596 3597 Fri Aug 6 12:51:59 CEST 2010 3598 Fixing (small) memory leak on daemon-shutdown with 3599 SSL enabled. -CG/PG 3600 3601 Thu Aug 5 22:24:37 CEST 2010 3602 Fixing timeout bug on systems that think it's still 3603 1970 (can happen if system time not initialized). -CG 3604 3605 Mon Jul 26 10:46:57 CEST 2010 3606 Releasing libmicrohttpd 0.9.0. -CG 3607 3608 Sun Jul 25 14:57:47 CEST 2010 3609 Adding support for sendfile on Linux. Adding support 3610 for systemd-style passing of an existing listen socket 3611 as an option. IPv6 sockets now only bind to IPv6 3612 (if platform supports this). -CG 3613 3614 Sun Jul 25 11:10:45 CEST 2010 3615 Changed code to use external libgnutls code instead of 3616 the "fork". Minor API changes for setting TLS options. -CG 3617 3618 Sun Jun 13 10:52:34 CEST 2010 3619 Cleaned up example code. -CG 3620 3621 Fri Apr 23 09:56:37 CEST 2010 3622 Do not return HTTP headers for requests without version 3623 numbers. Do return HTTP version 1.0 if client requested 3624 HTTP version 1.1 (previously, we returned HTTP/1.1 even 3625 if the client specified HTTP/1.0). -GM/CG 3626 3627 Sat Mar 13 09:41:01 CET 2010 3628 Releasing libmicrohttpd 0.4.6. -CG 3629 3630 Wed Mar 10 13:18:26 CET 2010 3631 Fixing bug in 100 CONTINUE replacement when handling POSTs 3632 (see report on mailinglist), with testcase. -CG/MC 3633 3634 Tue Feb 23 09:16:15 CET 2010 3635 Added configure check for endianness to define WORDS_BIGENDIAN 3636 which fixes SSL support on big endian architectures. -JA/CG 3637 3638 Sat Feb 20 10:01:09 CET 2010 3639 Added check for inconsistent options (MHD_OPTION_PROTOCOL_VERSION 3640 without MHD_USE_SSL) causing instant segfault. -JA/CG 3641 3642 Tue Feb 9 20:31:51 CET 2010 3643 Fixed issue with poll doing busy waiting. -BK/CG 3644 3645 Thu Jan 28 21:28:56 CET 2010 3646 Releasing libmicrohttpd 0.4.5. -CG 3647 3648 Thu Jan 28 20:35:48 CET 2010 3649 Make sure addresses returned by memory pool are 3650 aligned (fixes bus errors on Sparc). -CG 3651 3652 Thu Dec 17 20:26:52 CET 2009 3653 poll.h is not strictly required anymore. -ND 3654 3655 Fri Dec 4 13:17:50 CET 2009 3656 Adding MHD_OPTION_ARRAY. -CG 3657 3658 Mon Nov 16 14:41:26 CET 2009 3659 Fixed busy-loop in internal select mode for inactive 3660 clients with infinite connection timeout. -CG 3661 3662 Thu Nov 12 16:19:14 CET 2009 3663 Adding support for setting a custom error handler for 3664 fatal errors (previously, the implementation always 3665 called 'abort' in these cases). -CG/ND 3666 3667 Wed Nov 11 12:54:16 CET 2009 3668 Adding support for poll (alternative to select allowing 3669 for more than FD_SETSIZE parallel connections). -JM 3670 3671 Wed Oct 28 20:26:00 CET 2009 3672 Releasing libmicrohttpd 0.4.4. -CG 3673 3674 Wed Oct 14 14:37:37 CEST 2009 3675 Fixing (rare) deadlock due to SELECT missing SIGALRM by 3676 making all SELECT calls block for at most 1s. While this 3677 can in (rare) situations delay the shutdown by 1s, I think 3678 this is preferable (both performance and possibly portability-wise) 3679 over using a pipe for the signal. -CG 3680 3681 Sun Oct 11 14:57:29 CEST 2009 3682 Adding eCos license as an additional license for the 3683 non-HTTPS code of MHD. -CG 3684 3685 Sun Oct 11 11:24:27 CEST 2009 3686 Adding support for Symbian. -MR 3687 3688 Fri Oct 9 15:21:29 CEST 2009 3689 Check for error codes from pthread operations (to help with 3690 error diagnostics) and abort if something went wrong. -CG 3691 3692 Thu Oct 8 10:43:02 CEST 2009 3693 Added check for sockets being '< FD_SETSIZE' (just to be safe). -CG 3694 3695 Mon Oct 5 21:17:26 CEST 2009 3696 Adding "COOKIE" header string #defines. -CG 3697 3698 Mon Oct 5 08:29:06 CEST 2009 3699 Documenting default values. -CG 3700 3701 Fri Aug 28 22:56:47 CEST 2009 3702 Releasing libmicrohttpd 0.4.3. -CG 3703 3704 Sun Aug 23 16:21:35 UTC 2009 3705 Allow MHD_get_daemon_info to return the daemon's listen socket. 3706 Includes a test case that uses this functionality to bind a server to 3707 an OS-assigned port, look the port up with getsockname, and curl it. -DR 3708 3709 Tue Aug 4 00:14:04 CEST 2009 3710 Fixing double-call to read from content-reader callback for first 3711 data segment (as reported by Alex on the mailinglist). -CG 3712 3713 Thu Jul 29 21:41:52 CEST 2009 3714 Fixed issue with the code not using the "block_size" argument 3715 given to MHD_create_response_from_callback causing inefficiencies 3716 for values < 2048 and segmentation faults for values > 2048 3717 (as reported by Andre Colomb on the mailinglist). -CG 3718 3719 Sun May 17 03:29:46 MDT 2009 3720 Releasing libmicrohttpd 0.4.2. -CG 3721 3722 Fri May 15 11:00:20 MDT 2009 3723 Grow reserved read buffer more aggressively so that we are not 3724 needlessly stuck reading only a handful of bytes in each iteration. -CG 3725 3726 Thu May 14 21:20:30 MDT 2009 3727 Fixed issue where the "NOTIFY_COMPLETED" handler could be called 3728 twice (if a socket error or timeout occurred for a pipelined 3729 connection after successfully completing a request and before 3730 the next request was successfully transmitted). This could 3731 confuse applications not expecting to see a connection "complete" 3732 that they were never aware of in the first place. -CG 3733 3734 Mon May 11 13:01:16 MDT 2009 3735 Fixed issue where error code on timeout was "TERMINATED_WITH_ERROR" 3736 instead of "TERMINATED_TIMEOUT_REACHED". -CG 3737 3738 Wed Apr 1 21:33:05 CEST 2009 3739 Added MHD_get_version(). -ND 3740 3741 Wed Mar 18 22:59:07 MDT 2009 3742 Releasing libmicrohttpd 0.4.1. -CG 3743 3744 Wed Mar 18 17:46:58 MDT 2009 3745 Always RECV/SEND with MSG_DONTWAIT to (possibly) address 3746 strange deadlock reported by Erik on the mailinglist --- 3747 and/or issues with blocking read after select on GNU/Linux 3748 (see select man page under bugs). -CG 3749 3750 Tue Mar 17 01:19:50 MDT 2009 3751 Added support for thread-pools. -CG/RA 3752 3753 Mon Mar 2 23:44:08 MST 2009 3754 Fixed problem with 64-bit upload and download sizes and 3755 "-1" being used to indicate "unknown" by introducing 3756 new 64-bit constant "MHD_SIZE_UNKNOWN". -CG/DC 3757 3758 Wed Feb 18 08:13:56 MST 2009 3759 Added missing #include for build on arm-linux-uclibc. -CG/CC 3760 3761 Mon Feb 16 21:12:21 MST 2009 3762 Moved MHD_get_connection_info so that it is always defined, 3763 even if HTTPS support is not enabled. -CG 3764 3765 Sun Feb 8 21:15:30 MST 2009 3766 Releasing libmicrohttpd 0.4.0. -CG 3767 3768 Thu Feb 5 22:43:45 MST 2009 3769 Incompatible API change to allow 64-bit uploads and downloads. 3770 Clients must use "uint64_t" for the "pos" 3771 argument (MHD_ContentReaderCallback) and the "off" 3772 argument (MHD_PostDataIterator) and the "size" 3773 argument (MHD_create_response_from_callback) now. 3774 Also, "unsigned int" was changed to "size_t" for 3775 the "upload_data_size" argument (MHD_AccessHandlerCallback), 3776 the argument to MHD_OPTION_CONNECTION_MEMORY_LIMIT, 3777 the "block_size" argument (MHD_create_response_from_callback), 3778 the "buffer_size" argument (MHD_create_post_processor) and 3779 the "post_data_len" argument (MHD_post_process). You may 3780 need to #include <stdint.h> before <microhttpd.h> from now on. -CG 3781 3782 Thu Feb 5 20:21:08 MST 2009 3783 Allow getting address information about the connecting 3784 client after the accept call. -CG 3785 3786 Mon Feb 2 22:21:48 MST 2009 3787 Fixed missing size adjustment for offsets for %-encoded 3788 arguments processed by the post processor (Mantis #1447). -CG/SN 3789 3790 Fri Jan 23 16:57:21 MST 2009 3791 Support charset specification (ignore) after content-type 3792 when post-processing HTTP POST requests (Mantis #1443). -CG/SN 3793 3794 Fri Dec 26 23:08:04 MST 2008 3795 Fixed broken check for identical connection address. -CG 3796 Making cookie parser more RFC2109 compliant (handle 3797 spaces around key, allow value to be optional). -CG 3798 3799 Sat Dec 6 18:36:17 MST 2008 3800 Added configure option to disable checking for CURL support. 3801 Added MHD_OPTION to allow specification of custom logger. -CG 3802 3803 Tue Nov 18 01:19:53 MST 2008 3804 Removed support for untested and/or broken SSL features 3805 and (largely useless) options. -CG 3806 3807 Sun Nov 16 16:54:54 MST 2008 3808 Added option to get unparsed URI via callback. 3809 Releasing GNU libmicrohttpd 0.4.0pre1. -CG 3810 3811 Sun Nov 16 02:48:14 MST 2008 3812 Removed tons of dead code. -CG 3813 3814 Sat Nov 15 17:34:24 MST 2008 3815 Added build support for code coverage analysis. -CG 3816 3817 Sat Nov 15 00:31:33 MST 2008 3818 Removing (broken) support for HTTPS servers with 3819 anonymous (aka "no") certificates as well as 3820 various useless dead code. -CG 3821 3822 Sat Nov 8 02:18:42 MST 2008 3823 Unset TCP_CORK at the end of transmitting a response 3824 to improve performance (on systems where this is 3825 supported). -MM 3826 3827 Tue Sep 30 16:48:08 MDT 2008 3828 Make MHD useful to Cygwin users; detect IPv6 headers 3829 in configure. 3830 3831 Sun Sep 28 14:57:46 MDT 2008 3832 Unescape URIs (convert "%ef%e4%45" to "中国"). -CG 3833 3834 Wed Sep 10 22:43:59 MDT 2008 3835 Releasing GNU libmicrohttpd 0.4.0pre0. -CG 3836 3837 Wed Sep 10 21:36:06 MDT 2008 3838 Fixed data race on closing sockets during 3839 shutdown (in one-thread-per-connection mode). -CG 3840 3841 Thu Sep 4 23:37:18 MDT 2008 3842 Fixed some boundary issues with processing 3843 chunked requests; removed memmove from a 3844 number of spots, in favor of using an index into 3845 the current buffer instead. -GS 3846 3847 Sun Aug 24 13:05:41 MDT 2008 3848 Now handling clients returning 0 from response callback 3849 as specified in the documentation (abort if internal 3850 select is used, retry immediately if a thread per 3851 connection is used). -CG 3852 3853 Sun Aug 24 12:44:43 MDT 2008 3854 Added missing reason phrase. -SG 3855 3856 Sun Aug 24 10:33:22 MDT 2008 3857 Fixed bug where MHD failed to transmit the response when 3858 the client decided not to send "100 CONTINUE" during 3859 a PUT/POST request. -CG 3860 3861 Wed Jul 16 18:54:03 MDT 2008 3862 Fixed bug generating chunked responses with chunk sizes 3863 greater than 0xFFFFFF (would cause protocol violations). -CG 3864 3865 Mon May 26 13:28:57 MDT 2008 3866 Updated and improved documentation. 3867 Releasing GNU libmicrohttpd 0.3.1. -CG 3868 3869 Fri May 23 16:54:41 MDT 2008 3870 Fixed issue with postprocessor not handling URI-encoded 3871 values of more than 1024 bytes correctly. -CG 3872 3873 Mon May 5 09:18:29 MDT 2008 3874 Fixed date header (was off by 1900 years). -JP 3875 3876 Sun Apr 13 01:06:20 MDT 2008 3877 Releasing GNU libmicrohttpd 0.3.0. -CG 3878 3879 Sat Apr 12 21:34:26 MDT 2008 3880 Generate an internal server error if the programmer fails 3881 to handle upload data correctly. Tweaked testcases to 3882 avoid running into the problem in the testcases. 3883 Completed zzuf-based fuzzing testcases. -CG 3884 3885 Sat Apr 12 15:14:05 MDT 2008 3886 Restructured the code (curl-testcases and zzuf testcases 3887 are now in different directories; code examples are in 3888 src/examples/). 3889 Fixed a problem (introduced in 0.2.3) with handling very 3890 large requests (the code did not return proper error code). 3891 If "--enable-messages" is specified, the code now includes 3892 reasonable default HTML webpages for various built-in 3893 errors (such as request too large and malformed requests). 3894 Without that flag, the webpages returned will still be 3895 empty. 3896 Started to add zzuf-based fuzzing-testcases (these require 3897 the zzuf and socat binaries to be installed). -CG 3898 3899 Fri Apr 11 20:20:34 MDT 2008 3900 I hereby dub libmicrohttpd a GNU package. -Richard Stallman 3901 3902 Sat Mar 29 22:36:09 MDT 2008 3903 Fixed bugs in handling of malformed HTTP requests 3904 (causing either NULL dereferences or connections to 3905 persist until time-out, if any). -CG 3906 3907 Updated and integrated TexInfo documentation. -CG 3908 3909 Tue Mar 25 13:40:53 MDT 2008 3910 Prevent multi-part post-processor from going to error 3911 state when the input buffer is full and current token 3912 just changes processor state without consuming any data. 3913 Also, the original implementation would not consume any 3914 input in process_value_to_boundary if there is no new 3915 line character in sight. -AS 3916 3917 Remove checks for request method after it finished writing 3918 response footers as it's only _pipelined_ requests that 3919 should not be allowed after POST or PUT requests. Reusing 3920 the existing connection is perfectly ok though. And there 3921 is no reliable way to detect pipelining on server side 3922 anyway so it is the client's responsibility to not send new 3923 data before it gets a response after a POST operation. -AS 3924 3925 Clarified license in man page. Releasing 3926 libmicrohttpd 0.2.3 -CG 3927 3928 Sat Mar 22 01:12:38 MDT 2008 3929 Releasing libmicrohttpd 0.2.2. -CG 3930 3931 Mon Feb 25 19:13:53 MST 2008 3932 Fixed a problem with sockets closed for reading ending up 3933 in the read set under certain circumstances. -CG 3934 3935 Wed Jan 30 23:15:44 MST 2008 3936 Added support for nested multiparts to post processor. 3937 Made sure that MHD does not allow pipelining for methods 3938 other than HEAD and GET (and of course still also only 3939 allows it for http 1.1). Releasing libmicrohttpd 0.2.1. -CG 3940 3941 Mon Jan 21 11:59:46 MST 2008 3942 Added option to limit number of concurrent connections 3943 accepted from the same IP address. -CG 3944 3945 Fri Jan 4 16:02:08 MST 2008 3946 Fix to properly close connection if application signals 3947 problem handling the request. - AS 3948 3949 Wed Jan 2 16:41:05 MST 2008 3950 Improvements and bugfixes to post processor implementation. - AS 3951 3952 Wed Dec 19 21:12:04 MST 2007 3953 Implemented chunked (HTTP 1.1) downloads (including 3954 sending of HTTP footers). Also allowed queuing of 3955 a response early to suppress the otherwise automatic 3956 "100 CONTINUE" response. Removed the mostly useless 3957 "(un)register handler" methods from the API. Changed 3958 the internal implementation to use a finite state 3959 machine (cleaner code, slightly less memory consumption). 3960 Releasing libmicrohttpd 0.2.0. - CG 3961 3962 Sun Dec 16 03:24:13 MST 2007 3963 Implemented handling of chunked (HTTP 1.1) uploads. 3964 Note that the upload callback must be able to 3965 process chunks in the size uploaded by the client, 3966 MHD will not "join" small chunks into a big 3967 contiguous block of memory (even if buffer space 3968 would be available). - CG 3969 3970 Wed Dec 5 21:39:35 MST 2007 3971 Fixed race in multi-threaded server mode. 3972 Fixed handling of POST data when receiving a 3973 "Connection: close" header (#1296). 3974 Releasing libmicrohttpd 0.1.2. - CG 3975 3976 Sat Nov 17 00:55:24 MST 2007 3977 Fixed off-by-one in error message string matching. 3978 Added code to avoid generating SIGPIPE on platforms 3979 where this is possible (everywhere else, the main 3980 application should install a handler for SIGPIPE). 3981 3982 Thu Oct 11 11:02:06 MDT 2007 3983 Releasing libmicrohttpd 0.1.1. - CG 3984 3985 Thu Oct 11 10:09:12 MDT 2007 3986 Fixing response to include HTTP status message. - EG 3987 3988 Thu Sep 27 10:19:46 MDT 2007 3989 Fixing parsing of "%xx" in URLs with GET arguments. - eglaysher 3990 3991 Sun Sep 9 14:32:23 MDT 2007 3992 Added option to compile debug/warning messages; 3993 error messages are now disabled by default. 3994 Modified linker option for GNU LD to not export 3995 non-public symbols (further reduces binary size). 3996 Releasing libmicrohttpd 0.1.0. - CG 3997 3998 Sat Sep 8 21:54:04 MDT 2007 3999 Extended API to allow for incremental POST 4000 processing. The new API is binary-compatible 4001 as long as the app does not handle POSTs, but 4002 since that maybe the case, we're strictly speaking 4003 breaking backwards compatibility (since url-encoded 4004 POST data is no longer obtained the same way). - CG 4005 4006 Thu Aug 30 00:59:24 MDT 2007 4007 Improving API to allow clients to associate state 4008 with a connection and to be notified about request 4009 termination (this is a binary-compatible change). - CG 4010 Fixed compile errors under OS X. - HL 4011 4012 Sun Aug 26 03:11:46 MDT 2007 4013 Added MHD_USE_PEDANTIC_CHECKS option which enforces 4014 receiving a "Host:" header in HTTP 1.1 (and sends a 4015 HTTP 400 status back if this is violated). - CG 4016 4017 Tue Aug 21 01:01:46 MDT 2007 4018 Fixing assertion failure that occurred when a client 4019 closed the connection after sending some data but 4020 not the full headers. - CG 4021 4022 Sat Aug 18 03:06:09 MDT 2007 4023 Check for out of memory when adding headers to 4024 responses. Check for NULL key when looking 4025 for headers. If a content reader callback 4026 for a response returns zero (has no data yet), 4027 do not possibly fall into busy waiting when 4028 using external select (with internal selects 4029 we have no choice). - CG 4030 4031 Wed Aug 15 01:46:44 MDT 2007 4032 Extending API to allow timeout of connections. 4033 Changed API (MHD_create_response_from_callback) to 4034 allow user to specify IO buffer size. 4035 Improved error handling. 4036 Released libmicrohttpd 0.0.3. - CG 4037 4038 Tue Aug 14 19:45:49 MDT 2007 4039 Changed license to LGPL (with consent from all contributors). 4040 Released libmicrohttpd 0.0.2. - CG 4041 4042 Sun Aug 12 00:09:26 MDT 2007 4043 Released libmicrohttpd 0.0.1. - CG 4044 4045 Fri Aug 10 17:31:23 MDT 2007 4046 Fixed problems with handling of responses created from 4047 callbacks. Allowing accept policy callback to be NULL 4048 (to accept from all). Added minimal fileserver example. 4049 Only send 100 continue header when specifically requested. - CG 4050 4051 Wed Aug 8 01:46:06 MDT 2007 4052 Added pool allocation and connection limitations (total 4053 number and memory size). Released libmicrohttpd 0.0.0. - CG 4054 4055 Tue Jan 9 20:52:48 MST 2007 4056 Created project build files and updated API. - CG