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