/libmicrohttpd, Small C library to run an HTTP server as part of another app
0.9.52nb1, Package name:
libmicrohttpd-0.9.52nb1, Maintainer: pkgsrc-users
GNU libmicrohttpd is a small C library that is supposed to make it
easy to run an HTTP server as part of another application. GNU
libmicrohttpd is free software and part of the GNU project. Key
features that distinguish libmicrohttpd from other projects are:
* C library: fast and small
* API is simple, expressive and fully reentrant
* Implementation is HTTP 1.1 compliant
* HTTP server can listen on multiple ports
* Four different threading models (select, poll, pthread, thread pool)
* Supported platforms include GNU/Linux, FreeBSD, OpenBSD, NetBSD, OS X, W32,
Symbian and z/OS
* Support for IPv6
* Support for SHOUTcast
* Support for incremental processing of POST data (optional)
* Support for basic and digest authentication (optional)
* Support for SSL3 and TLS (requires libgcrypt and libgnutls, optional)
* Binary is only about 32k (without TLS/SSL support and other optional
Required to run:
] Required to build:
Master sites: (Expand) SHA1:
Version history: (Expand)
- (2017-01-01) Updated to version: libmicrohttpd-0.9.52nb1
- (2016-10-20) Updated to version: libmicrohttpd-0.9.52
- (2016-10-08) Updated to version: libmicrohttpd-0.9.48nb3
- (2016-09-19) Updated to version: libmicrohttpd-0.9.48nb2
- (2016-03-05) Updated to version: libmicrohttpd-0.9.48nb1
- (2015-12-30) Updated to version: libmicrohttpd-0.9.48
CVS history: (Expand)
| 2017-01-01 17:06:40 by Adam Ciarcinski | Files touched by this commit (616) | |
Revbump after boost update
| 2016-12-21 11:31:42 by Thomas Klausner | Files touched by this commit (2) |
Add upstream patch to fix build on macOS and Solaris.
| 2016-10-19 21:54:10 by Thomas Klausner | Files touched by this commit (2) | |
Updated libmicrohttpd to 0.9.52.
Mon Oct 17 19:08:18 CEST 2016
Fixed misc. issues relating to upgrade.
Releasing experimental 0.9.52. -CG
Wed Oct 12 14:26:20 CEST 2016
Migrated repository from Subversion to Git. -CG
Tue Oct 11 18:09:56 CEST 2016
Deprecated MHD_USE_SSL, use MHD_USE_TLS instead. -CG
Tue Oct 11 18:14:40 MSK 2016
Code internal refactoring: 'pipes' renamed to 'inter-thread
communication (channels)/ITCs', as code can use different types
Optimizations: ITCs now always created in non-blocking mode.
Added configure parameter to choose ITC type.
Updated documentation and comments.
Minor errors fixed (related to heavy load). -EG
Thu Sep 22 17:51:04 CEST 2016
Implementing support for eventfd() instead of pipe() for
signaling (on platforms that support it); fixing #3557. -CG
Thu Sep 22 11:03:43 CEST 2016
Simplify internal error handling logic by folding it into the
MHD_socket_close_, MHD_mutex_lock_, MHD_mutex_unlock_ and
MHD_mutex_destroy_ functions. -CG
Tue Sep 13 22:20:26 MSK 2016
Added autoconf macro to enable maximum platform
features. Fixed compiling on Solaris. -EG
Wed Sep 7 12:57:57 CEST 2016
Fixing #4641. -Hawk
Wed Sep 7 00:28:59 CEST 2016
Adding remaining "_"-markups for i18n (#4614). -CG
Tue Sep 6 23:39:56 CEST 2016
Allow out-of-order nonces for digest authentication (#4636). -CG
Tue Sep 6 21:29:09 CEST 2016
Martin was right, "socket_context" should be "void *"
in `union MHD_ConnectionInfo`. -MS
Sun Sep 4 18:16:32 CEST 2016
Fixing potential memory leak (#4634). -CG
Sun Sep 4 17:25:45 CEST 2016
Tests for "Upgrade" logic are now in place and passing.
However, still need to make sure code is portable. -CG
Sat Sep 3 11:56:20 CEST 2016
Adding logic for handling HTTP "Upgrade" in thread-per-connection
mode. Also still untested. -CG
Sat Aug 27 21:01:43 CEST 2016
Adding a few extra safety checks around HTTP "Upgrade"
(against wrong uses of API), and a testcase. -CG
Sat Aug 27 20:07:53 CEST 2016
Adding completely *untested* logic for HTTP "Upgrade"
Sat Aug 27 18:20:38 CEST 2016
Releasing libmicrohttpd 0.9.51. -CG
Tue Aug 23 22:54:07 MSK 2016
Internal refactoring: W32 compatibility layer was finally
replaced with several specialized abstraction layers for
sockets, control pipes (inter-thread communication) and
generic functions. Now all major platform functions
(including threads and mutex) are implemented in thin
Improved performance on W32 due to eliminating
translation of error to POSIX codes and using W32 codes
directly (through macros).
Improved error reporting on all platforms.
Improved error handling and reporting on Darwin.
Minor fixes. -EG
Tue Aug 16 15:14:30 MSK 2016
Minor improvement for monotonic clock.
Minor configure fix for non-bash shells. -EG
Mon Aug 15 13:06:52 CEST 2016
Fixed possible crash due to write to read-only region of
memory given ill-formed HTTP request (write was otherwise
harmless, writing 0 to where there was already a 0).
Fixed issue with closed connection slots not immediately
being available again for new connections if we reached
our connection limit.
Avoid even accept()ing connections in certain thread modes
if we are at the connection limit and
MHD_USE_PIPE_FOR_SHUTDOWN is available. -CG
Wed Aug 10 16:42:57 MSK 2016
Moved threads, locks and mutex abstraction to separate files,
some minor errors fixed, added support for thread name functions
on various platforms, added configure flag for disable thread
Sat Jul 23 20:45:51 CEST 2016
Added macro detection of speed/size compiler optimization.
Added different implementation of functions in mhd_str.c for
size optimization. Enabled automatically if compiler size
optimization is detected or MHD_FAVOR_SMALL_CODE is defined.
Added unit tests for all mhd_str.c functions. -EG
Sat Jul 16 21:54:49 CEST 2016
Warn user if they sent connection into blocking
state by not processing all POST data, not suspending,
and not running in external select mode. -CG
Fri Jul 8 21:35:07 CEST 2016
Fix FIXME in tutorial. -CG
Fri Jul 8 15:57:06 CEST 2016
Adding support for 308 status code. -CG
Sat Jun 25 13:49:31 CEST 2016
Use shutdown to trigger select on NetBSD. -EG
Thu Jun 2 09:55:50 CEST 2016
Releasing libmicrohttpd 0.9.50. -CG
Wed Jun 1 21:59:34 CEST 2016
Do not send "Content-Length" header for 1xx/204/304 status codes. -CG
Tue May 17 13:32:21 CEST 2016
Allow clients to determine whether a connection is suspended;
introduces MHD_CONNECTION_INFO_CONNECTION_SUSPENDED. -CG/FC
Sun May 15 12:17:25 CEST 2016
Fix handling system or process resource limit exhaustion upon
Thu May 12 08:42:19 CEST 2016
Fix handling of partial writes in MHD_USE_EPOLL_LINUX_ONLY; only
consider sockets returning EAGAIN as unready. -CG/CP
Mon May 2 06:08:26 CEST 2016
Adding logic to help address FE performance issue as
discussed on the mailinglist with subject
"single-threaded daemon, multiple pending requests, responses \
The new logic is only enabled when MHD_USE_EPOLL_TURBO is set.
Note that some additional refactoring was also done to clean up
the code and avoid code duplication, which may have actually fixed
an unrelated issue with HTTPS and a POLL-style event loop. -CG
Sat Apr 30 10:22:37 CEST 2016
Added clarifications to manual based on questions on list. -CG
Sat Apr 23 20:12:01 CET 2016
Tests perf_get_concurrent and test_concurrent_stop ported to use
pthread instead of fork(). Added more error detections. -EG
Sat Apr 23 16:06:30 CET 2016
Improved test_quiesce test. -EG
Sat Apr 23 15:39:38 CET 2016
Notify other threads in MHD_quiesce_daemon() so listen socket FD
is removed from awaiting select() and poll(). -EG
Sat Apr 23 14:17:15 CET 2016
Revert "shutdown trigger select" on Darwin. Fixed daemon shutdown
on Darwin without "MHD_USE_PIPE_FOR_SHUTDOWN" option. -EG
Fri Apr 22 14:29:28 CET 2016
Fixed race conditions when stopping quiesced daemon with thread
Wed Apr 20 18:12:30 CET 2016
Fixed macros in sysfdsetsize.c which could prevent compiling with
Fixed comments in mhd_str.c.
Updated test_post.c to not ignore specific error on W32 if libcurl
is built with workaround for WinSock bug. -EG
Mon Apr 18 19:35:14 CET 2016
Fixed data races leading to inability in rare situations to
resume suspended connection. -EG
Tue Apr 13 21:46:01 CET 2016
Removed unneeded locking for global timeout list in
Added 'simplepost' and 'largepost' examples to VS projects.
Added strtoXX() locale-independent replacement functions.
Added more error checking and minor fixes in digest auth
functions - should improve security.
Ignored specific errors in 'test_post' test until libcurl
will implement workaround for WinSock bug.
Fixed handling of caller-supplied socket with
MHD_OPTION_LISTEN_SOCKET (regression in 0.9.49).
Various cosmetics and comments fixes. -EG
Sat Apr 09 13:05:42 CET 2016
Releasing libmicrohttpd 0.9.49. -EG
Fri Apr 08 18:32:17 CET 2016
Some minor internal fixes, addition error checking and
Reworked usage of sockets shutdown() - now work equally
on all platforms, disconnection should be "more graceful". -EG
Tue Mar 15 21:52:27 CET 2016
Do not crash if pthread_create() fails. -DD
Tue Mar 15 20:29:34 CET 2016
Do not use eready DLL data structure unless
we are actually using epoll(). -DD/CG
Fri Feb 5 20:43:11 CET 2016
Fixed testsuite compile warning on W32.
Added check test for triggering poll() on
listen socket. -EG
Thu Feb 4 11:38:11 CET 2016
Added some buffer overrun protection.
Fixed handling of misformed URI with spaces. -EG
Wed Feb 3 15:41:57 CET 2016
Make signal-pipe non-blocking and drain it. -CG
Sat Jan 30 15:49:07 CET 2016
Fix running select() with empty fdsets on W32. -EG
Mon Jan 25 13:45:50 CET 2016
Added check test for triggering select() on
listen socket. -EG
Thu Jan 21 19:35:18 CET 2016
Fixed old bug with making sockets non-blocking on
various platforms so now sockets are really
non-blocking on all supported platforms.
Reworked and fixed code for using SOCK_CLOEXEC,
SOCK_NONBLOCK and EPOLL_CLOEXEC resulting in
fewer used system calls. -EG
Tue Jan 19 20:59:59 CET 2016
Cleaned up and optimized with minor fixes code for
making sockets non-blocking non-inheritable. -EG
Tue Jan 19 11:14:18 CET 2016
Removed workaround for Cygwin non-blocking sockets:
handling non-blocking sockets were fixed in Cygwin
and libmicrohttpd how uses non-blocking sockets on
all platforms. -EG
Mon Jan 18 23:54:45 CET 2016
Cleaned up examples to avoid giving oversimplified code
that may lead to complications if adopted naively. -CG
Sun Jan 17 11:18:55 CET 2016
Do no refuse to send response if sendfile() failed with
EINVAL (common error for files located on SMB/CIF). -EG
Sat Jan 16 19:14:39 CET 2016
Use US-ASCII only (instead of user locale settings) when
performing caseless string comparison as required by
Tue Jan 12 16:10:09 CET 2016
Fixed declaraion of MHD_get_reason_phrase_for(). -EG
Mon Jan 11 19:58:50 CET 2016
Configure.ac small fixes and refactoring. -EG
| 2016-10-07 20:26:14 by Adam Ciarcinski | Files touched by this commit (611) | |
Revbump post boost update
| 2016-09-19 15:04:29 by Thomas Klausner | Files touched by this commit (147) |
Recursive PKGREVISION bump for gnutls shlib major bump.
| 2016-03-05 12:29:49 by Jonathan Perkin | Files touched by this commit (1813) | |
Bump PKGREVISION for security/openssl ABI bump.
| 2015-12-30 00:35:00 by Thomas Klausner | Files touched by this commit (2) | |
Update libmicrohttpd to 0.9.48:
Fri Dec 18 15:54:50 CET 2015
Releasing libmicrohttpd 0.9.48. -CG
Tue Dec 15 18:35:55 CET 2015
Improved compatibility with VS2010 and other older
Tue Dec 8 21:48:44 CET 2015
Default backlog size for listen socket was changed from
32 to SOMAXCONN, added new option MHD_OPTION_LISTEN_BACKLOG_SIZE
to override default backlog size.
If not all connections can be handled by MHD_select() than
at least some of connections will be processed instead of
failing without any processing.
Fixed redefenition of FD_SETSIZE on W32 so select() will
work with 2000 connections instead of 64.
Better handled redefenition of FD_SETSIZE on all
Sat Dec 5 17:30:45 CET 2015
Close sockets more aggressively in multi-threaded
mode (possibly relevant for idle servers). -CG
| 2015-12-04 21:33:53 by Thomas Klausner | Files touched by this commit (3) | |
Update to 0.9.47:
Fri Dec 4 13:53:05 CET 2015
Releasing libmicrohttpd 0.9.47. -CG
Thu Dec 3 18:21:44 CET 2015
Reworked VS project files. Used x64 build tools by
default, many optimizations, fixes.
Added project files for VS 2015. -EG
Tue Dec 1 14:05:13 CET 2015
SPDY is dead, killing experimental libmicrospdy. -CG
Tue Dec 1 10:01:12 CET 2015
New logic for controlling socket buffer modes.
Eliminated delay before last packet in response and before
"100 Continue" response on all platforms. Also response
header are pushed to client without waiting for response
Wed Nov 25 17:02:53 CET 2015
Remove 200ms delay observable with keep-alive on Darwin
and *BSD platfroms. -EG
Tue Nov 10 15:25:48 CET 2015
Fix issue with shutdown if connection was resumed just
before shutdown. -FC