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