ChangeLog 66.43 KiB
Changes in version 2.0.10-stable (16 Dec 2010)
  [Autogenerated from the Git log, sorted and cleaned by hand.]
BUGFIXES
 o Minor fix for IOCP shutdown handling fix (2599b2d Kelly Brock)
 o Correctly notify the main thread when activating an event from a subthread (5beeec9)
 o Reject overlong http requests early when Expect:100-continue is set (d23839f Constantine Verutin)
 o EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings with -DNDEBUG. (b63ab17 Evan Jones)
CODE CLEANUPS
 o bufferevent-internal.h: Use the new event2/util.h header, not evutil.h (ef5e65a Evan Jones)
 o Use relative includes instead of system includes consistently. (fbe64f2 Evan Jones)
 o Make whitespace more consistent
TESTING
 o tests: Use new event2 headers instead of old compatibility headers. (4f33209 Evan Jones)
DOCUMENTATION
 o Document that the cpu_hint is only used on Windows with IOCP for now (57689c4)
 o Add stuff to "whats new in 2.0" based on reading include changes since August. (18adc3f)
Changes in 2.0.9-rc (30 Nov 2010):
  [Autogenerated from the Git log, sorted and cleaned by hand.]
NEW AND MODIFIED APIs
 o Add a function to change a listener's callback. (46ee061)
 o Make evbuffer_add_file take ev_off_t, not off_t (ac7e52d)
 o Make rate-limits go up to SIZE_MAX/EV_SSIZE_MAX, not just INT32_MAX (2cbb1a1)
 o Add a bufferevent_get_base function (aab49b6)
MAJOR BUGFIXES
 o Disable changelist for epoll by default because of Linux dup() bug; add an option and/or an envvar to reenable it for speed. (9531763)
 o Fix a 100%-CPU bug where an SSL connection would sometimes never stop trying to write (1213d3d)
 o Fix a nasty bug related to use of dup() with epoll on Linux (c281aba)
 o Fix bugs in posix thread-id calculation when sizeof(pthread_t) != sizeof(long) (fbaf077)
 o Fix some ints to evutil_socket_t; make tests pass on win64. (f817bfa Dimitre Piskyulev)
 o Set _EVENT_SIZEOF_VOID_P correctly on win32 and win64 (1ae82cd Dimitre Piskyulev)
 o Avoid double-invocation of user callback with EVUTIL_EAI_CANCEL (abf01ed)
 o Set SO_UPDATE_ACCEPT_CONTEXT on sockets from AcceptEx so that shutdown() can work (52aa419)
 o When closing a filtering bufferevent, clear callbacks on the underlying bufferevent (fc7b1b0)
NEW AND MODIFIED HTTP APIs
 o Add evhttp_parse_query_str to be used with evhttp_uri_parse. (2075fbc)
 o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
 o Define enumerators for all HTTP methods, including PATCH from RFC5789 (75a7341 Felix Nawothnig)
 o Functions to actually use evhttp_bound_socket with/as evconnlistener. (006efa7)
 o Add evhttp_request_get_command so code can tell GET from POST without peeking at the struct. (49f4bf7)
 o Introduce absolute URI parsing helpers. (86dd720 Pavel Plesov)
 o Revise evhttp_uri_parse implementation to handle more of RFC3986 (eaa5f1d)
 o Add evhttp_connection_get_base() to get the event_base from an http connection (cd00079)
 o Let evhttp_parse_query return -1 on failure (b1756d0)
 o New evhttp_uri(encode|decode) functions to handle + and NUL characters right (a8148ce)
 o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
 o Tweak interface for allowed methods (f5b391e)
 o Add evhttp server alias interface, correct flagging of proxy requests. (aab8c38 Christopher Davis)
HTTP BUGFIXES
 o Add some comments to http.c and make a few functions static. (90b3ed5)
 o Fix Content-Length when trying send more than 100GB of data (!) on an evhttp. (525da3e)
 o Fix a bug where we would read too much data in HTTP bodies or requests. (58a1cc6)
 o Correctly count req->body_size on http usage without Content-Length (8e342e5)
 o Avoid missed-request bug when entire http request arrives before data is flushed (74c0e86)
 o reset "chunked" flag when sending non-chunked reply (aa5f55f Joachim Bauch)
 o evhttp_encode_uri encodes all reserved characters, including !$'()*+,/:=@ (2e63a60)
 o Replace exact-version checks for HTTP/1.1 with >= or < checks (647e094)
 o evhttp: Return 501 when we get an unrecognized method, not 400. (536311a)
 o Don't disable reading from the HTTP connection after sending the request to be notified of connection-close in time (c76640b Felix Nawothnig)
 o Never call evhttp_readcb while writing. (0512487)
 o Try to fix an assertion failure related to close detection (0faaa39)
 o Correctly detect timeouts during http connects (04861d5)
 o Preliminary support for Continue expectation in evhttp. (fa9305f Christopher Davis)
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
OTHER BUGFIXES o Correct logic for realigning a chain in evbuffer_add (e4f34e8) o Fix a minor syntax error that most compilers didn't care about (e56ff65) o Fix some uses of int for socket in regress (5d389dc) o Check return value for ioctlsocket on win32 (f5ad31c Trond Norbye) o Fix som event_warns that should have been event_warnx (19c71e7) o Fix signal handler types for win64. (b81217f) o Try to clear up more size_t vs int/long issues. (598d133) o Make sure IOCP evconnlistener uses virtual events. (7b40a00 Christopher Davis) o Don't free evdns_request handles until after the callback is invoked (9ed30de) o Fix some more cancel-related bugs in getaddrinfo_async (c7cfbcf) o Make evdns_getaddrinfo_cancel threadsafe (d51b2fc) o Only clear underlying callbacks when the user hasn't reset them. (1ac5b23) o Fix bug in bufferevent_connect on an openssl bufferevent that already had an fd (4f228a1) o Resolve an evport bug in the thread/forking test (3a67d0b) o Make sure the CLOEXEC flag is set on fds we open for base notification (3ab578f) o Fix IRIX build. sa_family collides with a #define in sys/socket.h on IRIX. (e874982 Kevin Bowling) o If not WIN32, include <sys/socket.h> in event2/util.h. (1cd45e5 Kevin Bowling) o Fix some C99-style comments to work with the xlC compiler. (c2e5e22 Kevin Bowling) o Add some checks since lack of TAILQ_FOREACH doesn't imply lack of FIRST, END, NEXT, or INSERT_BEFORE. Quiet some warnings in XL C. (c4dc335 Kevin Bowling) o Reworked AIX __ss_family workaround to use AC_STRUCT_MEMBER. (2e2a3d7 Kevin Bowling) o Take select from <sys/select.h> when testing in autoconf. AIX build fix. (a3a9f6b Kevin Bowling) o Fix snprintf related failures on IRIX. (3239073 Kevin Bowling) o Remove _event_initialized(); make event_initialized() a function(); make it consistent on windows and non-windows (652024b) o Do not let EVLOOP_ONCE exit the loop until all deferred callbacks have run (2d5e1bd) o Make EVLOOP_ONCE ignore internal events (0617a81) o Possible crash fix when freeing an underlying bufferevent of an openssl bufferevent (29f7623) HTTP CLEANUPS o Stop using Libevent-1 headers in regress_http (1f507d7) o Modernize header usage in bench_http.c (e587069) o fix signed/unsigned warnings in http.c (74a91e5) o Update the HTTP regression tests to use Libevent2 apis for non-http stuff (d9ffa89) o Start porting http tests to not use legacy interfaces (8505a74) o Convert the rest of the http tests to be non-legacy unit tests. (9bb8239) o Rename the confusing "base" static variable in regress_http.c (353402a) o Stop accessing http request struct directly from in the unit tests. (0b137f4) o Refactor http version parsing into a single function (a38140b) TESTING o Improvements to tinytest_macros.h (ad923a1) o Add a huge pile of tests for the new URI functions, and make them pass. (a5a76e6) o Unit tests for evhttp_uri_set* (bc98f5e) o Increase the skew tolerance to 2 seconds in thread/deferred_cb_skew (f806476 Christopher Davis) o Reorder backends in test.sh to match preference order in event.c (ece974f) o Add a stress test for getaddrinfo_cancel (da1bf52) o Units test for unexpected evhttp methods. (75e3320) DOCUMENTATION o Document behavior of URI parsing more thoroughly. (3a33462) o Document that two bufferevent functions only work on socket bufferevents (70e1b60) o add a requested docstring for event_rpcgen.CommandLine.__init__ (f1250eb) o Fix a mistake in http documentation found by Julien Blache (229714d) o Add a basic example of how to write a static HTTP server. (4e794d5) o Document event_get_assignment (88be27d) o Note that reentrant calls to libevent from logging cbs may fail badly (e431bcd) o Clarify EVLOOP_* documentation to be more precise. (057a514) CLEANUPS o Simplify the logic for choosing EPOLL_CTL_ADD vs EPOLL_CTL_MOD (2c66983) o Rename "size" variables in win32select that were really fd counts. (b6a158c) o Fix even more win64 warnings (7484df6) o Fix even more win64 warnings: buffer, event_tagging, http, evdns, evrpc (545a611) o Fix more wn64 warnings. (34b84b9 Christopher Davis) o Use the label_len local variable in evdns instead of recalculating it over and over (ba01456) o Fix some irix compilation warnings spotted by Kevin Bowling (7bcace2)
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
Changes in 2.0.8-rc (14 Oct 2010): [Autogenerated from the Git log, sorted and cleaned by hand.] NEW APIS o Add error callback to evconnlistener (c4be8d8 Simon Perreault) o Add a LEV_OPT_THREADSAFE option for threadsafe evconnlisteners (127d4f2) CHANGED BEHAVIOR o Correct logic on disabling underlying bufferevents when disabling a filter (ac27eb8) BUGFIXES o Obey enabled status when unsuspending (040a019 Simon Perreault) o Warn when using the error-prone EV_SIGNAL interface in an error-prone way. Also, fix a couple of race conditions in signal.c (720bd93) O Make default signal backend fully threadsafe (95a7d41) o Put internal events at highest priority (90651b3) o Fix warnings in the main codebase flagged by -Wsigned-compare (9c8db0, 5e4bafb, 5c214a, 6be589a, e06f514) o Fix compile in kqueue.c (b395392 Sebastian Hahn) o Do not search outside of the system directory for windows DLLs (d49b5e3) o Fix a spurious-call bug on epoll.c (0faaee0) o Send a shutdown(SHUT_WR) before closing an http connection (e0fd870 Christopher Davis) o Fix warnings on mingw with gcc 4.5 (5b7a370) o Fix an EINVAL on evbuffer_write_iovec on OpenSolaris. (fdc640b) o Fix allocation error for IOCP listeners. Probably harmless, since struct event is big (481ef92) o Make iocp/listener/error work; don't accept again if lev is disabled. (62b429a Christopher Davis) o Handle rate-limiting for reading on OpenSSL bufferevents correctly. (819b171) o Fix serious bugs in per-bufferevent rate-limiting code (34d64f8) o Avoid spurious reads from just-created open openssl bufferevents (223ee40) o Fix a case where an ssl bufferevent with CLOSE_ON_FREE didn't close its fd (93bb7d8) o The corrected bufferevent filter semantics let us fix our openssl tests (34331e4) TESTING o Make SSL tests cover enabling/disabling EV_READ. (a5ce9ad) o Bump to the latest version of tinytest (f0bd83e) o Unit tests for listener error callbacks (045eef4) o New unit test for ssl bufferevents starting with connected SSLs. (02f6259) DEBUGGABILITY o Make debugging output for epoll backend more comprehensive (ec2b05e) o Make event.c debugging messages report fds (e119899) o Make the --enable-gcc-warnings option include signed comparison warnings (d3b096c) DEADCODE REMOVAL o Remove the now-useless evsig_caught and evsig_process (4858b79) o Remove event_base.evsigbase; nothing used it. (38d0960) Changes in 2.0.7-rc (9 Sep 2010): [Autogenerated from the Git log, sorted and cleaned by hand.] NEW APIS o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143) o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis) BUGFIXES o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43) o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini) o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini) o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd) o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843) o Fix kqueue correctness test on x84_64 (6123d12) o Detect events with no ev_base; warn instead of crashing (f1074b7) o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3) o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20) o On windows, make lock/thread function tables static (5de2bcb) o Close th_notify_fds and open a new pair on reinit (495ed66) o Declare signal handler function as "__cdecl" on Windows (f0056d0) o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc) o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis) THREADING BUGFIXES o Avoid deadlock when activating signals (970e6ad)