libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libmicrohttpd] GNU libmicrohttpd 0.9.53 released


From: Evgeny Grin
Subject: [libmicrohttpd] GNU libmicrohttpd 0.9.53 released
Date: Wed, 12 Apr 2017 00:53:34 +0300
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

Dear all,


I'm glad to announce the release of GNU libmicrohttpd 0.9.53.

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 fully HTTP 1.1 compliant and supports IPv6. Finally, GNU
libmicrohttpd is fast, portable and has a simple API and (without TLS
support and other optional features) a small binary size (~32k).

This release include a large number of fixes and new features as well.
Most noticeable changes:
* HTTP "Upgrade" is deeply reworked and tested on all supported
  platforms
* Added MHD_USE_AUTO and MHD_USE_AUTO_INTERNAL_THREAD flags for
  automatic selection of polling function depending on platform
  capabilities and requested mode - especially useful for multiplatform
  application
* Renamed some of MHD flags, now they are self-explainable and more
  obvious, like MHD_USE_INTERNAL_POLLING_THREAD instead of
  MHD_USE_SELECT_INTERNALLY; old names are still supported
* Darwin, *BSD and Solaris support improved

Other changes:
* Added 'configure' parameter for building without "Upgrade" support
* Added support for suspending connection in thread-per-connection mode
* Added HTTP "Upgrade" simple example
* Added special handling of "fast" connections with small request
  and response - they are fully processed in one turn
* Added detection and rejection of invalid combinations of daemon flags
* Added detection of invalid combination of daemon option with flags
* Added support of getting connection timeout value by
  MHD_get_connection_info()
* Added ability to get actual daemon flags by MHD_get_daemon_info()
* Added usage of "calloc()" where supported
* Added support for more efficient setting of thread names on some
  platforms (Solaris, NetBSD etc.)
* Added support for SO_EXCLBIND on Solaris
* Added usage of SO_REUSEADDR (in addition to SO_REUSEPORT) for
  MHD_OPTION_LISTENING_ADDRESS_REUSE options
* Reworked handling connection in epoll mode so all active connections
  are processed exactly one time per turn
* Changed monitoring for closure: now connection are read only when more
  incoming data is required, all connection are monitored for OOB data
  (which treated as error)
* except_fd_set now is not optional now for MHD_get_fdset(),
  MHD_get_fdset2() and MHD_run_from_select()
* Improved connection processing in epoll mode: now connection can
  process both read and write each turn
* Updated HTTP response codes to latest: now MHD return code
  MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE (431) instead of old
  MHD_HTTP_REQUEST_ENTITY_TOO_LARGE (413) for very long header.
* Updated and added all missing standard and additional HTTP methods
* Updated and added all missing standard HTTP headers names (and
  headers categories)
* Added more tests to test-suite
* Added real run-test detection instead of guessing of triggering
  select() by shutdown of listening socked
* Added support for chunk size > 16 MB (up to 2^64-1), ignored chunk
  extensions instead of triggering an error
* Converted many run-time 'strlen()' to compile-time calculations
* Many data races fixes and other thread-safety improvements
* Some fixes in suspend-resume data races
* Eliminated calling application on suspended connection (which before
  could happen under certain circumstances)
* Fixed unintentional usage of SO_REUSEADDR on W32
* Fixed MHD_OPTION_LISTENING_ADDRESS_REUSE on Linux kernels before 3.9
* Fixed sending responses backed by files not supported by sendfile()
* Fixed thread safety for responses backed by file FD
* Fixed handling of more than 128 ongoing connection and 128 incoming
  connections in epoll mode
* Resolved busy-waiting under certain conditions in HTTPS mode
* Fixed wrong value returned by MHD_get_timeout()
* Fixed reset of timeout on resumed connections.
* Fixed never-expired timeouts on HTTPS connections.
* Fixed fail if connection suspended and resumed by application several
  times without processing incoming data
* Many other fixes, improvements and optimisations.


You can download GNU libmicrohttpd from

* ftp://ftp.gnu.org/gnu/libmicrohttpd/ and all GNU FTP mirrors.
* Our git repository at https://gnunet.org/git/libmicrohttpd.git

Please report bugs to our bugtracker at https://gnunet.org/bugs/.

The documentation (including a reference manual and tutorial) can be
found at http://www.gnu.org/software/libmicrohttpd/.


-- 
Best Wishes,
Evgeny Grin

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]