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