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