1Wed May 13 11:49:09 CEST 2015 2 Releasing libmicrohttpd 0.9.42. -CG 3 4Wed May 13 11:33:59 CEST 2015 5 Fix off-by-one in MHD_start_daemon_va() error handling logic 6 when initialization of threads for thread pool fails for some 7 reason. -CG/JC 8 9Thu May 7 17:05:46 CEST 2015 10 Add support for poll() in W32. -EG 11 12Wed May 6 18:07:38 CEST 2015 13 Fix #3784: actually implement MHD_CONNECTION_INFO_SOCKET_CONTEXT. -asherkin 14 15Thu Apr 30 00:03::49 CEST 2015 16 Releasing libmicrohttpd 0.9.41. -CG 17 18Thu Apr 30 00:02:33 CEST 2015 19 Fix issue where resumed connections would not continue 20 unless other requests are active in certain 21 event-loop modes. Thanks to Mike Castillo for reporting. -CG 22 23Wed Apr 15 03:16:18 CEST 2015 24 Fixing issue #3753 (testcase issue). -CG 25 26Wed Apr 15 00:30:34 CEST 2015 27 Fix looping issue when using MHD_USE_POLL_INTERNALLY 28 and a client times out. -LB 29 30Sun Apr 12 21:48:50 CEST 2015 31 Fix looping issue when combining MHD_USE_EPOLL_LINUX_ONLY 32 with HTTPS and slow clients. -CG 33 34Fri Apr 10 22:02:27 CEST 2015 35 Fix logic to add "Connection: Close" that was broken in 0.9.38 36 when adding MHD_RF_HTTP_VERSION_1_0_ONLY. -CG 37 38Fri Apr 10 00:38:40 CEST 2015 39 Ensure fast termination in MHD_USE_THREAD_PER_CONNECTION 40 mode on W32 by using signal pipe. -CG 41 42Thu Apr 9 09:01:15 CEST 2015 43 Fixing issue with undrained signal pipe when using 44 MHD_USE_SELECT_INTERNALLY and MHD_USE_POLL in combination 45 with MHD_resume_connection(), causing 100% CPU usage. -DD 46 47Tue Apr 7 00:12:36 CEST 2015 48 Releasing libmicrohttpd 0.9.40. -CG 49 50Sat Apr 4 18:28:24 CEST 2015 51 Fix potential deadlock issue in MHD_USE_THREAD_PER_CONNECTION 52 mode if shutdown is initiated while connections are active. -CG 53 54Sat Apr 4 17:48:13 CEST 2015 55 Fix issue in thread-pool mode where a MHD_stop_daemon() 56 might not reach threads that stopped listening because 57 we hit the maximum number of concurrent connections and 58 the option MHD_USE_PIPE_FOR_SHUTDOWN was also not used. 59 Testcase added as well. -CG 60 61Fri Apr 3 12:55:31 CEST 2015 62 Update HTTPS testcases to avoid SSLv3, as SSLv3 is dead. 63 64Fri Apr 3 12:25:28 CEST 2015 65 Do not enforce FD_SETSIZE-limit on worker control 66 pipe when using MHD_USE_EPOLL_LINUX_ONLY (#3751). -MH/CG 67 68Tue Mar 31 10:28:26 CEST 2015 69 Adding MHD_OPTION_NOTIFY_CONNECTION, 70 MHD_CONNECTION_NOTIFY_STARTED, 71 MHD_CONNECTION_NOTIFY_CLOSED and 72 MHD_CONNECTION_INFO_SOCKET_CONTEXT to allow 73 applications to trigger operations when TCP 74 connections start or end, instead of just 75 exposing HTTP requests starting and ending. -RG/CG 76 77Thu Feb 26 09:55:43 CET 2015 78 Fixing bug that prevented MHD_OPTION_HTTPS_MEM_DHPARAMS 79 from working within a MHD_OPTION_ARRAY. -DD 80 81Sun Feb 8 01:24:38 CET 2015 82 Adding MHD_OPTION_HTTPS_KEY_PASSWORD as proposed by 83 Andrew Basile. -CG/AB 84 85Wed Feb 4 20:34:22 CET 2015 86 Fix issue where for HTTP/1.0-clients that set 87 Connection: Keep-Alive header a response of 88 indefinite size was generated with chunked encoding. -CG 89 90Sun Jan 18 20:09:06 CET 2015 91 Fix potential infinite loop on shutdown in multi-threaded mode 92 under certain conditions. -CG 93 94Mon Dec 22 16:33:18 CET 2014 95 Releasing 0.9.39. -CG 96 97Mon Dec 22 13:02:36 CET 2014 98 Fix generated compiler flags for Solaris Studio linker (#3584). -CG 99 100Sat Dec 20 00:35:40 CET 2014 101 Adding MHD_http_unescape() to public API (#3585). -CG 102 Updating documentation to document 103 MHD_is_feature_supported(). -CG 104 105Thu Dec 4 00:43:10 CET 2014 106 If "Connection: upgrade" is requested, do not add 107 "Connection: Keep-Alive" in the response. -GJ 108 109Tue Nov 18 13:52:29 CET 2014 110 Call MHD_cleanup_connections() during MHD_DAEMON_INFO_CURRENT_CONNECTIONS 111 processing for more accurate results. -MS 112 113Wed Oct 29 20:45:21 CET 2014 114 Adding MHD_OPTION_LISTENING_ADDRESS_REUSE option allowing clients 115 to force allowing re-use of the address:port combination 116 (SO_REUSEPORT). -MS 117 118Wed Oct 29 16:27:05 CET 2014 119 Adding MHD_DAEMON_INFO_CURRENT_CONNECTIONS to allow clients 120 to query the number of active connections. -MS 121 122Fri Oct 3 14:28:58 CEST 2014 123 Releasing 0.9.38. -CG 124 125Mon Sep 29 22:25:34 CEST 2014 126 Properly decode '+' in URL-encoded POST data. -CG/KM 127 128Fri Sep 12 17:32:09 CEST 2014 129 Fix --disable-dauth configure option (#3543). -doostee 130 131Thu Jun 26 21:06:04 CEST 2014 132 Fix failure to terminate 'instantly' in thread-per-connection 133 mode if there is a client with open connections. 134 Thanks to Kenneth Mastro for reporting. -CG 135 136Sun Jun 22 12:22:08 CEST 2014 137 Actually, avoid locking on response as responses must 138 not be modified in a connection-specific way; instead 139 modify the connection's data buffer to add missing 140 responses headers. If we are forced to add 141 "Connection: close", suppress output of conflicting 142 application-provided "Connection: Keep-Alive" header. -CG 143 144Sun Jun 22 00:22:08 CEST 2014 145 Lock on response if adding headers, needed if response 146 object is shared across threads and connections. -CG 147 148Thu Jun 19 17:32:32 CEST 2014 149 Ensure that listen FD is bound to epoll FD even before 150 MHD_run() is called if running with MHD_USE_EPOLL_LINUX_ONLY 151 in combination with 'external select' mode. Thanks to 152 Marcos Pindado Sebastian for reporting. -CG 153 154Sun Jun 8 15:10:44 CEST 2014 155 Add 'MHD_set_response_options' as a way to set per-response 156 flags. Add flag to force HTTP 1.0-only conservative 157 behavior, in particular suppressing adding "Connection" 158 headers. -CG 159 160Mon Jun 2 00:03:28 CEST 2014 161 Added back unescaping for URI path (#3413) but without 162 unescaping '+' (#3371) to remain compatible with 163 MHD 0.9.34 and before. Note that applications providing 164 a custom MHD_OPTION_UNESCAPE_CALLBACK are no longer expected 165 to replace '+' with ' ', as that is now done separately for 166 the locations where this transformation is appropriate. 167 Releasing 0.9.37. -CG 168 169Wed May 28 15:30:56 CEST 2014 170 Properly applying patch that was supposed to be 171 committed on "May 2 20:22:45 CEST 2014" to address 172 infinite loop (DoS) when HTTP connection is reset (#3392). -GM 173 174Sun May 25 20:18:27 CEST 2014 175 Fixed W32 build issues. -EG 176 Releasing 0.9.36. -CG 177 178Sat May 17 06:47:00 CEST 2014 179 Fix notifying client about completed request twice 180 under certain circumstances. -CG 181 182Tue May 13 18:24:37 CEST 2014 183 Fix accidental transmission of footer termination '\r\n' 184 for responses with zero byte payload and non-chunked 185 encoding (#3397). Thanks to amatus for reporting. -CG 186 187Sun May 4 11:05:26 CEST 2014 188 Fix gnutls header check to make it cross-compile aware. -BK 189 190May 2 20:22:45 CEST 2014 191 Fix infinite loop (DoS) when HTTP connection is reset (#3392). -GM 192 Fix possible issue from combination of epoll and suspend/resume 193 logic if edge trigger event is lost; also simplify logic to 194 maintain simpler invariants on the epoll state. -CG 195 Use OpenSSL cipher list "HIGH" in libmicrospdy (#3391). -CG 196 Releasing 0.9.35. -CG 197 198Thu Apr 10 09:39:38 CEST 2014 199 Removed unescaping for URI path (#3371) as '+' should not 200 be converted to space in accordance with 201 http://www.w3.org/TR/html401/appendix/notes.html#ampersands-in-uris 202 and http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 203 Note that we now also no longer convert '#38;' to '&'; if needed, 204 the application needs to apply unescaping to the path of the URI 205 itself (before, MHD unescaped '#38;' but not '&', so this 206 inconsistency was now resolved by simply not unescaping anything 207 before the first '&'). -CG 208 209Tue Apr 08 15:35:44 CET 2014 210 Added support for W32 native threads. 211 Added --with-threads=LIB configure parameter. -EG 212 213Mon Apr 7 13:25:30 CEST 2014 214 Add MHD_OPTION_HTTPS_MEM_DHPARAMS to allow applications 215 to enable PFS. -HB/CG 216 217Tue Apr 01 07:10:23 CET 2014 218 Added usage of native mutex on W32. -EG 219 220Sat Mar 29 16:12:03 CET 2014 221 Added MHD_is_feature_supported() function. -EG 222 223Thu Mar 27 14:47:54 CET 2014 224 Used larger FD_SETSIZE internally on W32. 225 Extended API to work with non-default FD_SETSIZE. -EG 226 227Tue Mar 25 12:53:55 CET 2014 228 Fix limiting by IPv6 address. -EG 229 230Tue Mar 25 09:06:13 CET 2014 231 Added more FD_SETSIZE checks. 232 Implemented FD_SETSIZE checks for W32. -EG 233 234Wed Mar 05 13:15:05 CET 2014 235 Cleanup and refactoring of configure.ac. 236 m4 macros updated. 237 Custom configure macros replaced with autoconf archive macros. 238 SPDY disabled by default on W32. 239 Changed configure flag from '--disable-pipe' to 240 '--enable-socketpair'. 241 Added configure flags '--disable-doc' and '--disable-examples'. 242 Narrowed down extrenal lib specific compiler and linker flags 243 usage. -EG 244 245Wed Feb 26 17:42:34 CET 2014 246 Refactoring of configure.ac: custom macros replaced with macros 247 from Autoconf Archive. 248 Minor corrections of configure.ac. 249 Excluded pthread flags from global flags, pthread now used only 250 where required. 251 W32: fixed .dll resource compilation with '-isystem' CPPFLAG. 252 W32: improved header compatibility with MSVC. 253 W32: now tested on Win64, compiled by MinGW-w64. -EG 254 255Mon Feb 24 23:13:53 CET 2014 256 Added support for TCP FASTOPEN. -SHT 257 Releasing 0.9.34. -CG 258 259Thu Feb 20 14:17:05 CET 2014 260 W32: Added creation of libmicrohttpd.lib, libmicrohttpd.def, 261 libmicrohttpd.exp and libmicrohttpd-static.lib for easy use 262 compiled MHD with MSVC. 263 W32: Use MS lib.exe tool if available for creating MSVC staff. 264 W32: Added .dll information resource. -EG 265 266Tue Feb 18 19:46:45 CET 2014 267 Removed dependency on plibc for simpler compilation for W32. 268 Added configure option "--disable-pipes" to use socketpairs 269 instead of pipes for signalling to child threads. Pipes are 270 always disabled on W32. 271 Some code refactoring. -EG 272 273Sat Feb 8 15:08:35 CET 2014 274 Corrected some uses of 'int' vs. 'size_t'. -EG/CG 275 276Wed Jan 22 09:44:33 CET 2014 277 MHD_USE_DUAL_STACK in libmicrohttpd currently just *inhibits 278 setting* the IPV6_V6ONLY socket option, but per Microsoft's 279 documentation the default on Windows is that this is enabled, thus 280 MHD_USE_DUAL_STACK will not work (since it leaves the 281 default). libmicrohttpd should probably just unconditionally set 282 IPV6_V6ONLY to the desired value when the option is available. -LJ 283 284Wed Jan 1 21:38:18 CET 2014 285 Allow Keep-Alive with HTTP 1.0 (if explicitly requested), 286 and automatically set "Connection: Keep-Alive" in response 287 in this case as well. -CG 288 289Tue Dec 24 12:27:39 CET 2013 290 Adding explicit annotations to hide symbols that are not for 291 export in the C code (gcc 4.0 or higher only). -CG 292 293Sun Dec 22 14:54:30 CET 2013 294 Adding a few lines to avoid warnings from picky compilers. -CG 295 296Sat Dec 21 17:26:08 CET 2013 297 Fixed an issue with a missing argument in the postexample. 298 Fixed issue with bogus offset increment involving sendfile 299 on GNU/Linux. Adding support for SNI. 300 Releasing 0.9.33. -CG 301 302Mon Dec 9 21:41:57 CET 2013 303 Fix for per-worker daemon pipes enabled with 304 MHD_USE_SUSPEND_RESUME that were not closed in 305 MHD_stop_daemon. -MH 306 307Sat Dec 7 00:44:49 CET 2013 308 Fixing warnings and build issue if --disable-https is given 309 to configure. -CG 310 311Tue Dec 3 21:25:56 CET 2013 312 Security fix: do not read past 0-terminator when unescaping 313 strings (thanks to Florian Weimer for reporting). 314 Releasing 0.9.32. -CG 315 316Tue Dec 3 21:05:38 CET 2013 317 Signaling n times for shutdown works, but for resume we need to 318 wake up the correct daemon. Even if we signal n times in that 319 case also, there's no guarantee that some daemon can't run 320 through its select loop more than once before the daemon we want 321 to wake up gets a chance to read. Thus we need a signal pipe 322 per thread in the thread pool IF MHD_suspend_connection is used. 323 This introduces a new flag MHD_USE_SUSPEND_RESUME to add those 324 additional pipes and only allow MHD_suspend_connection to be 325 used in conjunction with this flag. 326 327 Also, as MHD_resume_connection() will be called on a non-daemon 328 thread, but none of the queue insert/delete calls are thread safe, 329 we need to be concerned about (a) corrupting the queue, and (b) 330 having to add mutex protection around every access to the queues, 331 including loops through timer queues, etc. This wasn't a problem 332 before adding resume; even suspend should be safe since it happens 333 in a callback from the daemon. 334 335 I think it's easier to (a) have MHD_suspend_connection() move the 336 connection to a suspended queue, (b) have MHD_resume_connection() 337 mark the connection as resuming, and then (c) do all the actual 338 queue manipulations in MHD_select (poll, epoll, etc.) to move the 339 resumed connections back to their normal queues, in response to 340 the wake up. The changes are simpler & cleaner. There is a cost to 341 the basic select loop that is avoided by making suspend/resume a 342 startup option. The per-worker pipes can then also be enabled only 343 with that option set. -MH 344 345Fri Nov 29 20:17:03 CET 2013 346 Eliminating theoretical stack overflow by limiting length 347 of URIs in authentication headers to 32k (only applicable 348 if the application explicitly raised the memroy limits, 349 and only applies to MHD_digest_auth_check). Issue was 350 reported by Florian Weimer. -CG 351 352Tue Nov 26 01:26:15 CET 2013 353 Fix race on shutdown signal with thread pool on non-Linux 354 systems by signalling n times for n threads. -CG 355 356Sun Nov 24 13:41:15 CET 2013 357 Introduce state to mark connections in suspended state (with 358 epoll); add missing locking operations in MHD_suspend_connection. 359 Fix definition of MHD_TLS_CONNECTION_INIT. -MH/JC 360 361Wed Oct 30 09:34:20 CET 2013 362 Fixing issue in PostProcessor when getting partial boundary 363 at the beginning, expanding test suite. -CG 364 365Sun Oct 27 15:19:44 CET 2013 366 Implementing faster processing of upload data in multipart 367 encoding (thanks to performance analysis by Adam Homolya). -CG 368 369Thu Oct 24 10:40:03 CEST 2013 370 Adding support for connection flow control via 371 MHD_suspend_connection and MHD_resume_connection. -CG 372 373Sat Oct 19 16:40:32 CEST 2013 374 Releasing libmicrohttpd 0.9.31. -CG 375 376Mon Sep 23 20:24:48 CEST 2013 377 Fixing build issues on OS X with CLOCK_MONOTONIC not being 378 implemented on OS X. -CG 379 380Mon Sep 23 14:15:00 CEST 2013 381 Make libmicrohttpd play nicely with upcoming libgcrypt 1.6.0. -CG 382 383Fri Sep 20 17:01:37 CEST 2013 384 Improved configure checks for cURL. -CG 385 386Wed Sep 18 18:29:24 CEST 2013 387 Signal connection termination as OK (and not as ERROR) if the 388 stream was terminated by the callback returning 389 MHD_CONTENT_READER_END_OF_STREAM. Also, release response 390 mutex before calling the termination callback, to avoid 391 possible deadlock if the client destroys the response in 392 the termination callback (due to non-recursiveness of the 393 lock). -CG 394 395Wed Sep 18 14:31:35 CEST 2013 396 Adding #define MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN. -CG 397 398Tue Sep 17 21:32:47 CEST 2013 399 Also pass MHD connection handle in URI log callback. -CG 400 401Fri Sep 6 10:00:44 CEST 2013 402 Improved check for proper OpenSSL version for 403 libmicrospdy. -CG 404 405Wed Sep 4 17:23:15 CEST 2013 406 Set IPV6_V6ONLY socket option correctly when IPv6 is 407 enabled (MHD_USE_IPv6) but not dual stack 408 (MHD_USE_DUAL_STACK) -MW 409 410Mon Sep 2 22:59:45 CEST 2013 411 Fix use-after-free in epoll()-mode on read error. 412 Releasing libmicrohttpd 0.9.30. -CG 413 414Sun Sep 1 21:55:53 CEST 2013 415 Fixing build issues on FreeBSD. -CG 416 417Fri Aug 30 13:53:04 CEST 2013 418 Started to implement #3008 (RFC 2616, section 8.1.4 419 says HTTP server SHOULD terminate connection if the 420 client closes it for writing via TCP FIN, so we should 421 continue to try to read and react differently 422 if recv() returns zero). -CG 423 424Wed Aug 28 18:40:47 CEST 2013 425 Fix #3007 (build issue if messages are disabled). -CG 426 427Tue Aug 27 18:39:08 CEST 2013 428 Fix build issue if SOCK_NONBLOCK/EPOLL_CLOEXEC are not 429 defined (as is the case on older glibc versions). -CG 430 431Fri Aug 23 14:28:02 CEST 2013 432 Releasing libmicrohttpd 0.9.29. -CG 433 434Mon Aug 12 23:51:18 CEST 2013 435 Updated manual, documenting W32 select/shutdown issue. -CG 436 437Sat Aug 10 21:01:18 CEST 2013 438 Fixed #2983. -CG 439 440Sat Aug 10 20:39:27 CEST 2013 441 Use 'errno' to indicate why 'MHD_add_connection' failed 442 (#2984). -CG 443 444Sat Aug 10 17:31:31 CEST 2013 445 Disable use of 'shutdown' on W32 always as winsock 446 doesn't properly behave with half-closed connections 447 (see http://www.chilkatsoft.com/p/p_299.asp). -CG/LRN 448 449Thu Aug 8 07:55:07 CEST 2013 450 Fixing issue with pipelining not working as desired. -CG 451 452Wed Aug 7 08:17:40 CEST 2013 453 Removing dependency on liberty (on W32). -MC 454 455Fri Aug 2 20:55:47 CEST 2013 456 Fix HTTP 1.1 compliance with respect to not returning 457 content-length headers for successful "CONNECT" requests. 458 Note that for unsuccessful "CONNECT" requests with an 459 empty response body, users must now explicitly set the 460 content-length header. -CG 461 462Sun Jul 28 16:35:17 CEST 2013 463 Fixing build issue (missing #ifdef) in conjunction with 464 --disable-messages. -blueness 465 466Sat Jul 20 12:35:40 CEST 2013 467 Fixing combination of MHD_USE_SSL and MHD_USE_EPOLL_LINUX_ONLY. -CG 468 469Fri Jul 19 09:57:27 CEST 2013 470 Fix issue where connections were not cleaned up when 471 'MHD_run_from_select' was used. Adding experimental 472 TURBO mode. 473 Releasing libmicrohttpd 0.9.28. -CG 474 475Sun Jul 14 19:57:56 CEST 2013 476 Removing 'shutdown' calls that happen just before close or 477 that are for read-only and for a client that has already 478 stopped sending anyway (thus reducing number of system calls 479 slightly). -CG 480 481Sun Jul 14 19:37:37 CEST 2013 482 Name MHD worker threads on glibc >= 2.12. -,L4X[o](B 483 484Fri Jul 5 12:05:01 CEST 2013 485 Added MHD_OPTION_CONNECTION_MEMORY_INCREMENT to allow users 486 to specify a custom value for incrementing read buffer 487 sizes (#2899). -MH 488 489Fri Jun 28 14:05:15 CEST 2013 490 If we shutdown connection for reading on POST due to error, 491 really do not process further requests even if we already 492 read the next request from the connection. Furthermore, do 493 not shutdown connections for reading on GET/HEAD/etc. just 494 because the application queued a response immediately --- 495 reserve that behavior for PUT/POST. -CG 496 497Tue Jun 25 15:08:30 CEST 2013 498 Added option 'MHD_USE_DUAL_STACK' to support a single 499 daemon for IPv4 and IPv6 without the application having 500 to do the binding. -CG 501 502Mon Jun 24 22:33:34 CEST 2013 503 Finished integration with epoll, including benchmarking and 504 documentation. -CG 505 506Sun Jun 23 15:28:13 CEST 2013 507 Added option 'MHD_USE_PIPE_FOR_SHUTDOWN' to cleanly support 508 'MHD_quiesce_daemon' with thread pools and per-connection 509 threads (we then need a pipe for shutdown, but if 510 'MHD_quiesce_daemon' is not used, we do not want to 511 require the use of a pipe; introducing the pipe after 512 the threads have been started can also fail, so the 513 application needs to tell us early on). -CG 514 515Sat Jun 22 20:24:17 CEST 2013 516 Removed locking calls for thread modes that do not need them. 517 Reorganized way to obtain connection's event loop state. 518 Added sorted XDLL for connections with default timeout to 519 avoid having to loop over all connections to determine current 520 timeout (custom per-connection timeouts are in another list 521 which is iterated each time). -CG 522 523Fri Jun 21 20:55:48 CEST 2013 524 Preparing build system and tests for epoll support. -CG 525 526Tue May 21 14:34:36 CEST 2013 527 Improving configure tests for OpenSSL and spdylay to 528 avoid build errors in libmicrospdy code if those libraries 529 are not present. -CG 530 531Mon May 20 12:29:35 CEST 2013 532 Added MHD_CONNECTION_INFO_CONNECTION_FD to allow clients 533 direct access to connection socket; useful for COMET 534 applications that need to disable NAGLE (#2886). -CG 535 536Mon May 15 12:49:01 CEST 2013 537 Fixing #2859. -CG 538 539Sun May 5 21:44:08 CEST 2013 540 Merged libmicrospdy code with libmicrohttpd build system 541 (no major changes to libmicrospdy itself yet). -CG 542 543Sun May 5 20:13:59 CEST 2013 544 Improved documentation and code style a bit. 545 Releasing libmicrohttpd 0.9.27. -CG 546 547Thu Apr 25 13:08:10 CEST 2013 548 Added 'MHD_quiesce_daemon' to allow application to stop 549 processing new incoming connections while finishing 550 ongoing requests. -CG 551 552Sun Mar 31 23:17:13 CEST 2013 553 Added MHD demonstration code 'src/examples/demo.c'. -CG 554 555Sun Mar 31 20:27:48 CEST 2013 556 Adding new API call 'MHD_run_from_select' to allow programs 557 running in 'external select mode' to reduce the number of 558 'select' calls by a factor of two. -CG 559 560Sun Mar 31 20:03:48 CEST 2013 561 Performance improvements, updated documentation. 562 Make better use of available memory pool memory for 563 reading (especially important for large POST uploads); 564 improve post processor speed by internally adjusting the 565 buffer size by 4 bytes to ensure "round" IO sizes given 566 a "round" post processor buffer size argument. Note 567 that applications that previously added 4 bytes to the 568 post processor buffer size might now perform worse. 569 Using the new 'demo' example, POST upload speed 570 increased from ~90 MB/s to ~120 MB/s for a large file 571 (note that the improvement comes from better aligned 572 disk IO; without disk IO, the speed was (and remains) 573 at ~1500 MB/s on this system). -CG 574 575Fri Mar 29 16:44:29 CET 2013 576 Renaming testcases to consistenly begin with test_; 577 Changing build system to build examples in doc/. 578 Releasing libmicrohttpd 0.9.26. -CG 579 580Thu Mar 7 10:13:08 CET 2013 581 Fix bug in postprocessor URL parser (#2818). -jgresula 582 583Mon Mar 4 13:45:35 CET 2013 584 Fix dropping of SSL connections if uptime is less than 585 MHD_OPTION_CONNECTION_TIMEOUT due to integer underflow (#2802). -greed 586 587Fri Mar 1 01:11:57 CET 2013 588 Fully initialize cleanup mutex struct for each thread (#2803). -Ulion 589 590Wed Feb 6 01:51:52 CET 2013 591 Releasing libmicrohttpd 0.9.25. -CG 592 593Fri Feb 1 10:19:44 CET 2013 594 Handle case where POST data contains "key=" without value 595 at the end and is not new-line terminated by invoking the 596 callback with the "key" during MHD_destroy_post_processor (#2733). -CG 597 598Wed Jan 30 13:09:30 CET 2013 599 Adding more 'const' to allow keeping of reason phrases in ROM. 600 (see mailinglist). -CG/MV 601 602Tue Jan 29 21:27:56 CET 2013 603 Make code work with PlibC 0.1.7 (which removed plibc_init_utf8). 604 Only relevant for W32. Fixes #2734. -CG 605 606Sat Jan 26 21:26:48 CET 2013 607 Fixing regression introduced Jan 6 (test on data_size instead 608 of total_size. -CG 609 610Fri Jan 11 23:21:55 CET 2013 611 Also return MHD_YES from MHD_destroy_post_processor if 612 we did not get '\r\n' in the upload. -CG 613 614Sun Jan 6 21:10:13 CET 2013 615 Enable use of "MHD_create_response_from_callback" with 616 body size of zero. -CG 617 618Tue Dec 25 16:16:30 CET 2012 619 Releasing libmicrohttpd 0.9.24. -CG 620 621Tue Dec 18 21:18:11 CET 2012 622 Given both 'chunked' encoding and 'content-length', 623 ignore the 'content-length' header as per RFC. -ES 624 625Thu Dec 6 10:14:44 CET 2012 626 Force adding "Connection: close" header to response if 627 client asked for connection to be closed (so far, we 628 did close the connection, but did not send the 629 "Connection: close" header explicitly, which some clients 630 seem to dislike. (See discussion on mailinglist). 631 Also, if there is already a transfer-encoding other 632 than 'chunked' set by the application, we also now close 633 the connection if the response is of unknown size. -CG 634 635Wed Dec 5 19:22:26 CET 2012 636 Fixing parameter loss of POST parameters with IE8 and Chrome 637 in the PostProcessor as the code failed to properly handle 638 partial data. -MM 639 640Fri Nov 9 21:36:46 CET 2012 641 Releasing libmicrohttpd 0.9.23. -CG 642 643Thu Nov 8 22:32:59 CET 2012 644 Ship our own version of tsearch and friends if not provided by platform, 645 so that MHD works nicely on Android. -JJ 646 647Mon Oct 22 13:05:01 CEST 2012 648 Immediately do a second read if we get a full buffer from 649 TLS as there might be more data in the TLS buffers even if 650 there is no activity on the socket. -CG 651 652Tue Oct 16 01:33:55 CEST 2012 653 Consistently use "#ifdef" and "#ifndef" WINDOWS, and not 654 sometimes "#if". -CG 655 656Sat Sep 1 20:51:21 CEST 2012 657 Releasing libmicrohttpd 0.9.22. -CG 658 659Sat Sep 1 20:38:35 CEST 2012 660 Adding configure option to allow selecting support for basic 661 and digest authentication separately (#2525). -CG 662 663Thu Aug 30 21:12:56 CEST 2012 664 Fixing URI argument parsing when string contained keys without 665 equals sign (i.e. '&bar&') in the middle of the argument (#2531). 666 Also replacing 'strstr' with more efficient 'strchr' when 667 possible. -CG 668 669Tue Aug 21 14:36:17 CEST 2012 670 Use "int" instead of "enum X" in 'va_arg' calls to be nice to 671 compilers that use 'short' (i.e. 8 or 16 bit) enums but pass 672 enums still as "int" in varargs. (See discussion on mailinglist). -CG/MV 673 674Tue Aug 21 14:31:54 CEST 2012 675 Reduce default size in post processor buffer (for small systems; 676 performance impact on large systems should be minimal). -CG/MV 677 678Thu Jul 19 21:48:42 CEST 2012 679 Releasing libmicrohttpd 0.9.21. -CG 680 681Thu Jul 19 11:34:50 CEST 2012 682 Consistently use 'panic' function instead of ever directly 683 calling 'abort ()'. Eliminating unused mutex in SSL mode. 684 Removing check in testcases that fails depending on which 685 version of gnuTLS is involved. -CG 686 687Tue Jul 17 23:50:43 CEST 2012 688 Stylistic code clean up. Allowing lookup up of trailing values 689 without keys using "MHD_lookup_connection_value" with a key of NULL 690 (thus achieving consistency with the existing iterator API). -CG 691 692Tue Jul 17 22:37:05 CEST 2012 693 Adding experimental (!) code for MHD operation without listen socket. -CG 694 695Tue Jul 17 22:15:57 CEST 2012 696 Making sendfile test pass again on non-W32 systems. -CG 697 698Mon Jul 9 13:43:35 CEST 2012 699 Misc changes to allow testcases to pass on W32. -LRN 700 701Sun Jul 8 15:05:31 CEST 2012 702 Misc changes to fix build on W32. -LRN 703 704Fri Jun 22 11:31:25 CEST 2012 705 Make sure sockets opened by MHD are non-inheritable by default (#2414). -CG 706 707Tue Jun 19 19:44:53 CEST 2012 708 Change various uses of time(NULL) to new MHD_monotonic_time() function to 709 make timeouts immune to the system real time clock changing. -MC 710 711Tue Jun 12 21:35:00 CEST 2012 712 Adding 451 status code. -CG 713 714Thu May 31 13:33:45 CEST 2012 715 Releasing 0.9.20. -CG 716 717Tue May 29 13:55:03 CEST 2012 718 Fixed some testcase build issues with disabled post processor. -CG 719 720Tue May 29 13:45:15 CEST 2012 721 Fixing bug where MHD failed to call connection termination callback 722 if a connection either was closed due to read errors or if MHD 723 was terminated with certain threading models. Added new 724 termination code MHD_REQUEST_TERMINATED_READ_ERROR for the 725 read-termination cause. -CG 726 727Thu Mar 15 23:47:53 CET 2012 728 Eliminating code clone in tls connection read/write handlers. -CG 729 730Fri Mar 2 23:44:56 CET 2012 731 Making sure that MHD_get_connection_values iterates over the 732 headers in the order in which they were received. -CG 733 734Wed Feb 1 09:39:12 CET 2012 735 Fixed compilation problem on MinGW. -BS 736 737Tue Jan 31 17:50:24 CET 2012 738 Releasing 0.9.19. -CG 739 740Mon Jan 30 20:02:34 CET 2012 741 Fixed handling of garbage prior to first multipart boundary 742 (#2126). -woof 743 744Fri Jan 27 11:00:43 CET 2012 745 Fixed postprocessor failure for applications that enclosed boundary 746 in quotes (#2120). -woof 747 748Tue Jan 24 16:07:53 CET 2012 749 Added configure check for sin_len in 'struct sockaddr' and adding 750 code to initialize this field if it exists now. -CG 751 752Mon Jan 23 14:02:26 CET 2012 753 Fixed double-free if specified cipher was not valid (during 754 MHD_daemon_start). Releasing 0.9.18. -CG 755 756Thu Jan 19 22:11:12 CET 2012 757 Switch to non-blocking sockets for all systems but Cygwin 758 (we already used non-blocking sockets for GNU/Linux); also 759 use non-blocking sockets on Cygwin for HTTPS as this is 760 required to avoid DoS-by-partial-record via gnutls. On 761 Cygwin, #1824 implies that we need to use blocking sockets 762 for HTTP on Cygwin for now. -CG 763 764Thu Jan 19 17:46:05 CET 2012 765 Fixing use of uninitialized 'earliest_deadline' variable in 766 MHD_get_timeout which can lead to returning an incorrect 767 (too early) timeout (#2085). -tclaveirole 768 769Thu Jan 19 13:31:27 CET 2012 770 Fixing digest authentication for GET requests with URI arguments 771 (#2059). -CG 772 773Sat Jan 7 17:30:48 CET 2012 774 Digest authentication expects nonce count in base 16, not base 10 775 (#2061). -tclaveirole 776 777Thu Jan 5 22:01:37 CET 2012 778 Partial fix for #2059, digest authentication with GET arguments. -CG 779 780Thu Dec 1 15:22:57 CET 2011 781 Updated authorization_example.c to actually demonstrate the current 782 MHD API. -SG 783 784Mon Nov 21 18:51:30 CET 2011 785 Added option to suppress generation of the 'Date:' header to be 786 used on embedded systems without RTC. Documented the new option 787 and the configure options. -CG 788 789Sat Nov 19 20:08:40 CET 2011 790 Releasing 0.9.17. -CG 791 792Fri Nov 18 20:17:22 CET 2011 793 Fixing return value of MHD_get_timeout if timeouts are not in use. 794 (#1914). -rboulton 795 796Sun Nov 13 13:34:29 CET 2011 797 Trying to fix accidental addition of a "Connection: close" footer 798 under certain (rare) circumstances. -CG 799 800Fri Nov 4 10:03:00 CET 2011 801 Small updates to the tutorial. 802 Releasing 0.9.16. -CG 803 804Thu Nov 3 10:14:59 CET 2011 805 shutdown(RDWR) fails on OS X after shutdown(RD), so only use 806 shutdown(WR) if we already closed the socket for reading (otherwise 807 OS X might not do shutdown (WR) at all). -CG 808 809Tue Nov 1 18:51:50 CET 2011 810 Force adding of 'Connection: close' to the header if we (for whatever 811 reason) are shutting down the socket for reading (see also 812 #1760). -CG 813 814Thu Oct 27 14:16:34 CEST 2011 815 Treat EAGAIN the same way as EINTR (helps on W32). -LRN 816 817Wed Oct 12 10:40:12 CEST 2011 818 Made sockets blocking again for non-Linux platforms as non-blocking 819 sockets cause problems (#1824) on Cygwin but offer better performance 820 on Linux (see change on August 11 2011). -CG/pross 821 822Fri Oct 7 19:50:07 CEST 2011 823 Fixed problems with testcases on W32. -LRN 824 825Fri Sep 30 17:56:36 CEST 2011 826 Fixed MHD_CONNECTION_OPTION_TIMEOUT for HTTPS (#1811). -CG 827 828Wed Sep 28 08:37:55 CEST 2011 829 Releasing libmicrohttpd 0.9.15. -CG 830 831Tue Sep 27 13:07:36 CEST 2011 832 Added ability to access URL arguments of the form 'url?foo' (without 833 '='). Added testcase and updated documentation accordingly. -CG 834 835Mon Sep 26 21:24:00 CEST 2011 836 Only run response cleanup testcase if curl binary was found by 837 configure. -CG 838 839Wed Sep 21 09:53:18 CEST 2011 840 Reverting to using pipes for signalling select on non-Linux 841 platforms where shutdown-on-listen-sockets does not work. -WB/CG 842 843Mon Sep 19 14:06:30 CEST 2011 844 Fixing problem introduced with prompt response cleanup code. -CG 845 846Wed Sep 14 13:43:26 CEST 2011 847 Fixing minor memory leak if daemon with HTTPS support failed to 848 initialize (#1766). -CG 849 850Tue Sep 13 09:47:58 CEST 2011 851 Try to release responses more promptly upon connection termination. -CG 852 853Mon Sep 12 10:20:28 CEST 2011 854 Releasing libmicrohttpd 0.9.14. -CG 855 856Mon Sep 12 10:05:36 CEST 2011 857 Added new function to allow setting of a custom timeout value 858 for an individual connection (the MHD_set_connection_option is 859 more generic, but this is currently the only use). -CG 860 861Sat Sep 10 07:30:12 CEST 2011 862 Documenting that MHD_CONNECTION_INFO_GNUTLS_CLIENT_CERT is not 863 implemented and will not be implemented, and what to use instead. -CG 864 865Fri Sep 9 13:42:20 CEST 2011 866 Added testcase to demonstrate that response cleanup calling is 867 working. No bug was found. -CG 868 869Thu Aug 18 11:05:16 CEST 2011 870 Fixed bug with wrong state transition if callback returned 871 MHD_CONTENT_READER_END_OF_STREAM causing spurious extra callbacks 872 to the handler (thanks to Jan Seeger for pointing it out). -CG/JS 873 874Thu Aug 11 11:40:03 CEST 2011 875 Changing sockets to be non-blocking as suggested by Eivind Sarto 876 on the mailinglist. -CG 877 878Mon Jul 25 16:13:15 CEST 2011 879 Added a logo. -CG 880 881Sat Jul 16 22:42:10 CEST 2011 882 Change type of nonce to 'unsigned long int' to match return type 883 from 'strtoul'. Fixes ERANGE check which would have previously 884 failed. -CG 885 886Wed Jul 13 09:26:17 CEST 2011 887 Fixing HTTP error status strings for certain high-numbered status codes. 888 Added support for some more (non-standard) status codes. 889 Releasing libmicrohttpd 0.9.13. -CG 890 891Thu Jul 7 10:24:20 CEST 2011 892 Adding performance measurements. -CG 893 894Thu Jun 23 14:21:13 CEST 2011 895 Releasing libmicrohttpd 0.9.12. -CG 896 897Wed Jun 22 14:32:23 CEST 2011 898 Force closing connection if either the client asked it or 899 if the response contains 'Connection: close' (so far, 900 only the client's request was considered). -CG/RV 901 902Wed Jun 22 10:37:35 CEST 2011 903 Removing listen socket from poll/select sets in 904 MHD_USE_THREAD_PER_CONNECTION mode; using 'shutdown' 905 on connection sockets to signal termination instead. -CG 906 907Wed Jun 22 10:25:13 CEST 2011 908 Eliminate unnecessary (and badly synchronized) calls to 909 MHD_get_timeout in MHD_USE_THREAD_PER_CONNECTION mode. 910 Document that this is not acceptable. -CG 911 912Tue Jun 21 13:54:59 CEST 2011 913 Fixing tiny memory leak in SSL code from 'gnutls_priority_init'. 914 Fixing data race between code doing connection shutdown and 915 connection cleanup. 916 Changing code to reduce connection cleanup cost from O(n) to O(1). 917 Cleaning up logging code around 'connection_close_error'. -CG 918 919Sat Jun 11 13:05:12 CEST 2011 920 Replacing use of sscanf by strtoul (#1688). -CG/bplant 921 922Fri Jun 3 15:26:42 CEST 2011 923 Adding MHD_CONNECTION_INFO_DAEMON to obtain MHD_Daemon 924 responsible for a given connection. -CG 925 926Wed May 25 14:23:20 CEST 2011 927 Trying to fix stutter problem on timeout described by 928 David Myers on the mailinglist (5/10/2011). -CG 929 930Fri May 20 22:11:55 CEST 2011 931 Fixed bug in testcase setup code causing crashes in 932 tls_session_timeout_test on some systems. 933 Releasing libmicrohttpd 0.9.11. -CG 934 935Fri May 20 19:34:59 CEST 2011 936 Fixed bug in parsing multipart/form-data with post processor where 937 the code failed to add a 0-terminator in the correct position. -PP 938 939Thu May 12 14:40:46 CEST 2011 940 Fixed bug where if multiple HTTP request messages are piped in at once, 941 microhttpd would call the handler with the wrong upload_data_size. -HZM 942 943Thu May 12 14:40:08 CEST 2011 944 Documented possible issue with off_t being sometimes 945 32-bit and sometimes 64-bit depending on #includes. -CG 946 947Sun May 8 21:52:47 CEST 2011 948 Allow MHD_SIZE_UNKNOWN to be used in conjunction with 949 MHD_create_response_from_fd (fixing #1679). -TG 950 951Wed Apr 27 16:11:18 CEST 2011 952 Releasing libmicrohttpd 0.9.10. -CG 953 954Fri Apr 8 11:40:35 CEST 2011 955 Workaround for cygwin poll brokenness. -TS 956 957Sun Apr 3 13:56:52 CEST 2011 958 Fixing compile error on OS X. -CG 959 960Wed Mar 30 12:56:09 CEST 2011 961 Initialize tv_usec in MHD_USE_THREAD_PER_CONNECTION with select 962 and per-connection timeout. -CG 963 964Tue Mar 29 14:15:13 CEST 2011 965 Releasing libmicrohttpd 0.9.9. -CG 966 967Tue Mar 29 14:11:19 CEST 2011 968 Fixed call to mmap for memory pool, extended testcase to cover 969 POLL. -CG 970 971Wed Mar 23 23:24:25 CET 2011 972 Do not use POLLIN when we only care about POLLHUP (significantly 973 improves performance when using MHD_USE_THREAD_PER_CONNECTION 974 in combination with MHD_USE_POLL). -ES 975 976Sun Mar 20 09:16:53 CET 2011 977 Fixing race when using MHD_USE_THREAD_PER_CONNECTION in combination 978 with MHD_USE_POLL. -CG 979 980Fri Mar 18 13:23:47 CET 2011 981 Removing MSG_DONTWAIT which should not be needed and was presumably 982 causing problems with EAGAIN under certain circumstances. -ES 983 984Fri Mar 11 22:25:29 CET 2011 985 Fixing bug in MHD_create_response_from_fd_at_offset with non-zero offsets. -ES 986 987Sat Mar 5 22:00:36 CET 2011 988 Do not use POLLRDHUP, which causes build errors on OS X / OpenSolaris 989 (#1667). -CG 990 991Fri Mar 4 10:24:04 CET 2011 992 Added new API to allow MHD server to initiate connection to 993 client (special use-case for servers behind NAT), thereby 994 addressing #1661 (externally created connections). 995 Releasing libmicrohttpd 0.9.8. -CG 996 997Fri Mar 4 10:07:18 CET 2011 998 Avoid using a pipe for signalling as well, just use server 999 socket shutdown (also for thread-per-connection). -CG 1000 1001Thu Mar 3 21:42:47 CET 2011 1002 Fixing issue where Base64 decode fails when char is defined 1003 as unsigned char (Mantis 1666). -CG/tmayer 1004 1005Tue Mar 1 13:58:04 CET 2011 1006 Allow use of 'poll' in combination with the external select mode. 1007 Avoid using pthread signals (SIGALRM), use pipe instead. 1008 Corrected timeout calculation (s vs. ms). -CG 1009 1010Wed Feb 23 14:21:44 CET 2011 1011 Removing useless code pointed out by Eivind Sarto. -CG 1012 1013Fri Feb 18 11:03:59 CET 2011 1014 Handle large (>2 GB) file transfers with sendfile on 32-bit 1015 systems better; handle odd sendfile failures by libc/kernel 1016 by falling back to standard 'SEND'. -CG 1017 1018Sun Feb 13 10:52:29 CET 2011 1019 Handle gnutls receive error(s) for interrupted SSL 1020 connections better. -MS 1021 Releasing libmicrohttpd 0.9.7. -CG 1022 1023Fri Feb 11 10:15:38 CET 2011 1024 Fixing parameter ordering in documentation (#1659). -wellska 1025 1026Thu Jan 27 10:51:39 CET 2011 1027 Disable 'EXTRA_CHECKS's by default as suggested in #1652 1028 (I guess it is time). -CG/timn 1029 1030Thu Jan 27 10:48:55 CET 2011 1031 Removing bogus assertion in basic authentication code (#1651). -CG/timn 1032 1033Tue Jan 25 14:10:45 CET 2011 1034 Releasing libmicrohttpd 0.9.6. -CG 1035 1036Mon Jan 24 16:36:35 CET 2011 1037 Fixing compilation error if DAUTH_SUPPORT was 0 (#1646). -CG/bplant 1038 1039Tue Jan 18 23:58:09 CET 2011 1040 Fixing hash calculation in digest auth; old function had 1041 collisions causing the browser to challenge users for 1042 authentication too often. -CG/AW 1043 1044Fri Jan 14 19:19:45 CET 2011 1045 Removing dead code, adding missing new symbols to export list. 1046 Fixed two missing NULL checks after malloc operations. -CG 1047 1048Mon Jan 10 14:07:33 CET 2011 1049 Releasing libmicrohttpd 0.9.5. -CG 1050 1051Wed Jan 5 15:20:11 CET 2011 1052 Fixing double-locking on non-Linux platforms when using 1053 MHD_create_response_from_fd (#1639). -CG 1054 Avoid use of strndup for better portability (#1636). -CG 1055 1056Tue Jan 4 13:07:21 CET 2011 1057 Added MHD_create_response_from_buffer, deprecating 1058 MHD_create_response_from_data. Deprecating 1059 MHD_create_response_from_fd as well. -CG 1060 1061Sun Dec 26 00:02:15 CET 2010 1062 Releasing libmicrohttpd 0.9.4. -CG 1063 1064Sat Dec 25 21:57:14 CET 2010 1065 Adding support for basic authentication. 1066 Documented how to obtain client SSL certificates in tutorial. -MS 1067 1068Thu Dec 23 15:40:36 CET 2010 1069 Increasing nonce length to 128 to support digest authentication 1070 with Opera (see #1633). 1071 1072Mon Dec 20 21:22:57 CET 2010 1073 Added macro MHD_LONG_LONG to allow change of MHD's "long long" use 1074 to some other type on platforms that do not support "long long" 1075 (Mantis #1631). -CG/bplant 1076 1077Sun Dec 19 19:54:15 CET 2010 1078 Added 'MHD_create_response_from_fd_at_offset'. -CG 1079 1080Sun Dec 19 15:16:16 CET 2010 1081 Fixing --enable and --disable configure options to behave properly. -CG 1082 1083Sun Dec 19 13:46:52 CET 2010 1084 Added option to specify size of stacks for threads created by MHD. -CG 1085 1086Tue Nov 23 09:41:00 CET 2010 1087 Releasing libmicrohttpd 0.9.3. -CG 1088 1089Thu Nov 18 23:10:36 CET 2010 1090 Fixing #1619 (testcases not working with NSS on Fedora). -CG/timn 1091 1092Thu Nov 18 22:55:58 CET 2010 1093 Fixing #1621 (socket not closed under certain circumstances). -CG/jaredc 1094 1095Wed Nov 17 12:16:53 CET 2010 1096 Allowing signalling of errors in generating chunked responses to 1097 clients (by closing connectins) using the new 1098 MHD_CONTENT_READER_END_WITH_ERROR ((size_t)-2) return value. Also 1099 introducing MHD_CONTENT_READER_END_OF_STREAM constant instead 1100 of (size_t) -1 / SIZE_MAX. 1101 1102Sun Nov 14 20:45:45 CET 2010 1103 Adding API call to generate HTTP footers in response. -CG 1104 1105Sat Oct 16 12:38:43 CEST 2010 1106 Releasing libmicrohttpd 0.9.2. -CG 1107 1108Tue Oct 12 15:41:51 CEST 2010 1109 Fixed issue with data received via SSL being delayed in the 1110 GNUtls buffer if sender stopped transmitting (but did not close 1111 the connection) and MHD buffer size was smaller than last fragment, 1112 resulting in possibly significantly delayed processing of 1113 incoming data. -CG 1114 1115Wed Sep 22 09:48:59 CEST 2010 1116 Changed port argument from 'unsigned short' to 'uint16_t'. 1117 Removed dead code when compiling with messages enabled. 1118 Minimal unrelated code cleanup. -CG 1119 1120Tue Sep 21 15:12:41 CEST 2010 1121 Use "size_t" for buffer size instead of "int". -CG 1122 1123Sat Sep 18 07:16:30 CEST 2010 1124 Adding support for SHOUTcast. -CG 1125 1126Wed Sep 15 09:33:46 CEST 2010 1127 Fixed double-free. -CG/ES 1128 1129Fri Sep 10 14:47:11 CEST 2010 1130 Releasing libmicrohttpd 0.9.1. -CG 1131 1132Fri Sep 10 14:29:37 CEST 2010 1133 Adding proper nonce counter checking for digest authentication. -CG/AA 1134 1135Sat Sep 4 21:55:52 CEST 2010 1136 Digest authentication now seems to be working. -CG/AA 1137 1138Wed Sep 1 13:59:16 CEST 2010 1139 Added ability to specify external unescape function. 1140 "microhttpd.h" now includes the right headers for GNU/Linux 1141 systems unless MHD_PLATFORM_H is defined (in which case it 1142 is assumed that the right headers were already determined by 1143 some configure-like process). -CG 1144 1145Tue Aug 31 15:39:25 CEST 2010 1146 Fixed bug with missing call to response cleanup in case of 1147 connection handling error (for example, after getting a SIGPIPE). -CG 1148 1149Tue Aug 24 11:39:25 CEST 2010 1150 Fixed bug in handling EAGAIN from GnuTLS (caused 1151 needlessly dropped SSL connections). -CG 1152 1153Sun Aug 22 16:49:13 CEST 2010 1154 Initial draft for digest authentication. -AA 1155 1156Thu Aug 19 14:15:01 CEST 2010 1157 Changed code to enable error messages and HTTPS by default; 1158 added option to disable post processor API (use 1159 breaks binary compatibility, should only be done 1160 for embedded systems that require minimal footprint). -CG 1161 1162Thu Aug 19 13:26:00 CEST 2010 1163 Patches for Windows to ease compilation trouble. -GT/CG 1164 1165Sat Aug 14 15:43:30 CEST 2010 1166 Fixed small, largely hypothetical leaks. 1167 Reduced calls to strlen for header processing. -CG 1168 1169Fri Aug 6 12:51:59 CEST 2010 1170 Fixing (small) memory leak on daemon-shutdown with 1171 SSL enabled. -CG/PG 1172 1173Thu Aug 5 22:24:37 CEST 2010 1174 Fixing timeout bug on systems that think it's still 1175 1970 (can happen if system time not initialized). -CG 1176 1177Mon Jul 26 10:46:57 CEST 2010 1178 Releasing libmicrohttpd 0.9.0. -CG 1179 1180Sun Jul 25 14:57:47 CEST 2010 1181 Adding support for sendfile on Linux. Adding support 1182 for systemd-style passing of an existing listen socket 1183 as an option. IPv6 sockets now only bind to IPv6 1184 (if platform supports this). -CG 1185 1186Sun Jul 25 11:10:45 CEST 2010 1187 Changed code to use external libgnutls code instead of 1188 the "fork". Minor API changes for setting TLS options. -CG 1189 1190Sun Jun 13 10:52:34 CEST 2010 1191 Cleaned up example code. -CG 1192 1193Fri Apr 23 09:56:37 CEST 2010 1194 Do not return HTTP headers for requests without version 1195 numbers. Do return HTTP version 1.0 if client requested 1196 HTTP version 1.1 (previously, we returned HTTP/1.1 even 1197 if the client specified HTTP/1.0). -GM/CG 1198 1199Sat Mar 13 09:41:01 CET 2010 1200 Releasing libmicrohttpd 0.4.6. -CG 1201 1202Wed Mar 10 13:18:26 CET 2010 1203 Fixing bug in 100 CONTINUE replacement when handling POSTs 1204 (see report on mailinglist), with testcase. -CG/MC 1205 1206Tue Feb 23 09:16:15 CET 2010 1207 Added configure check for endianness to define WORDS_BIGENDIAN 1208 which fixes SSL support on big endian architectures. -JA/CG 1209 1210Sat Feb 20 10:01:09 CET 2010 1211 Added check for inconsistent options (MHD_OPTION_PROTOCOL_VERSION 1212 without MHD_USE_SSL) causing instant segfault. -JA/CG 1213 1214Tue Feb 9 20:31:51 CET 2010 1215 Fixed issue with poll doing busy waiting. -BK/CG 1216 1217Thu Jan 28 21:28:56 CET 2010 1218 Releasing libmicrohttpd 0.4.5. -CG 1219 1220Thu Jan 28 20:35:48 CET 2010 1221 Make sure addresses returned by memory pool are 1222 aligned (fixes bus errors on Sparc). -CG 1223 1224Thu Dec 17 20:26:52 CET 2009 1225 poll.h is not stricly required anymore. -ND 1226 1227Fri Dec 4 13:17:50 CET 2009 1228 Adding MHD_OPTION_ARRAY. -CG 1229 1230Mon Nov 16 14:41:26 CET 2009 1231 Fixed busy-loop in internal select mode for inactive 1232 clients with infinite connection timeout. -CG 1233 1234Thu Nov 12 16:19:14 CET 2009 1235 Adding support for setting a custom error handler for 1236 fatal errors (previously, the implementation always 1237 called 'abort' in these cases). -CG/ND 1238 1239Wed Nov 11 12:54:16 CET 2009 1240 Adding support for poll (alternative to select allowing 1241 for more than FD_SETSIZE parallel connections). -JM 1242 1243Wed Oct 28 20:26:00 CET 2009 1244 Releasing libmicrohttpd 0.4.4. -CG 1245 1246Wed Oct 14 14:37:37 CEST 2009 1247 Fixing (rare) deadlock due to SELECT missing SIGALRM by 1248 making all SELECT calls block for at most 1s. While this 1249 can in (rare) situations delay the shutdown by 1s, I think 1250 this is preferable (both performance and possibly portability-wise) 1251 over using a pipe for the signal. -CG 1252 1253Sun Oct 11 14:57:29 CEST 2009 1254 Adding eCos license as an additional license for the 1255 non-HTTPS code of MHD. -CG 1256 1257Sun Oct 11 11:24:27 CEST 2009 1258 Adding support for Symbian. -MR 1259 1260Fri Oct 9 15:21:29 CEST 2009 1261 Check for error codes from pthread operations (to help with 1262 error diagnostics) and abort if something went wrong. -CG 1263 1264Thu Oct 8 10:43:02 CEST 2009 1265 Added check for sockets being '< FD_SETSIZE' (just to be safe). -CG 1266 1267Mon Oct 5 21:17:26 CEST 2009 1268 Adding "COOKIE" header string #defines. -CG 1269 1270Mon Oct 5 08:29:06 CEST 2009 1271 Documenting default values. -CG 1272 1273Fri Aug 28 22:56:47 CEST 2009 1274 Releasing libmicrohttpd 0.4.3. -CG 1275 1276Sun Aug 23 16:21:35 UTC 2009 1277 Allow MHD_get_daemon_info to return the daemon's listen socket. 1278 Includes a test case that uses this functionality to bind a server to 1279 an OS-assigned port, look the port up with getsockname, and curl it. -DR 1280 1281Tue Aug 4 00:14:04 CEST 2009 1282 Fixing double-call to read from content-reader callback for first 1283 data segment (as reported by Alex on the mailinglist). -CG 1284 1285Thu Jul 29 21:41:52 CEST 2009 1286 Fixed issue with the code not using the "block_size" argument 1287 given to MHD_create_response_from_callback causing inefficiencies 1288 for values < 2048 and segmentation faults for values > 2048 1289 (as reported by Andre Colomb on the mailinglist). -CG 1290 1291Sun May 17 03:29:46 MDT 2009 1292 Releasing libmicrohttpd 0.4.2. -CG 1293 1294Fri May 15 11:00:20 MDT 2009 1295 Grow reserved read buffer more aggressively so that we are not 1296 needlessly stuck reading only a handfull of bytes in each iteration. -CG 1297 1298Thu May 14 21:20:30 MDT 2009 1299 Fixed issue where the "NOTIFY_COMPLETED" handler could be called 1300 twice (if a socket error or timeout occured for a pipelined 1301 connection after successfully completing a request and before 1302 the next request was successfully transmitted). This could 1303 confuse applications not expecting to see a connection "complete" 1304 that they were never aware of in the first place. -CG 1305 1306Mon May 11 13:01:16 MDT 2009 1307 Fixed issue where error code on timeout was "TERMINATED_WITH_ERROR" 1308 instead of "TERMINATED_TIMEOUT_REACHED". -CG 1309 1310Wed Apr 1 21:33:05 CEST 2009 1311 Added MHD_get_version(). -ND 1312 1313Wed Mar 18 22:59:07 MDT 2009 1314 Releasing libmicrohttpd 0.4.1. -CG 1315 1316Wed Mar 18 17:46:58 MDT 2009 1317 Always RECV/SEND with MSG_DONTWAIT to (possibly) address 1318 strange deadlock reported by Erik on the mailinglist --- 1319 and/or issues with blocking read after select on GNU/Linux 1320 (see select man page under bugs). -CG 1321 1322Tue Mar 17 01:19:50 MDT 2009 1323 Added support for thread-pools. -CG/RA 1324 1325Mon Mar 2 23:44:08 MST 2009 1326 Fixed problem with 64-bit upload and download sizes and 1327 "-1" being used to indicate "unknown" by introducing 1328 new 64-bit constant "MHD_SIZE_UNKNOWN". -CG/DC 1329 1330Wed Feb 18 08:13:56 MST 2009 1331 Added missing #include for build on arm-linux-uclibc. -CG/CC 1332 1333Mon Feb 16 21:12:21 MST 2009 1334 Moved MHD_get_connection_info so that it is always defined, 1335 even if HTTPS support is not enabled. -CG 1336 1337Sun Feb 8 21:15:30 MST 2009 1338 Releasing libmicrohttpd 0.4.0. -CG 1339 1340Thu Feb 5 22:43:45 MST 2009 1341 Incompatible API change to allow 64-bit uploads and downloads. 1342 Clients must use "uint64_t" for the "pos" 1343 argument (MHD_ContentReaderCallback) and the "off" 1344 argument (MHD_PostDataIterator) and the "size" 1345 argument (MHD_create_response_from_callback) now. 1346 Also, "unsigned int" was changed to "size_t" for 1347 the "upload_data_size" argument (MHD_AccessHandlerCallback), 1348 the argument to MHD_OPTION_CONNECTION_MEMORY_LIMIT, 1349 the "block_size" argument (MHD_create_response_from_callback), 1350 the "buffer_size" argument (MHD_create_post_processor) and 1351 the "post_data_len" argument (MHD_post_process). You may 1352 need to #include <stdint.h> before <microhttpd.h> from now on. -CG 1353 1354Thu Feb 5 20:21:08 MST 2009 1355 Allow getting address information about the connecting 1356 client after the accept call. -CG 1357 1358Mon Feb 2 22:21:48 MST 2009 1359 Fixed missing size adjustment for offsets for %-encoded 1360 arguments processed by the post processor (Mantis #1447). -CG/SN 1361 1362Fri Jan 23 16:57:21 MST 2009 1363 Support charset specification (ignore) after content-type 1364 when post-processing HTTP POST requests (Mantis #1443). -CG/SN 1365 1366Fri Dec 26 23:08:04 MST 2008 1367 Fixed broken check for identical connection address. -CG 1368 Making cookie parser more RFC2109 compliant (handle 1369 spaces around key, allow value to be optional). -CG 1370 1371Sat Dec 6 18:36:17 MST 2008 1372 Added configure option to disable checking for CURL support. 1373 Added MHD_OPTION to allow specification of custom logger. -CG 1374 1375Tue Nov 18 01:19:53 MST 2008 1376 Removed support for untested and/or broken SSL features 1377 and (largely useless) options. -CG 1378 1379Sun Nov 16 16:54:54 MST 2008 1380 Added option to get unparsed URI via callback. 1381 Releasing GNU libmicrohttpd 0.4.0pre1. -CG 1382 1383Sun Nov 16 02:48:14 MST 2008 1384 Removed tons of dead code. -CG 1385 1386Sat Nov 15 17:34:24 MST 2008 1387 Added build support for code coverage analysis. -CG 1388 1389Sat Nov 15 00:31:33 MST 2008 1390 Removing (broken) support for HTTPS servers with 1391 anonymous (aka "no") certificates as well as 1392 various useless dead code. -CG 1393 1394Sat Nov 8 02:18:42 MST 2008 1395 Unset TCP_CORK at the end of transmitting a response 1396 to improve performance (on systems where this is 1397 supported). -MM 1398 1399Tue Sep 30 16:48:08 MDT 2008 1400 Make MHD useful to Cygwin users; detect IPv6 headers 1401 in configure. 1402 1403Sun Sep 28 14:57:46 MDT 2008 1404 Unescape URIs (convert "%ef%e4%45" to "$BCf9q(B"). -CG 1405 1406Wed Sep 10 22:43:59 MDT 2008 1407 Releasing GNU libmicrohttpd 0.4.0pre0. -CG 1408 1409Wed Sep 10 21:36:06 MDT 2008 1410 Fixed data race on closing sockets during 1411 shutdown (in one-thread-per-connection mode). -CG 1412 1413Thu Sep 4 23:37:18 MDT 2008 1414 Fixed some boundary issues with processing 1415 chunked requests; removed memmove from a 1416 number of spots, in favor of using an index into 1417 the current buffer instead. -GS 1418 1419Sun Aug 24 13:05:41 MDT 2008 1420 Now handling clients returning 0 from response callback 1421 as specified in the documentation (abort if internal 1422 select is used, retry immediately if a thread per 1423 connection is used). -CG 1424 1425Sun Aug 24 12:44:43 MDT 2008 1426 Added missing reason phrase. -SG 1427 1428Sun Aug 24 10:33:22 MDT 2008 1429 Fixed bug where MHD failed to transmit the response when 1430 the client decided not to send "100 CONTINUE" during 1431 a PUT/POST request. -CG 1432 1433Wed Jul 16 18:54:03 MDT 2008 1434 Fixed bug generating chunked responses with chunk sizes 1435 greater than 0xFFFFFF (would cause protocol violations). -CG 1436 1437Mon May 26 13:28:57 MDT 2008 1438 Updated and improved documentation. 1439 Releasing GNU libmicrohttpd 0.3.1. -CG 1440 1441Fri May 23 16:54:41 MDT 2008 1442 Fixed issue with postprocessor not handling URI-encoded 1443 values of more than 1024 bytes correctly. -CG 1444 1445Mon May 5 09:18:29 MDT 2008 1446 Fixed date header (was off by 1900 years). -JP 1447 1448Sun Apr 13 01:06:20 MDT 2008 1449 Releasing GNU libmicrohttpd 0.3.0. -CG 1450 1451Sat Apr 12 21:34:26 MDT 2008 1452 Generate an internal server error if the programmer fails 1453 to handle upload data correctly. Tweaked testcases to 1454 avoid running into the problem in the testcases. 1455 Completed zzuf-based fuzzing testcases. -CG 1456 1457Sat Apr 12 15:14:05 MDT 2008 1458 Restructured the code (curl-testcases and zzuf testcases 1459 are now in different directories; code examples are in 1460 src/examples/). 1461 Fixed a problem (introduced in 0.2.3) with handling very 1462 large requests (the code did not return proper error code). 1463 If "--enable-messages" is specified, the code now includes 1464 reasonable default HTML webpages for various build-in 1465 errors (such as request too large and malformed requests). 1466 Without that flag, the webpages returned will still be 1467 empty. 1468 Started to add zzuf-based fuzzing-testcases (these require 1469 the zzuf and socat binaries to be installed). -CG 1470 1471Fri Apr 11 20:20:34 MDT 2008 1472 I hereby dub libmicrohttpd a GNU package. -Richard Stallman 1473 1474Sat Mar 29 22:36:09 MDT 2008 1475 Fixed bugs in handling of malformed HTTP requests 1476 (causing either NULL dereferences or connections to 1477 persist until time-out, if any). -CG 1478 1479 Updated and integrated TexInfo documentation. -CG 1480 1481Tue Mar 25 13:40:53 MDT 2008 1482 Prevent multi-part post-processor from going to error 1483 state when the input buffer is full and current token 1484 just changes processor state without consuming any data. 1485 Also, the original implementation would not consume any 1486 input in process_value_to_boundary if there is no new 1487 line character in sight. -AS 1488 1489 Remove checks for request method after it finished writing 1490 response footers as it's only _pipelined_ requests that 1491 should not be allowed after POST or PUT requests. Reusing 1492 the existing connection is perfectly ok though. And there 1493 is no reliable way to detect pipelining on server side 1494 anyway so it is the client's responsibility to not send new 1495 data before it gets a response after a POST operation. -AS 1496 1497 Clarified license in man page. Releasing 1498 libmicrohttpd 0.2.3 -CG 1499 1500Sat Mar 22 01:12:38 MDT 2008 1501 Releasing libmicrohttpd 0.2.2. -CG 1502 1503Mon Feb 25 19:13:53 MST 2008 1504 Fixed a problem with sockets closed for reading ending up 1505 in the read set under certain circumstances. -CG 1506 1507Wed Jan 30 23:15:44 MST 2008 1508 Added support for nested multiparts to post processor. 1509 Made sure that MHD does not allow pipelining for methods 1510 other than HEAD and GET (and of course still also only 1511 allows it for http 1.1). Releasing libmicrohttpd 0.2.1. -CG 1512 1513Mon Jan 21 11:59:46 MST 2008 1514 Added option to limit number of concurrent connections 1515 accepted from the same IP address. -CG 1516 1517Fri Jan 4 16:02:08 MST 2008 1518 Fix to properly close connection if application signals 1519 problem handling the request. - AS 1520 1521Wed Jan 2 16:41:05 MST 2008 1522 Improvements and bugfixes to post processor implementation. - AS 1523 1524Wed Dec 19 21:12:04 MST 2007 1525 Implemented chunked (HTTP 1.1) downloads (including 1526 sending of HTTP footers). Also allowed queuing of 1527 a response early to suppress the otherwise automatic 1528 "100 CONTINUE" response. Removed the mostly useless 1529 "(un)register handler" methods from the API. Changed 1530 the internal implementation to use a finite state 1531 machine (cleaner code, slightly less memory consumption). 1532 Releasing libmicrohttpd 0.2.0. - CG 1533 1534Sun Dec 16 03:24:13 MST 2007 1535 Implemented handling of chunked (HTTP 1.1) uploads. 1536 Note that the upload callback must be able to 1537 process chunks in the size uploaded by the client, 1538 MHD will not "join" small chunks into a big 1539 contiguous block of memory (even if buffer space 1540 would be available). - CG 1541 1542Wed Dec 5 21:39:35 MST 2007 1543 Fixed race in multi-threaded server mode. 1544 Fixed handling of POST data when receiving a 1545 "Connection: close" header (#1296). 1546 Releasing libmicrohttpd 0.1.2. - CG 1547 1548Sat Nov 17 00:55:24 MST 2007 1549 Fixed off-by-one in error message string matching. 1550 Added code to avoid generating SIGPIPE on platforms 1551 where this is possible (everywhere else, the main 1552 application should install a handler for SIGPIPE). 1553 1554Thu Oct 11 11:02:06 MDT 2007 1555 Releasing libmicrohttpd 0.1.1. - CG 1556 1557Thu Oct 11 10:09:12 MDT 2007 1558 Fixing response to include HTTP status message. - EG 1559 1560Thu Sep 27 10:19:46 MDT 2007 1561 Fixing parsing of "%xx" in URLs with GET arguments. - eglaysher 1562 1563Sun Sep 9 14:32:23 MDT 2007 1564 Added option to compile debug/warning messages; 1565 error messages are now disabled by default. 1566 Modified linker option for GNU LD to not export 1567 non-public symbols (further reduces binary size). 1568 Releasing libmicrohttpd 0.1.0. - CG 1569 1570Sat Sep 8 21:54:04 MDT 2007 1571 Extended API to allow for incremental POST 1572 processing. The new API is binary-compatible 1573 as long as the app does not handle POSTs, but 1574 since that maybe the case, we're strictly speaking 1575 breaking backwards compatibility (since url-encoded 1576 POST data is no longer obtained the same way). - CG 1577 1578Thu Aug 30 00:59:24 MDT 2007 1579 Improving API to allow clients to associate state 1580 with a connection and to be notified about request 1581 termination (this is a binary-compatible change). - CG 1582 Fixed compile errors under OS X. - HL 1583 1584Sun Aug 26 03:11:46 MDT 2007 1585 Added MHD_USE_PEDANTIC_CHECKS option which enforces 1586 receiving a "Host:" header in HTTP 1.1 (and sends a 1587 HTTP 400 status back if this is violated). - CG 1588 1589Tue Aug 21 01:01:46 MDT 2007 1590 Fixing assertion failure that occured when a client 1591 closed the connection after sending some data but 1592 not the full headers. - CG 1593 1594Sat Aug 18 03:06:09 MDT 2007 1595 Check for out of memory when adding headers to 1596 responses. Check for NULL key when looking 1597 for headers. If a content reader callback 1598 for a response returns zero (has no data yet), 1599 do not possibly fall into busy waiting when 1600 using external select (with internal selects 1601 we have no choice). - CG 1602 1603Wed Aug 15 01:46:44 MDT 2007 1604 Extending API to allow timeout of connections. 1605 Changed API (MHD_create_response_from_callback) to 1606 allow user to specify IO buffer size. 1607 Improved error handling. 1608 Released libmicrohttpd 0.0.3. - CG 1609 1610Tue Aug 14 19:45:49 MDT 2007 1611 Changed license to LGPL (with consent from all contributors). 1612 Released libmicrohttpd 0.0.2. - CG 1613 1614Sun Aug 12 00:09:26 MDT 2007 1615 Released libmicrohttpd 0.0.1. - CG 1616 1617Fri Aug 10 17:31:23 MDT 2007 1618 Fixed problems with handling of responses created from 1619 callbacks. Allowing accept policy callback to be NULL 1620 (to accept from all). Added minimal fileserver example. 1621 Only send 100 continue header when specifically requested. - CG 1622 1623Wed Aug 8 01:46:06 MDT 2007 1624 Added pool allocation and connection limitations (total 1625 number and memory size). Released libmicrohttpd 0.0.0. - CG 1626 1627Tue Jan 9 20:52:48 MST 2007 1628 Created project build files and updated API. - CG 1629