Fri Mar 11 22:25:29 CET 2011 Fixing bug in MHD_create_response_from_fd_at_offset with non-zero offsets. -ES Sat Mar 5 22:00:36 CET 2011 Do not use POLLRDHUP, which causes build errors on OS X / OpenSolaris (#1667). -CG Fri Mar 4 10:24:04 CET 2011 Added new API to allow MHD server to initiate connection to client (special use-case for servers behind NAT), thereby addressing #1661 (externally created connections). Releasing libmicrohttpd 0.9.8. -CG Fri Mar 4 10:07:18 CET 2011 Avoid using a pipe for signalling as well, just use server socket shutdown (also for thread-per-connection). -CG Thu Mar 3 21:42:47 CET 2011 Fixing issue where Base64 decode fails when char is defined as unsigned char (Mantis 1666). -CG/tmayer Tue Mar 1 13:58:04 CET 2011 Allow use of 'poll' in combination with the external select mode. Avoid using pthread signals (SIGALRM), use pipe instead. Corrected timeout calculation (s vs. ms). -CG Wed Feb 23 14:21:44 CET 2011 Removing useless code pointed out by Eivind Sarto. -CG Fri Feb 18 11:03:59 CET 2011 Handle large (>2 GB) file transfers with sendfile on 32-bit systems better; handle odd sendfile failures by libc/kernel by falling back to standard 'SEND'. -CG Sun Feb 13 10:52:29 CET 2011 Handle gnutls receive error(s) for interrupted SSL connections better. -MS Releasing libmicrohttpd 0.9.7. -CG Fri Feb 11 10:15:38 CET 2011 Fixing parameter ordering in documentation (#1659). -wellska Thu Jan 27 10:51:39 CET 2011 Disable 'EXTRA_CHECKS's by default as suggested in #1652 (I guess it is time). -CG/timn Thu Jan 27 10:48:55 CET 2011 Removing bogus assertion in basic authentication code (#1651). -CG/timn Tue Jan 25 14:10:45 CET 2011 Releasing libmicrohttpd 0.9.6. -CG Mon Jan 24 16:36:35 CET 2011 Fixing compilation error if DAUTH_SUPPORT was 0 (#1646). -CG/bplant Tue Jan 18 23:58:09 CET 2011 Fixing hash calculation in digest auth; old function had collisions causing the browser to challenge users for authentication too often. -CG/AW Fri Jan 14 19:19:45 CET 2011 Removing dead code, adding missing new symbols to export list. Fixed two missing NULL checks after malloc operations. -CG Mon Jan 10 14:07:33 CET 2011 Releasing libmicrohttpd 0.9.5. -CG Wed Jan 5 15:20:11 CET 2011 Fixing double-locking on non-Linux platforms when using MHD_create_response_from_fd (#1639). -CG Avoid use of strndup for better portability (#1636). -CG Tue Jan 4 13:07:21 CET 2011 Added MHD_create_response_from_buffer, deprecating MHD_create_response_from_data. Deprecating MHD_create_response_from_fd as well. -CG Sun Dec 26 00:02:15 CET 2010 Releasing libmicrohttpd 0.9.4. -CG Sat Dec 25 21:57:14 CET 2010 Adding support for basic authentication. Documented how to obtain client SSL certificates in tutorial. -MS Thu Dec 23 15:40:36 CET 2010 Increasing nonce length to 128 to support digest authentication with Opera (see #1633). Mon Dec 20 21:22:57 CET 2010 Added macro MHD_LONG_LONG to allow change of MHD's "long long" use to some other type on platforms that do not support "long long" (Mantis #1631). -CG/bplant Sun Dec 19 19:54:15 CET 2010 Added 'MHD_create_response_from_fd_at_offset'. -CG Sun Dec 19 15:16:16 CET 2010 Fixing --enable and --disable configure options to behave properly. -CG Sun Dec 19 13:46:52 CET 2010 Added option to specify size of stacks for threads created by MHD. -CG Tue Nov 23 09:41:00 CET 2010 Releasing libmicrohttpd 0.9.3. -CG Thu Nov 18 23:10:36 CET 2010 Fixing #1619 (testcases not working with NSS on Fedora). -CG/timn Thu Nov 18 22:55:58 CET 2010 Fixing #1621 (socket not closed under certain circumstances). -CG/jaredc Wed Nov 17 12:16:53 CET 2010 Allowing signalling of errors in generating chunked responses to clients (by closing connectins) using the new MHD_CONTENT_READER_END_WITH_ERROR ((size_t)-2) return value. Also introducing MHD_CONTENT_READER_END_OF_STREAM constant instead of (size_t) -1 / SIZE_MAX. Sun Nov 14 20:45:45 CET 2010 Adding API call to generate HTTP footers in response. -CG Sat Oct 16 12:38:43 CEST 2010 Releasing libmicrohttpd 0.9.2. -CG Tue Oct 12 15:41:51 CEST 2010 Fixed issue with data received via SSL being delayed in the GNUtls buffer if sender stopped transmitting (but did not close the connection) and MHD buffer size was smaller than last fragment, resulting in possibly significantly delayed processing of incoming data. -CG Wed Sep 22 09:48:59 CEST 2010 Changed port argument from 'unsigned short' to 'uint16_t'. Removed dead code when compiling with messages enabled. Minimal unrelated code cleanup. -CG Tue Sep 21 15:12:41 CEST 2010 Use "size_t" for buffer size instead of "int". -CG Sat Sep 18 07:16:30 CEST 2010 Adding support for SHOUTcast. -CG Wed Sep 15 09:33:46 CEST 2010 Fixed double-free. -CG/ES Fri Sep 10 14:47:11 CEST 2010 Releasing libmicrohttpd 0.9.1. -CG Fri Sep 10 14:29:37 CEST 2010 Adding proper nonce counter checking for digest authentication. -CG/AA Sat Sep 4 21:55:52 CEST 2010 Digest authentication now seems to be working. -CG/AA Wed Sep 1 13:59:16 CEST 2010 Added ability to specify external unescape function. "microhttpd.h" now includes the right headers for GNU/Linux systems unless MHD_PLATFORM_H is defined (in which case it is assumed that the right headers were already determined by some configure-like process). -CG Tue Aug 31 15:39:25 CEST 2010 Fixed bug with missing call to response cleanup in case of connection handling error (for example, after getting a SIGPIPE). -CG Tue Aug 24 11:39:25 CEST 2010 Fixed bug in handling EAGAIN from GnuTLS (caused needlessly dropped SSL connections). -CG Sun Aug 22 16:49:13 CEST 2010 Initial draft for digest authentication. -AA Thu Aug 19 14:15:01 CEST 2010 Changed code to enable error messages and HTTPS by default; added option to disable post processor API (use breaks binary compatibility, should only be done for embedded systems that require minimal footprint). -CG Thu Aug 19 13:26:00 CEST 2010 Patches for Windows to ease compilation trouble. -GT/CG Sat Aug 14 15:43:30 CEST 2010 Fixed small, largely hypothetical leaks. Reduced calls to strlen for header processing. -CG Fri Aug 6 12:51:59 CEST 2010 Fixing (small) memory leak on daemon-shutdown with SSL enabled. -CG/PG Thu Aug 5 22:24:37 CEST 2010 Fixing timeout bug on systems that think it's still 1970 (can happen if system time not initialized). -CG Mon Jul 26 10:46:57 CEST 2010 Releasing libmicrohttpd 0.9.0. -CG Sun Jul 25 14:57:47 CEST 2010 Adding support for sendfile on Linux. Adding support for systemd-style passing of an existing listen socket as an option. IPv6 sockets now only bind to IPv6 (if platform supports this). -CG Sun Jul 25 11:10:45 CEST 2010 Changed code to use external libgnutls code instead of the "fork". Minor API changes for setting TLS options. -CG Sun Jun 13 10:52:34 CEST 2010 Cleaned up example code. -CG Fri Apr 23 09:56:37 CEST 2010 Do not return HTTP headers for requests without version numbers. Do return HTTP version 1.0 if client requested HTTP version 1.1 (previously, we returned HTTP/1.1 even if the client specified HTTP/1.0). -GM/CG Sat Mar 13 09:41:01 CET 2010 Releasing libmicrohttpd 0.4.6. -CG Wed Mar 10 13:18:26 CET 2010 Fixing bug in 100 CONTINUE replacement when handling POSTs (see report on mailinglist), with testcase. -CG/MC Tue Feb 23 09:16:15 CET 2010 Added configure check for endianness to define WORDS_BIGENDIAN which fixes SSL support on big endian architectures. -JA/CG Sat Feb 20 10:01:09 CET 2010 Added check for inconsistent options (MHD_OPTION_PROTOCOL_VERSION without MHD_USE_SSL) causing instant segfault. -JA/CG Tue Feb 9 20:31:51 CET 2010 Fixed issue with poll doing busy waiting. -BK/CG Thu Jan 28 21:28:56 CET 2010 Releasing libmicrohttpd 0.4.5. -CG Thu Jan 28 20:35:48 CET 2010 Make sure addresses returned by memory pool are aligned (fixes bus errors on Sparc). -CG Thu Dec 17 20:26:52 CET 2009 poll.h is not stricly required anymore. -ND Fri Dec 4 13:17:50 CET 2009 Adding MHD_OPTION_ARRAY. -CG Mon Nov 16 14:41:26 CET 2009 Fixed busy-loop in internal select mode for inactive clients with infinite connection timeout. -CG Thu Nov 12 16:19:14 CET 2009 Adding support for setting a custom error handler for fatal errors (previously, the implementation always called 'abort' in these cases). -CG/ND Wed Nov 11 12:54:16 CET 2009 Adding support for poll (alternative to select allowing for more than FD_SETSIZE parallel connections). -JM Wed Oct 28 20:26:00 CET 2009 Releasing libmicrohttpd 0.4.4. -CG Wed Oct 14 14:37:37 CEST 2009 Fixing (rare) deadlock due to SELECT missing SIGALRM by making all SELECT calls block for at most 1s. While this can in (rare) situations delay the shutdown by 1s, I think this is preferable (both performance and possibly portability-wise) over using a pipe for the signal. -CG Sun Oct 11 14:57:29 CEST 2009 Adding eCos license as an additional license for the non-HTTPS code of MHD. -CG Sun Oct 11 11:24:27 CEST 2009 Adding support for Symbian. -MR Fri Oct 9 15:21:29 CEST 2009 Check for error codes from pthread operations (to help with error diagnostics) and abort if something went wrong. -CG Thu Oct 8 10:43:02 CEST 2009 Added check for sockets being '< FD_SETSIZE' (just to be safe). -CG Mon Oct 5 21:17:26 CEST 2009 Adding "COOKIE" header string #defines. -CG Mon Oct 5 08:29:06 CEST 2009 Documenting default values. -CG Fri Aug 28 22:56:47 CEST 2009 Releasing libmicrohttpd 0.4.3. -CG Sun Aug 23 16:21:35 UTC 2009 Allow MHD_get_daemon_info to return the daemon's listen socket. Includes a test case that uses this functionality to bind a server to an OS-assigned port, look the port up with getsockname, and curl it. -DR Tue Aug 4 00:14:04 CEST 2009 Fixing double-call to read from content-reader callback for first data segment (as reported by Alex on the mailinglist). -CG Thu Jul 29 21:41:52 CEST 2009 Fixed issue with the code not using the "block_size" argument given to MHD_create_response_from_callback causing inefficiencies for values < 2048 and segmentation faults for values > 2048 (as reported by Andre Colomb on the mailinglist). -CG Sun May 17 03:29:46 MDT 2009 Releasing libmicrohttpd 0.4.2. -CG Fri May 15 11:00:20 MDT 2009 Grow reserved read buffer more aggressively so that we are not needlessly stuck reading only a handfull of bytes in each iteration. -CG Thu May 14 21:20:30 MDT 2009 Fixed issue where the "NOTIFY_COMPLETED" handler could be called twice (if a socket error or timeout occured for a pipelined connection after successfully completing a request and before the next request was successfully transmitted). This could confuse applications not expecting to see a connection "complete" that they were never aware of in the first place. -CG Mon May 11 13:01:16 MDT 2009 Fixed issue where error code on timeout was "TERMINATED_WITH_ERROR" instead of "TERMINATED_TIMEOUT_REACHED". -CG Wed Apr 1 21:33:05 CEST 2009 Added MHD_get_version(). -ND Wed Mar 18 22:59:07 MDT 2009 Releasing libmicrohttpd 0.4.1. -CG Wed Mar 18 17:46:58 MDT 2009 Always RECV/SEND with MSG_DONTWAIT to (possibly) address strange deadlock reported by Erik on the mailinglist --- and/or issues with blocking read after select on GNU/Linux (see select man page under bugs). -CG Tue Mar 17 01:19:50 MDT 2009 Added support for thread-pools. -CG/RA Mon Mar 2 23:44:08 MST 2009 Fixed problem with 64-bit upload and download sizes and "-1" being used to indicate "unknown" by introducing new 64-bit constant "MHD_SIZE_UNKNOWN". -CG/DC Wed Feb 18 08:13:56 MST 2009 Added missing #include for build on arm-linux-uclibc. -CG/CC Mon Feb 16 21:12:21 MST 2009 Moved MHD_get_connection_info so that it is always defined, even if HTTPS support is not enabled. -CG Sun Feb 8 21:15:30 MST 2009 Releasing libmicrohttpd 0.4.0. -CG Thu Feb 5 22:43:45 MST 2009 Incompatible API change to allow 64-bit uploads and downloads. Clients must use "uint64_t" for the "pos" argument (MHD_ContentReaderCallback) and the "off" argument (MHD_PostDataIterator) and the "size" argument (MHD_create_response_from_callback) now. Also, "unsigned int" was changed to "size_t" for the "upload_data_size" argument (MHD_AccessHandlerCallback), the argument to MHD_OPTION_CONNECTION_MEMORY_LIMIT, the "block_size" argument (MHD_create_response_from_callback), the "buffer_size" argument (MHD_create_post_processor) and the "post_data_len" argument (MHD_post_process). You may need to #include before from now on. -CG Thu Feb 5 20:21:08 MST 2009 Allow getting address information about the connecting client after the accept call. -CG Mon Feb 2 22:21:48 MST 2009 Fixed missing size adjustment for offsets for %-encoded arguments processed by the post processor (Mantis #1447). -CG/SN Fri Jan 23 16:57:21 MST 2009 Support charset specification (ignore) after content-type when post-processing HTTP POST requests (Mantis #1443). -CG/SN Fri Dec 26 23:08:04 MST 2008 Fixed broken check for identical connection address. -CG Making cookie parser more RFC2109 compliant (handle spaces around key, allow value to be optional). -CG Sat Dec 6 18:36:17 MST 2008 Added configure option to disable checking for CURL support. Added MHD_OPTION to allow specification of custom logger. -CG Tue Nov 18 01:19:53 MST 2008 Removed support for untested and/or broken SSL features and (largely useless) options. -CG Sun Nov 16 16:54:54 MST 2008 Added option to get unparsed URI via callback. Releasing GNU libmicrohttpd 0.4.0pre1. -CG Sun Nov 16 02:48:14 MST 2008 Removed tons of dead code. -CG Sat Nov 15 17:34:24 MST 2008 Added build support for code coverage analysis. -CG Sat Nov 15 00:31:33 MST 2008 Removing (broken) support for HTTPS servers with anonymous (aka "no") certificates as well as various useless dead code. -CG Sat Nov 8 02:18:42 MST 2008 Unset TCP_CORK at the end of transmitting a response to improve performance (on systems where this is supported). -MM Tue Sep 30 16:48:08 MDT 2008 Make MHD useful to Cygwin users; detect IPv6 headers in configure. Sun Sep 28 14:57:46 MDT 2008 Unescape URIs (convert "%ef%e4%45" to "中国"). -CG Wed Sep 10 22:43:59 MDT 2008 Releasing GNU libmicrohttpd 0.4.0pre0. -CG Wed Sep 10 21:36:06 MDT 2008 Fixed data race on closing sockets during shutdown (in one-thread-per-connection mode). -CG Thu Sep 4 23:37:18 MDT 2008 Fixed some boundary issues with processing chunked requests; removed memmove from a number of spots, in favor of using an index into the current buffer instead. -GS Sun Aug 24 13:05:41 MDT 2008 Now handling clients returning 0 from response callback as specified in the documentation (abort if internal select is used, retry immediately if a thread per connection is used). -CG Sun Aug 24 12:44:43 MDT 2008 Added missing reason phrase. -SG Sun Aug 24 10:33:22 MDT 2008 Fixed bug where MHD failed to transmit the response when the client decided not to send "100 CONTINUE" during a PUT/POST request. -CG Wed Jul 16 18:54:03 MDT 2008 Fixed bug generating chunked responses with chunk sizes greater than 0xFFFFFF (would cause protocol violations). -CG Mon May 26 13:28:57 MDT 2008 Updated and improved documentation. Releasing GNU libmicrohttpd 0.3.1. -CG Fri May 23 16:54:41 MDT 2008 Fixed issue with postprocessor not handling URI-encoded values of more than 1024 bytes correctly. -CG Mon May 5 09:18:29 MDT 2008 Fixed date header (was off by 1900 years). -JP Sun Apr 13 01:06:20 MDT 2008 Releasing GNU libmicrohttpd 0.3.0. -CG Sat Apr 12 21:34:26 MDT 2008 Generate an internal server error if the programmer fails to handle upload data correctly. Tweaked testcases to avoid running into the problem in the testcases. Completed zzuf-based fuzzing testcases. -CG Sat Apr 12 15:14:05 MDT 2008 Restructured the code (curl-testcases and zzuf testcases are now in different directories; code examples are in src/examples/). Fixed a problem (introduced in 0.2.3) with handling very large requests (the code did not return proper error code). If "--enable-messages" is specified, the code now includes reasonable default HTML webpages for various build-in errors (such as request too large and malformed requests). Without that flag, the webpages returned will still be empty. Started to add zzuf-based fuzzing-testcases (these require the zzuf and socat binaries to be installed). -CG Fri Apr 11 20:20:34 MDT 2008 I hereby dub libmicrohttpd a GNU package. -Richard Stallman Sat Mar 29 22:36:09 MDT 2008 Fixed bugs in handling of malformed HTTP requests (causing either NULL dereferences or connections to persist until time-out, if any). -CG Updated and integrated TexInfo documentation. -CG Tue Mar 25 13:40:53 MDT 2008 Prevent multi-part post-processor from going to error state when the input buffer is full and current token just changes processor state without consuming any data. Also, the original implementation would not consume any input in process_value_to_boundary if there is no new line character in sight. -AS Remove checks for request method after it finished writing response footers as it's only _pipelined_ requests that should not be allowed after POST or PUT requests. Reusing the existing connection is perfectly ok though. And there is no reliable way to detect pipelining on server side anyway so it is the client's responsibility to not send new data before it gets a response after a POST operation. -AS Clarified license in man page. Releasing libmicrohttpd 0.2.3 -CG Sat Mar 22 01:12:38 MDT 2008 Releasing libmicrohttpd 0.2.2. -CG Mon Feb 25 19:13:53 MST 2008 Fixed a problem with sockets closed for reading ending up in the read set under certain circumstances. -CG Wed Jan 30 23:15:44 MST 2008 Added support for nested multiparts to post processor. Made sure that MHD does not allow pipelining for methods other than HEAD and GET (and of course still also only allows it for http 1.1). Releasing libmicrohttpd 0.2.1. -CG Mon Jan 21 11:59:46 MST 2008 Added option to limit number of concurrent connections accepted from the same IP address. -CG Fri Jan 4 16:02:08 MST 2008 Fix to properly close connection if application signals problem handling the request. - AS Wed Jan 2 16:41:05 MST 2008 Improvements and bugfixes to post processor implementation. - AS Wed Dec 19 21:12:04 MST 2007 Implemented chunked (HTTP 1.1) downloads (including sending of HTTP footers). Also allowed queuing of a response early to suppress the otherwise automatic "100 CONTINUE" response. Removed the mostly useless "(un)register handler" methods from the API. Changed the internal implementation to use a finite state machine (cleaner code, slightly less memory consumption). Releasing libmicrohttpd 0.2.0. - CG Sun Dec 16 03:24:13 MST 2007 Implemented handling of chunked (HTTP 1.1) uploads. Note that the upload callback must be able to process chunks in the size uploaded by the client, MHD will not "join" small chunks into a big contiguous block of memory (even if buffer space would be available). - CG Wed Dec 5 21:39:35 MST 2007 Fixed race in multi-threaded server mode. Fixed handling of POST data when receiving a "Connection: close" header (#1296). Releasing libmicrohttpd 0.1.2. - CG Sat Nov 17 00:55:24 MST 2007 Fixed off-by-one in error message string matching. Added code to avoid generating SIGPIPE on platforms where this is possible (everywhere else, the main application should install a handler for SIGPIPE). Thu Oct 11 11:02:06 MDT 2007 Releasing libmicrohttpd 0.1.1. - CG Thu Oct 11 10:09:12 MDT 2007 Fixing response to include HTTP status message. - EG Thu Sep 27 10:19:46 MDT 2007 Fixing parsing of "%xx" in URLs with GET arguments. - eglaysher Sun Sep 9 14:32:23 MDT 2007 Added option to compile debug/warning messages; error messages are now disabled by default. Modified linker option for GNU LD to not export non-public symbols (further reduces binary size). Releasing libmicrohttpd 0.1.0. - CG Sat Sep 8 21:54:04 MDT 2007 Extended API to allow for incremental POST processing. The new API is binary-compatible as long as the app does not handle POSTs, but since that maybe the case, we're strictly speaking breaking backwards compatibility (since url-encoded POST data is no longer obtained the same way). - CG Thu Aug 30 00:59:24 MDT 2007 Improving API to allow clients to associate state with a connection and to be notified about request termination (this is a binary-compatible change). - CG Fixed compile errors under OS X. - HL Sun Aug 26 03:11:46 MDT 2007 Added MHD_USE_PEDANTIC_CHECKS option which enforces receiving a "Host:" header in HTTP 1.1 (and sends a HTTP 400 status back if this is violated). - CG Tue Aug 21 01:01:46 MDT 2007 Fixing assertion failure that occured when a client closed the connection after sending some data but not the full headers. - CG Sat Aug 18 03:06:09 MDT 2007 Check for out of memory when adding headers to responses. Check for NULL key when looking for headers. If a content reader callback for a response returns zero (has no data yet), do not possibly fall into busy waiting when using external select (with internal selects we have no choice). - CG Wed Aug 15 01:46:44 MDT 2007 Extending API to allow timeout of connections. Changed API (MHD_create_response_from_callback) to allow user to specify IO buffer size. Improved error handling. Released libmicrohttpd 0.0.3. - CG Tue Aug 14 19:45:49 MDT 2007 Changed license to LGPL (with consent from all contributors). Released libmicrohttpd 0.0.2. - CG Sun Aug 12 00:09:26 MDT 2007 Released libmicrohttpd 0.0.1. - CG Fri Aug 10 17:31:23 MDT 2007 Fixed problems with handling of responses created from callbacks. Allowing accept policy callback to be NULL (to accept from all). Added minimal fileserver example. Only send 100 continue header when specifically requested. - CG Wed Aug 8 01:46:06 MDT 2007 Added pool allocation and connection limitations (total number and memory size). Released libmicrohttpd 0.0.0. - CG Tue Jan 9 20:52:48 MST 2007 Created project build files and updated API. - CG