aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-12-19 18:30:00 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2021-12-19 18:36:21 +0300
commita4ae51f5812603feff10e536aa05cb00808bc7d5 (patch)
treef398d378a440358ceebf0782cfa6ec53a0db8936 /NEWS
parentfb25f5f301530d3aa424aa98802f0875dd72fde5 (diff)
downloadlibmicrohttpd-a4ae51f5812603feff10e536aa05cb00808bc7d5.tar.gz
libmicrohttpd-a4ae51f5812603feff10e536aa05cb00808bc7d5.zip
Released GNU libmicrohttpd 0.9.74v0.9.74
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS152
1 files changed, 152 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 8cd7709f..4cc371d7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,155 @@
1Web 19 Dec 2021 18:30:00 MSK
2Released GNU libmicrohttpd 0.9.74
3
4 This release brings a lot of fixes and improvements, and
5 important new features.
6 The most significant addition is the new experimental
7 implementation of WebSockets contributed by David Gausmann. This
8 implementation is not fully tested yet so currently it is disabled
9 by default.
10 Other changes include a lot of improvements and clarifications
11 in doxy comments in microhttpd.h header file, improved compliance
12 with the RFC HTTP specifications, the new implementation of reply
13 header forming, the new implementation of request chunked encoding
14 parsing, new automatic error replies, internal optimisations, and
15 many important fixes, including fixes for long-standing bugs.
16
17 More detailed list of notable changes:
18
19 API changes:
20 + Added new function MHD_get_reason_phrase_len_for().
21 + Added MHD_CONNECTION_INFO_HTTP_STATUS type of information
22 queried by MHD_get_connection_info().
23 + Added new response flag MHD_RF_SEND_KEEP_ALIVE_HEADER to force
24 sending of "keep-alive" header even if not required by RFC.
25 + Added new response creation function
26 MHD_create_response_from_buffer_with_free_callback_cls() with
27 custom cleanup callback.
28 + Added new response flag MHD_RF_HTTP_1_0_COMPATIBLE_STRICT with
29 the same functionality as existing MHD_RF_HTTP_VERSION_1_0_ONLY
30 flag. The old flag will be deprecated.
31 + Added new response flag MHD_RF_HTTP_1_0_SERVER with the same
32 functionality as existing MHD_RF_HTTP_VERSION_1_0_RESPONSE flag.
33 The old flag will be deprecated.
34
35 New features:
36 + Added experimental WebSockets extension with separate header.
37 Disabled by default as it is not fully tested yet.
38 + Added '--enable-sanitizers[=address,undefined,leak,user-poison]'
39 configure parameter (instead of '--enable-sanitizer'),
40 implemented custom memory poisoning for memory pools.
41
42 Improvements and enhancements:
43 * Doxy function descriptions was corrected, clarified, extended,
44 and improved. Now it should be much easier to learn MHD just by
45 reading the headers.
46 * Completely rewritten reply header forming. New implementation is
47 more robust, simpler maintainable and expandable, and better
48 follows RFC HTTP specifications.
49 * Performance improvements: now HTTP version and request method are
50 decoded one time only (previously MHD used string comparison many
51 times during processing the data).
52 * Rewritten request chunked payload decoding. The new
53 implementation better conforms to the HTTP RFC, detects format
54 problems earlier, replies to the clients with description of
55 detected problems, handles untypical (but syntactically correct)
56 values properly.
57 * Added special replies for wrong/unsupported HTTP versions in
58 requests, broken HTTP chunked encoding in requests,
59 * As required by HTTP RFC, added automatic error replies if client
60 used broken chunked encoding, too large chunk size, too large
61 payload size, or broken Content-Length header.
62 * Optimized connection's memory pool handling.
63 * Changed timeout precision from one second to one millisecond.
64 * Added some checks for incorrect user data, reporting problems in
65 MHD log.
66 * Improved performance of hash calculations functions by using
67 compiler built-ins (if available).
68 * Implemented SHA-1 calculations (required for WebSockets).
69 * Added universal MSVC project that works with any (sufficiently
70 new) version of MSVC.
71 * Developed simple HTTP client to test MHD under very special
72 conditions.
73 * Implemented 45 new tests.
74 * Improved existing tests to test more aspects of MHD.
75 * Added check for correct results of system and libcurl functions.
76 * Response headers are checked during forming of responses.
77 * HTTPS tests were improved.
78 * Added rebuild on W32 of all required files if files are missing.
79 * Many internal optimisations and improvements.
80
81 Functionality changes:
82 * Keep-alive header is omitted by default for HTTP/1.1 connections.
83 Use of header can be enforced by response flag.
84 * Chunked encoding is used for HTTP/1.1 non-keep-alive connections
85 for responses with unknown size. Previously MHD used "indication
86 of the end of the response by closing connection" in such cases,
87 however it is not correct for HTTP/1.1 connections as per HTTP
88 RFC.
89 * As required by HTTP RFC, use HTTP/1.1 version instead of HTTP/1.0
90 in reply headers when client is HTTP/1.0 . HTTP/1.0 version can
91 be enforced by response flag.
92 * User response headers are used in replies in the same order as
93 was added by application.
94 * Allowed tab characters in response header values.
95 * All custom "Connection:" response headers are automatically
96 combined into single "Connection:" header.
97 * "keep-alive" token silently dropped from custom "Connection:"
98 response header. "Keep-alive" cannot be enforced and used
99 automatically if possible.
100 * Allow tab character in custom response header value.
101 * Disallow space character in custom response header value.
102 * Do not allow responses with 1xx codes for HTTP/1.0 requests.
103 * Detected and reported incorrect "Upgrade" responses.
104 * W32 targets are changed to Vista+ by default. XP is supported
105 still.
106
107 Fixes:
108 # Fixed short busy-waiting (up to one second) when connection is
109 going to be expired and closed.
110 # Fixed handling of errors during start of new connection, fixed
111 inability to accept new connections in thread-per-connection mode
112 due to the missing decrement of number of daemon's connections if
113 start of new thread is failed.
114 # Fixed incorrect parsing of LFLF, LFCR, CRCR, and bare CR as
115 single linefeed in request header and request chunked payload.
116 Now only CRLF or bare LF are recognized as linefeed.
117 # Fixed response chunked encoding handling. Now it works properly
118 with non-keep-alive connection, with fixed size replies (if
119 chunked was enforced by header), and in other situations.
120 # Other fixes for chunked replies.
121 # Fixed handling of custom connection timeout in thread-per-
122 connection mode.
123 # Fixed wrongly used MHD_REQUEST_TERMINATED_COMPLETED_OK code for
124 application notification when MHD_REQUEST_TERMINATED_WITH_ERROR
125 code must be used.
126 # Fixed code MHD_REQUEST_TERMINATED_READ_ERROR not reported (code
127 MHD_REQUEST_TERMINATED_WITH_ERROR was incorrectly used instead).
128 # Fixed handling of request chunked encoding with untypical
129 formatting.
130 # Fixed processing of last part of hex-encoded values under
131 certain conditions.
132 # Fixed value returned for MHD_CONNECTION_INFO_REQUEST_HEADER_SIZE.
133 # Fixed returned value for MHD_FEATURE_AUTOSUPPRESS_SIGPIPE on W32,
134 now it is MHD_YES as W32 does not need SIGPIPE suppression.
135 # Fixed portability of bitwise NOT for enums values.
136 # Fixed SHA-256 and MD5 calculations with unaligned data.
137 # Fixed incorrect caseless matching for HTTP version.
138 # Fixed incorrect caseless matching for request method.
139 # Fixed compatibility with old GnuTLS versions.
140 # Fixed compiler warnings on 32-bits platforms.
141 # Fixed blocking sockets setting in tests and examples for W32.
142 # Fixed examples to really use libmagic if present.
143 # HTTPS tests were fixed.
144 # Fixed libcurl test with case-insensitive match for HTTP methods,
145 method names must use case-sensitive match.
146 # Fixed tests compatibility with old libcurl versions.
147 # Fixed build on W32 with llvm-dlltool (this tool is too
148 oversimplified)
149
150 -- Evgeny Grin (Karlson2k)
151
152
1Sun 25 Apr 2021 14:00:00 MSK 153Sun 25 Apr 2021 14:00:00 MSK
2Released GNU libmicrohttpd 0.9.73 154Released GNU libmicrohttpd 0.9.73
3 155