12b15cb3dSCy SchubertChanges in version 2.0.21-stable (18 Nov 2012) 22b15cb3dSCy SchubertBUGFIXES: 32b15cb3dSCy Schubert o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) 42b15cb3dSCy Schubert o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) 52b15cb3dSCy Schubert o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) 62b15cb3dSCy Schubert o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) 72b15cb3dSCy Schubert o build: Use python2 rather than python (0eb0109 Ross Lagerwall) 82b15cb3dSCy Schubert o build: Compile without warnings on mingw64 (94866c2) 92b15cb3dSCy Schubert o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) 102b15cb3dSCy Schubert o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) 112b15cb3dSCy Schubert o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) 122b15cb3dSCy Schubert o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) 132b15cb3dSCy Schubert o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) 142b15cb3dSCy Schubert o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) 152b15cb3dSCy Schubert o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) 162b15cb3dSCy Schubert 172b15cb3dSCy Schubert 182b15cb3dSCy SchubertChanges in version 2.0.20-stable (23 Aug 2012) 192b15cb3dSCy SchubertBUGFIXES: 202b15cb3dSCy Schubert o core: Make event_pending() threadsafe. (be7a95c Simon Liu) 212b15cb3dSCy Schubert o win32: avoid crash when waiting forever on zero fds. (160e58b) 222b15cb3dSCy Schubert o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31) 232b15cb3dSCy Schubert o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c) 242b15cb3dSCy Schubert o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67) 252b15cb3dSCy Schubert o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3) 262b15cb3dSCy Schubert o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel) 272b15cb3dSCy Schubert o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43) 282b15cb3dSCy Schubert 292b15cb3dSCy Schubert 302b15cb3dSCy SchubertPORTABILITY FIXES: 312b15cb3dSCy Schubert o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel) 322b15cb3dSCy Schubert o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn) 332b15cb3dSCy Schubert o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6) 342b15cb3dSCy Schubert 352b15cb3dSCy SchubertBUILD FIXES: 362b15cb3dSCy Schubert o Add GCC annotations so that the vsprintf functions get checked properly (117e327) 372b15cb3dSCy Schubert o Fix an unused variable warning on *BSD. (c0720c1) 382b15cb3dSCy Schubert 392b15cb3dSCy SchubertUNIT TEST FIXES: 402b15cb3dSCy Schubert o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall) 412b15cb3dSCy Schubert o Remove deadcode in http regression tests. Found by coverity. (5553346) 422b15cb3dSCy Schubert o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777) 432b15cb3dSCy Schubert o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d) 442b15cb3dSCy Schubert o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d) 452b15cb3dSCy Schubert o Fix resource leaks in the unit tests; found by coverity (270f279) 462b15cb3dSCy Schubert o Add some missing null checks to unit tests; found by coverity (f021c3d) 472b15cb3dSCy Schubert o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf) 482b15cb3dSCy Schubert o Remove unused variable; spotted by coverity (6355b2a) 492b15cb3dSCy Schubert o Add checks to various return values in unit tests. Found by coverity (b9e7329) 502b15cb3dSCy Schubert o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0) 512b15cb3dSCy Schubert 522b15cb3dSCy Schubert 532b15cb3dSCy Schubert 542b15cb3dSCy SchubertChanges in version 2.0.19-stable (3 May 2012) 552b15cb3dSCy SchubertBUGFIXES (CORE): 562b15cb3dSCy Schubert o Refactor event_persist_closure: raise and extract some common logic (bec22b4) 572b15cb3dSCy Schubert o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c) 582b15cb3dSCy Schubert o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40) 592b15cb3dSCy Schubert 602b15cb3dSCy SchubertBUGFIXES (SSL): 612b15cb3dSCy Schubert o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey) 622b15cb3dSCy Schubert 632b15cb3dSCy SchubertBUGFIXES (DNS): 642b15cb3dSCy Schubert o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel) 652b15cb3dSCy Schubert o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel) 662b15cb3dSCy Schubert o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a) 672b15cb3dSCy Schubert 682b15cb3dSCy SchubertDOCUMENTATION FIXES: 692b15cb3dSCy Schubert o Fix a typo in the bufferevent documentation (98e9119) 702b15cb3dSCy Schubert o Add missing ) to changelog; spotted by rransom (4c7ee6b) 712b15cb3dSCy Schubert o Fix the website URL in the readme (f775521) 722b15cb3dSCy Schubert 732b15cb3dSCy SchubertCOMPILATION FIXES: 742b15cb3dSCy Schubert o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae) 752b15cb3dSCy Schubert o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn) 762b15cb3dSCy Schubert o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg) 772b15cb3dSCy Schubert 782b15cb3dSCy SchubertFORWARD-COMPATIBILITY: 792b15cb3dSCy Schubert o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2) 802b15cb3dSCy Schubert 812b15cb3dSCy SchubertTESTING/DEBUGGING SUPPORT: 822b15cb3dSCy Schubert o dns-example.c can now take a resolv.conf file on the commandline (6610fa5) 832b15cb3dSCy Schubert o Make some evdns.c debug logs more verbose (d873d67) 842b15cb3dSCy Schubert o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd) 852b15cb3dSCy Schubert 862b15cb3dSCy Schubert 872b15cb3dSCy Schubert 882b15cb3dSCy SchubertChanges in version 2.0.18-stable (22 Mar 2012) 892b15cb3dSCy SchubertBUGFIXES (core): 902b15cb3dSCy Schubert o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42) 912b15cb3dSCy Schubert 922b15cb3dSCy SchubertBUGFIXES (kqueue): 932b15cb3dSCy Schubert o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn) 942b15cb3dSCy Schubert 952b15cb3dSCy SchubertBUILD FIXES: 962b15cb3dSCy Schubert o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey) 972b15cb3dSCy Schubert o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey) 982b15cb3dSCy Schubert o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn) 992b15cb3dSCy Schubert 1002b15cb3dSCy SchubertBUGFIXES (dns): 1012b15cb3dSCy Schubert o Stop crashing in evdns when nameserver probes give a weird error (bec5068) 1022b15cb3dSCy Schubert 1032b15cb3dSCy Schubert 1042b15cb3dSCy SchubertChanges in version 2.0.17-stable (10 Feb 2012) 1052b15cb3dSCy Schubert 1062b15cb3dSCy SchubertBUGFIXES (core): 1072b15cb3dSCy Schubert o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5) 1082b15cb3dSCy Schubert o check for sysctl before we use it (358c745 Mike Frysinger) 1092b15cb3dSCy Schubert o Remove bogus casts of socket to int before calling ev_callback (f032516) 1102b15cb3dSCy Schubert o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720) 1112b15cb3dSCy Schubert o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc) 1122b15cb3dSCy Schubert o Fix a fd leak in event_reinit() (3f18ad1) 1132b15cb3dSCy Schubert o Do a memberwise comparison of threading function tables (c94a5f2 Nate R) 1142b15cb3dSCy Schubert o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill) 1152b15cb3dSCy Schubert o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6) 1162b15cb3dSCy Schubert o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott) 1172b15cb3dSCy Schubert 1182b15cb3dSCy SchubertBUGFIXES (evbuffer and bufferevents): 1192b15cb3dSCy Schubert o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg) 1202b15cb3dSCy Schubert o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812) 1212b15cb3dSCy Schubert 1222b15cb3dSCy SchubertBUGFIXES (evhttp): 1232b15cb3dSCy Schubert o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea) 1242b15cb3dSCy Schubert 1252b15cb3dSCy SchubertBUGFIXES (evdns): 1262b15cb3dSCy Schubert o evdns: fix a bug in circular-queue implementation (d6094b1) 1272b15cb3dSCy Schubert 1282b15cb3dSCy SchubertBUILD FIXES: 1292b15cb3dSCy Schubert o Fix a silly compilation error with the sun compiler (1927776 Colin Watt) 1302b15cb3dSCy Schubert o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c) 1312b15cb3dSCy Schubert 1322b15cb3dSCy SchubertDOCUMENTATION FIXES: 1332b15cb3dSCy Schubert o Slightly clarify evbuffer_peek documentation (7bbf6ca) 1342b15cb3dSCy Schubert o Update copyright notices to 2012 (e49e289) 1352b15cb3dSCy Schubert 1362b15cb3dSCy SchubertNEW APIS: 1372b15cb3dSCy Schubert o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker) 1382b15cb3dSCy Schubert 1392b15cb3dSCy SchubertTESTS AND TEST FIXES: 1402b15cb3dSCy Schubert o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7) 1412b15cb3dSCy Schubert o Add function to check referential integrity of an event_base (27737d5) 1422b15cb3dSCy Schubert o Check event_base correctness at end of each unit test (3312b02) 1432b15cb3dSCy Schubert o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187) 1442b15cb3dSCy Schubert o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259) 1452b15cb3dSCy Schubert 1462b15cb3dSCy SchubertChanges in version 2.0.16-stable (18 Nov 2011) 1472b15cb3dSCy SchubertBUGFIXES (core): 1482b15cb3dSCy Schubert o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov) 1492b15cb3dSCy Schubert o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles) 1502b15cb3dSCy Schubert o Fix compile warning from saying event2/*.h inside a comment (447b0ba) 1512b15cb3dSCy Schubert o Warn when unable to construct base because of failing make_base_notifiable (4e797f3) 1522b15cb3dSCy Schubert o Don't try to make notifiable event_base when no threading fns are configured (e787413) 1532b15cb3dSCy Schubert 1542b15cb3dSCy SchubertBUGFIXES (evbuffer): 1552b15cb3dSCy Schubert o unit test for remove_buffer bug (90bd620 Greg Hazel) 1562b15cb3dSCy Schubert o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c) 1572b15cb3dSCy Schubert 1582b15cb3dSCy SchubertBUGFIXES (bufferevent_openssl): 1592b15cb3dSCy Schubert o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey) 1602b15cb3dSCy Schubert o Move SSL rate-limit enforcement into bytes_to_read() (96c562f) 1612b15cb3dSCy Schubert o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey) 1622b15cb3dSCy Schubert 1632b15cb3dSCy SchubertBUGFIXES (dns) 1642b15cb3dSCy Schubert o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov) 1652b15cb3dSCy Schubert 1662b15cb3dSCy SchubertTESTING: 1672b15cb3dSCy Schubert o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov) 1682b15cb3dSCy Schubert o Test for commit aff6ba1 (f7841bf Leonid Evdokimov) 1692b15cb3dSCy Schubert o Style and comment tweaks for dns/leak* tests (5e42202) 1702b15cb3dSCy Schubert o improve test to remove at least one buffer from src (7eb52eb Greg Hazel) 1712b15cb3dSCy Schubert 1722b15cb3dSCy SchubertDOCUMENTATION: 1732b15cb3dSCy Schubert o Add note about evhttp_send_reply_end to its doxygen (724bfb5) 1742b15cb3dSCy Schubert o Update copyright dates to 2011. (3c824bd) 1752b15cb3dSCy Schubert o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid) 1762b15cb3dSCy Schubert o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem) 1772b15cb3dSCy Schubert 1782b15cb3dSCy Schubert 1792b15cb3dSCy Schubert 1802b15cb3dSCy SchubertChanges in version 2.0.15-stable (12 Oct 2011) 1812b15cb3dSCy SchubertBUGFIXES (DNS): 1822b15cb3dSCy Schubert o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov) 1832b15cb3dSCy Schubert o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov) 1842b15cb3dSCy Schubert 1852b15cb3dSCy SchubertBUFGIXES (bufferevents and evbuffers): 1862b15cb3dSCy Schubert o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex) 1872b15cb3dSCy Schubert o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9) 1882b15cb3dSCy Schubert 1892b15cb3dSCy SchubertBUGFIXES (event loop): 1902b15cb3dSCy Schubert o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a) 1912b15cb3dSCy Schubert 1922b15cb3dSCy SchubertDOCUMENTATION FIXES: 1932b15cb3dSCy Schubert o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov) 1942b15cb3dSCy Schubert o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel) 1952b15cb3dSCy Schubert 1962b15cb3dSCy SchubertBUILD AND TESTING FIXES: 1972b15cb3dSCy Schubert o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev) 1982b15cb3dSCy Schubert o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382) 1992b15cb3dSCy Schubert o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey) 2002b15cb3dSCy Schubert o Make write-checking fixes use tt_fail_perror (2b76847) 2012b15cb3dSCy Schubert o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7) 2022b15cb3dSCy Schubert 2032b15cb3dSCy Schubert 2042b15cb3dSCy Schubert 2052b15cb3dSCy SchubertChanges in version 2.0.14-stable (31 Aug 2011) 2062b15cb3dSCy SchubertBUGFIXES (bufferevents and evbuffers): 2072b15cb3dSCy Schubert o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch) 2082b15cb3dSCy Schubert o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn) 2092b15cb3dSCy Schubert o Fix handling of group rate limits under 64 bytes of burst (6d5440e) 2102b15cb3dSCy Schubert o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf) 2112b15cb3dSCy Schubert o Make rate limiting work with common_timeout logic (5b18f13) 2122b15cb3dSCy Schubert o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch) 2132b15cb3dSCy Schubert 2142b15cb3dSCy SchubertBUGFIXES (IOCP): 2152b15cb3dSCy Schubert o IOCP: don't launch reads or writes on an unconnected socket (495c227) 2162b15cb3dSCy Schubert o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b) 2172b15cb3dSCy Schubert o Have test-ratelim.c support IOCP (0ff2c5a) 2182b15cb3dSCy Schubert o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd) 2192b15cb3dSCy Schubert o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d) 2202b15cb3dSCy Schubert 2212b15cb3dSCy SchubertBUGFIXES (other): 2222b15cb3dSCy Schubert o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov) 2232b15cb3dSCy Schubert o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov) 2242b15cb3dSCy Schubert 2252b15cb3dSCy SchubertBUILD AND TESTING FIXES: 2262b15cb3dSCy Schubert o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston) 2272b15cb3dSCy Schubert o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart) 2282b15cb3dSCy Schubert o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn) 2292b15cb3dSCy Schubert 2302b15cb3dSCy Schubert 2312b15cb3dSCy SchubertChanges in version 2.0.13-stable (18 Jul 2011) 2322b15cb3dSCy SchubertBUGFIXES 2332b15cb3dSCy Schubert o Avoid race-condition when initializing global locks (b683cae) 2342b15cb3dSCy Schubert o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch) 2352b15cb3dSCy Schubert o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey) 2362b15cb3dSCy Schubert o Avoid a segfault when all methods are disabled or broken (27ce38b) 2372b15cb3dSCy Schubert o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a) 2382b15cb3dSCy Schubert o Add some missing checks for mm_calloc failures (89d5e09) 2392b15cb3dSCy Schubert o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d) 2402b15cb3dSCy Schubert o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab) 2412b15cb3dSCy Schubert o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid) 2422b15cb3dSCy Schubert o Use the correct printf args when formatting size_t (3203f88) 2432b15cb3dSCy Schubert o Complain if the caller tries to change threading cbs after setting them (cb6ecee) 2442b15cb3dSCy Schubert 2452b15cb3dSCy SchubertDOCUMENTATION FIXES AND IMPROVEMENTS 2462b15cb3dSCy Schubert o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac) 2472b15cb3dSCy Schubert o Update Doxyfile to produce more useful output (aea0555) 2482b15cb3dSCy Schubert 2492b15cb3dSCy SchubertTEST FIXES 2502b15cb3dSCy Schubert o Fix up test_evutil_snprintf (caf695a) 2512b15cb3dSCy Schubert o Fix tinytest invocation from windows shell (57def34 Ed Day) 2522b15cb3dSCy Schubert 2532b15cb3dSCy SchubertBUILD FIXES 2542b15cb3dSCy Schubert o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d) 2552b15cb3dSCy Schubert o Fix select.c compilation on systems with no NFDBITS (49d1136) 2562b15cb3dSCy Schubert o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott) 2572b15cb3dSCy Schubert o Don't break when building tests from git without python installed (b031adf) 2582b15cb3dSCy Schubert o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn) 2592b15cb3dSCy Schubert o Fix AIX build issue with TAILQ_FOREACH definition (e934096) 2602b15cb3dSCy Schubert 2612b15cb3dSCy Schubert 2622b15cb3dSCy SchubertChanges in version 2.0.12-stable (4 Jun 2011) 2632b15cb3dSCy SchubertBUGFIXES 2642b15cb3dSCy Schubert o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0) 2652b15cb3dSCy Schubert o Fix an assert-inducing fencepost bug in the select backend (d90149d) 2662b15cb3dSCy Schubert o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko) 2672b15cb3dSCy Schubert o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1) 2682b15cb3dSCy Schubert o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid) 2692b15cb3dSCy Schubert o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey) 2702b15cb3dSCy Schubert o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey) 2712b15cb3dSCy Schubert 2722b15cb3dSCy SchubertDOCUMENTATION: 2732b15cb3dSCy Schubert o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d) 2742b15cb3dSCy Schubert 2752b15cb3dSCy SchubertBUILD FIXES 2762b15cb3dSCy Schubert o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin) 2772b15cb3dSCy Schubert o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin) 2782b15cb3dSCy Schubert o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn) 2792b15cb3dSCy Schubert o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn) 2802b15cb3dSCy Schubert o Correctly detect openssl on windows (6619385 Sebastian Hahn) 2812b15cb3dSCy Schubert o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn) 2822b15cb3dSCy Schubert o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart) 2832b15cb3dSCy Schubert o Fix new warnings from GCC 4.6 (06a714f) 2842b15cb3dSCy Schubert o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin) 2852b15cb3dSCy Schubert o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin) 2862b15cb3dSCy Schubert o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin) 2872b15cb3dSCy Schubert o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin) 2882b15cb3dSCy Schubert o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin) 2892b15cb3dSCy Schubert o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin) 2902b15cb3dSCy Schubert o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin) 2912b15cb3dSCy Schubert o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin) 2922b15cb3dSCy Schubert o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn) 2932b15cb3dSCy Schubert o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin) 2942b15cb3dSCy Schubert o cygwin: make it possible to build DLLs (d54d3fc) 2952b15cb3dSCy Schubert 2962b15cb3dSCy Schubert 2972b15cb3dSCy Schubert 2982b15cb3dSCy SchubertChanges in version 2.0.11-stable (27 Apr 2011) 2992b15cb3dSCy Schubert [Autogenerated from the Git log, sorted and cleaned by hand.] 3002b15cb3dSCy SchubertBUGFIXES: 3012b15cb3dSCy Schubert o Fix evport handling of POLLHUP and POLLERR (b42ce4b) 3022b15cb3dSCy Schubert o Fix compilation on Windows with NDEBUG (cb8059d) 3032b15cb3dSCy Schubert o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye) 3042b15cb3dSCy Schubert o Detect and handle more allocation failures. (666b096 Jardel Weyrich) 3052b15cb3dSCy Schubert o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich) 3062b15cb3dSCy Schubert o Handle resize failures in the select backend better. (83e805a) 3072b15cb3dSCy Schubert o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b) 3082b15cb3dSCy Schubert o Make --enable-gcc-warnings a no-op if not using gcc (3267703) 3092b15cb3dSCy Schubert o Fix a type error in our (unused) arc4random_stir() (f736198) 3102b15cb3dSCy Schubert o Correctly detect and stop non-chunked http requests when the body is too long (63a715e) 3112b15cb3dSCy Schubert o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7) 3122b15cb3dSCy Schubert o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko) 3132b15cb3dSCy Schubert o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot) 3142b15cb3dSCy Schubert o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko) 3152b15cb3dSCy Schubert o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko) 3162b15cb3dSCy Schubert o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko) 3172b15cb3dSCy Schubert o Fix a crash bug in evdns server circular list code (00e91b3) 3182b15cb3dSCy Schubert o Handle calloc failure in evdns. (Found by Dave Hart) (364291e) 3192b15cb3dSCy Schubert o Fix a memory leak on win32 socket->event map. (b4f89f0) 3202b15cb3dSCy Schubert o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn) 3212b15cb3dSCy Schubert o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn) 3222b15cb3dSCy Schubert 3232b15cb3dSCy SchubertPORTABILITY: 3242b15cb3dSCy Schubert o Fall back to sscanf if we have no other way to implement strtoll (453317b) 3252b15cb3dSCy Schubert o Build correctly on platforms without sockaddr_storage (9184563) 3262b15cb3dSCy Schubert o Try to build correctly on platforms with no IPv6 support (713c254) 3272b15cb3dSCy Schubert o Build on systems without AI_PASSIVE (cb92113) 3282b15cb3dSCy Schubert o Fix http unit test on non-windows platforms without getaddrinfo (6092f12) 3292b15cb3dSCy Schubert o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0) 3302b15cb3dSCy Schubert o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn) 3312b15cb3dSCy Schubert o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn) 3322b15cb3dSCy Schubert o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn) 3332b15cb3dSCy Schubert o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn) 3342b15cb3dSCy Schubert o Check for allocation failures in apply_socktype_protocol_hack (637d17a) 3352b15cb3dSCy Schubert o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b) 3362b15cb3dSCy Schubert o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68) 3372b15cb3dSCy Schubert 3382b15cb3dSCy SchubertDEFENSIVE PROGRAMMING: 3392b15cb3dSCy Schubert o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7) 3402b15cb3dSCy Schubert 3412b15cb3dSCy SchubertBUGS IN TESTS: 3422b15cb3dSCy Schubert o Fix test.sh output on solaris (b4f89b6 Dave Hart) 3432b15cb3dSCy Schubert o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn) 3442b15cb3dSCy Schubert o Use %s with printf in test.sh (039b9bd) 3452b15cb3dSCy Schubert o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn) 3462b15cb3dSCy Schubert o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn) 3472b15cb3dSCy Schubert o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn) 3482b15cb3dSCy Schubert o add some (void) casts for unused variables (65707d7 Sebastian Hahn) 3492b15cb3dSCy Schubert o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn) 3502b15cb3dSCy Schubert o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn) 3512b15cb3dSCy Schubert o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn) 3522b15cb3dSCy Schubert o Remote some dead code from dns-example.c (744c745 Sebastian Hahn) 3532b15cb3dSCy Schubert o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn) 3542b15cb3dSCy Schubert 3552b15cb3dSCy SchubertBUILD FIXES: 3562b15cb3dSCy Schubert o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn) 3572b15cb3dSCy Schubert o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn) 3582b15cb3dSCy Schubert o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn) 3592b15cb3dSCy Schubert o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart) 3602b15cb3dSCy Schubert o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart) 3612b15cb3dSCy Schubert o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn) 3622b15cb3dSCy Schubert 3632b15cb3dSCy SchubertFEATURES: 3642b15cb3dSCy Schubert o Make URI parser able to tolerate nonconformant URIs. (95060b5) 3652b15cb3dSCy Schubert 3662b15cb3dSCy SchubertDOCUMENTATION: 3672b15cb3dSCy Schubert o Clarify event_set_mem_functions doc (926f816) 3682b15cb3dSCy Schubert o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924) 3692b15cb3dSCy Schubert o fix spelling mistake in whatsnew-2.0.txt (deb2f73) 3702b15cb3dSCy Schubert o Fix sample/http-server ipv6 fixes (eb692be) 3712b15cb3dSCy Schubert o Comment internal headers used in sample code. (4eb281c) 3722b15cb3dSCy Schubert o Be explicit about how long event loops run in event.h documentation (f95bafb) 3732b15cb3dSCy Schubert o Add comment to configure.in to explain gc-sections test logic (c621359) 3742b15cb3dSCy Schubert o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665) 3752b15cb3dSCy Schubert 3762b15cb3dSCy SchubertBUILD IMPROVEMENTS: 3772b15cb3dSCy Schubert o Use the gcc -ffunction-segments feature to allow gc when linking with static libevent (0965c56 Dave Hart) 3782b15cb3dSCy Schubert o Add configure options to disable installation, regression tests (49e9bb7 Dave Hart) 3792b15cb3dSCy Schubert 3802b15cb3dSCy Schubert 3812b15cb3dSCy Schubert 3822b15cb3dSCy SchubertChanges in version 2.0.10-stable (16 Dec 2010) 3832b15cb3dSCy Schubert [Autogenerated from the Git log, sorted and cleaned by hand.] 3842b15cb3dSCy SchubertBUGFIXES 3852b15cb3dSCy Schubert o Minor fix for IOCP shutdown handling fix (2599b2d Kelly Brock) 3862b15cb3dSCy Schubert o Correctly notify the main thread when activating an event from a subthread (5beeec9) 3872b15cb3dSCy Schubert o Reject overlong http requests early when Expect:100-continue is set (d23839f Constantine Verutin) 3882b15cb3dSCy Schubert o EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings with -DNDEBUG. (b63ab17 Evan Jones) 3892b15cb3dSCy Schubert 3902b15cb3dSCy SchubertCODE CLEANUPS 3912b15cb3dSCy Schubert o bufferevent-internal.h: Use the new event2/util.h header, not evutil.h (ef5e65a Evan Jones) 3922b15cb3dSCy Schubert o Use relative includes instead of system includes consistently. (fbe64f2 Evan Jones) 3932b15cb3dSCy Schubert o Make whitespace more consistent 3942b15cb3dSCy Schubert 3952b15cb3dSCy SchubertTESTING 3962b15cb3dSCy Schubert o tests: Use new event2 headers instead of old compatibility headers. (4f33209 Evan Jones) 3972b15cb3dSCy Schubert 3982b15cb3dSCy SchubertDOCUMENTATION 3992b15cb3dSCy Schubert o Document that the cpu_hint is only used on Windows with IOCP for now (57689c4) 4002b15cb3dSCy Schubert o Add stuff to "whats new in 2.0" based on reading include changes since August. (18adc3f) 4012b15cb3dSCy Schubert 4022b15cb3dSCy Schubert 4032b15cb3dSCy SchubertChanges in 2.0.9-rc (30 Nov 2010): 4042b15cb3dSCy Schubert [Autogenerated from the Git log, sorted and cleaned by hand.] 4052b15cb3dSCy SchubertNEW AND MODIFIED APIs 4062b15cb3dSCy Schubert o Add a function to change a listener's callback. (46ee061) 4072b15cb3dSCy Schubert o Make evbuffer_add_file take ev_off_t, not off_t (ac7e52d) 4082b15cb3dSCy Schubert o Make rate-limits go up to SIZE_MAX/EV_SSIZE_MAX, not just INT32_MAX (2cbb1a1) 4092b15cb3dSCy Schubert o Add a bufferevent_get_base function (aab49b6) 4102b15cb3dSCy Schubert 4112b15cb3dSCy SchubertMAJOR BUGFIXES 4122b15cb3dSCy Schubert 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) 4132b15cb3dSCy Schubert o Fix a 100%-CPU bug where an SSL connection would sometimes never stop trying to write (1213d3d) 4142b15cb3dSCy Schubert o Fix a nasty bug related to use of dup() with epoll on Linux (c281aba) 4152b15cb3dSCy Schubert o Fix bugs in posix thread-id calculation when sizeof(pthread_t) != sizeof(long) (fbaf077) 4162b15cb3dSCy Schubert o Fix some ints to evutil_socket_t; make tests pass on win64. (f817bfa Dimitre Piskyulev) 4172b15cb3dSCy Schubert o Set _EVENT_SIZEOF_VOID_P correctly on win32 and win64 (1ae82cd Dimitre Piskyulev) 4182b15cb3dSCy Schubert o Avoid double-invocation of user callback with EVUTIL_EAI_CANCEL (abf01ed) 4192b15cb3dSCy Schubert o Set SO_UPDATE_ACCEPT_CONTEXT on sockets from AcceptEx so that shutdown() can work (52aa419) 4202b15cb3dSCy Schubert o When closing a filtering bufferevent, clear callbacks on the underlying bufferevent (fc7b1b0) 4212b15cb3dSCy Schubert 4222b15cb3dSCy SchubertNEW AND MODIFIED HTTP APIs 4232b15cb3dSCy Schubert o Add evhttp_parse_query_str to be used with evhttp_uri_parse. (2075fbc) 4242b15cb3dSCy Schubert o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b) 4252b15cb3dSCy Schubert o Define enumerators for all HTTP methods, including PATCH from RFC5789 (75a7341 Felix Nawothnig) 4262b15cb3dSCy Schubert o Functions to actually use evhttp_bound_socket with/as evconnlistener. (006efa7) 4272b15cb3dSCy Schubert o Add evhttp_request_get_command so code can tell GET from POST without peeking at the struct. (49f4bf7) 4282b15cb3dSCy Schubert o Introduce absolute URI parsing helpers. (86dd720 Pavel Plesov) 4292b15cb3dSCy Schubert o Revise evhttp_uri_parse implementation to handle more of RFC3986 (eaa5f1d) 4302b15cb3dSCy Schubert o Add evhttp_connection_get_base() to get the event_base from an http connection (cd00079) 4312b15cb3dSCy Schubert o Let evhttp_parse_query return -1 on failure (b1756d0) 4322b15cb3dSCy Schubert o New evhttp_uri(encode|decode) functions to handle + and NUL characters right (a8148ce) 4332b15cb3dSCy Schubert o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b) 4342b15cb3dSCy Schubert o Tweak interface for allowed methods (f5b391e) 4352b15cb3dSCy Schubert o Add evhttp server alias interface, correct flagging of proxy requests. (aab8c38 Christopher Davis) 4362b15cb3dSCy Schubert 4372b15cb3dSCy SchubertHTTP BUGFIXES 4382b15cb3dSCy Schubert o Add some comments to http.c and make a few functions static. (90b3ed5) 4392b15cb3dSCy Schubert o Fix Content-Length when trying send more than 100GB of data (!) on an evhttp. (525da3e) 4402b15cb3dSCy Schubert o Fix a bug where we would read too much data in HTTP bodies or requests. (58a1cc6) 4412b15cb3dSCy Schubert o Correctly count req->body_size on http usage without Content-Length (8e342e5) 4422b15cb3dSCy Schubert o Avoid missed-request bug when entire http request arrives before data is flushed (74c0e86) 4432b15cb3dSCy Schubert o reset "chunked" flag when sending non-chunked reply (aa5f55f Joachim Bauch) 4442b15cb3dSCy Schubert o evhttp_encode_uri encodes all reserved characters, including !$'()*+,/:=@ (2e63a60) 4452b15cb3dSCy Schubert o Replace exact-version checks for HTTP/1.1 with >= or < checks (647e094) 4462b15cb3dSCy Schubert o evhttp: Return 501 when we get an unrecognized method, not 400. (536311a) 4472b15cb3dSCy Schubert o Don't disable reading from the HTTP connection after sending the request to be notified of connection-close in time (c76640b Felix Nawothnig) 4482b15cb3dSCy Schubert o Never call evhttp_readcb while writing. (0512487) 4492b15cb3dSCy Schubert o Try to fix an assertion failure related to close detection (0faaa39) 4502b15cb3dSCy Schubert o Correctly detect timeouts during http connects (04861d5) 4512b15cb3dSCy Schubert o Preliminary support for Continue expectation in evhttp. (fa9305f Christopher Davis) 4522b15cb3dSCy Schubert 4532b15cb3dSCy SchubertOTHER BUGFIXES 4542b15cb3dSCy Schubert o Correct logic for realigning a chain in evbuffer_add (e4f34e8) 4552b15cb3dSCy Schubert o Fix a minor syntax error that most compilers didn't care about (e56ff65) 4562b15cb3dSCy Schubert o Fix some uses of int for socket in regress (5d389dc) 4572b15cb3dSCy Schubert o Check return value for ioctlsocket on win32 (f5ad31c Trond Norbye) 4582b15cb3dSCy Schubert o Fix som event_warns that should have been event_warnx (19c71e7) 4592b15cb3dSCy Schubert o Fix signal handler types for win64. (b81217f) 4602b15cb3dSCy Schubert o Try to clear up more size_t vs int/long issues. (598d133) 4612b15cb3dSCy Schubert o Make sure IOCP evconnlistener uses virtual events. (7b40a00 Christopher Davis) 4622b15cb3dSCy Schubert o Don't free evdns_request handles until after the callback is invoked (9ed30de) 4632b15cb3dSCy Schubert o Fix some more cancel-related bugs in getaddrinfo_async (c7cfbcf) 4642b15cb3dSCy Schubert o Make evdns_getaddrinfo_cancel threadsafe (d51b2fc) 4652b15cb3dSCy Schubert o Only clear underlying callbacks when the user hasn't reset them. (1ac5b23) 4662b15cb3dSCy Schubert o Fix bug in bufferevent_connect on an openssl bufferevent that already had an fd (4f228a1) 4672b15cb3dSCy Schubert o Resolve an evport bug in the thread/forking test (3a67d0b) 4682b15cb3dSCy Schubert o Make sure the CLOEXEC flag is set on fds we open for base notification (3ab578f) 4692b15cb3dSCy Schubert o Fix IRIX build. sa_family collides with a #define in sys/socket.h on IRIX. (e874982 Kevin Bowling) 4702b15cb3dSCy Schubert o If not WIN32, include <sys/socket.h> in event2/util.h. (1cd45e5 Kevin Bowling) 4712b15cb3dSCy Schubert o Fix some C99-style comments to work with the xlC compiler. (c2e5e22 Kevin Bowling) 4722b15cb3dSCy Schubert 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) 4732b15cb3dSCy Schubert o Reworked AIX __ss_family workaround to use AC_STRUCT_MEMBER. (2e2a3d7 Kevin Bowling) 4742b15cb3dSCy Schubert o Take select from <sys/select.h> when testing in autoconf. AIX build fix. (a3a9f6b Kevin Bowling) 4752b15cb3dSCy Schubert o Fix snprintf related failures on IRIX. (3239073 Kevin Bowling) 4762b15cb3dSCy Schubert o Remove _event_initialized(); make event_initialized() a function(); make it consistent on windows and non-windows (652024b) 4772b15cb3dSCy Schubert o Do not let EVLOOP_ONCE exit the loop until all deferred callbacks have run (2d5e1bd) 4782b15cb3dSCy Schubert o Make EVLOOP_ONCE ignore internal events (0617a81) 4792b15cb3dSCy Schubert o Possible crash fix when freeing an underlying bufferevent of an openssl bufferevent (29f7623) 4802b15cb3dSCy Schubert 4812b15cb3dSCy SchubertHTTP CLEANUPS 4822b15cb3dSCy Schubert o Stop using Libevent-1 headers in regress_http (1f507d7) 4832b15cb3dSCy Schubert o Modernize header usage in bench_http.c (e587069) 4842b15cb3dSCy Schubert o fix signed/unsigned warnings in http.c (74a91e5) 4852b15cb3dSCy Schubert o Update the HTTP regression tests to use Libevent2 apis for non-http stuff (d9ffa89) 4862b15cb3dSCy Schubert o Start porting http tests to not use legacy interfaces (8505a74) 4872b15cb3dSCy Schubert o Convert the rest of the http tests to be non-legacy unit tests. (9bb8239) 4882b15cb3dSCy Schubert o Rename the confusing "base" static variable in regress_http.c (353402a) 4892b15cb3dSCy Schubert o Stop accessing http request struct directly from in the unit tests. (0b137f4) 4902b15cb3dSCy Schubert o Refactor http version parsing into a single function (a38140b) 4912b15cb3dSCy Schubert 4922b15cb3dSCy SchubertTESTING 4932b15cb3dSCy Schubert o Improvements to tinytest_macros.h (ad923a1) 4942b15cb3dSCy Schubert o Add a huge pile of tests for the new URI functions, and make them pass. (a5a76e6) 4952b15cb3dSCy Schubert o Unit tests for evhttp_uri_set* (bc98f5e) 4962b15cb3dSCy Schubert o Increase the skew tolerance to 2 seconds in thread/deferred_cb_skew (f806476 Christopher Davis) 4972b15cb3dSCy Schubert o Reorder backends in test.sh to match preference order in event.c (ece974f) 4982b15cb3dSCy Schubert o Add a stress test for getaddrinfo_cancel (da1bf52) 4992b15cb3dSCy Schubert o Units test for unexpected evhttp methods. (75e3320) 5002b15cb3dSCy Schubert 5012b15cb3dSCy SchubertDOCUMENTATION 5022b15cb3dSCy Schubert o Document behavior of URI parsing more thoroughly. (3a33462) 5032b15cb3dSCy Schubert o Document that two bufferevent functions only work on socket bufferevents (70e1b60) 5042b15cb3dSCy Schubert o add a requested docstring for event_rpcgen.CommandLine.__init__ (f1250eb) 5052b15cb3dSCy Schubert o Fix a mistake in http documentation found by Julien Blache (229714d) 5062b15cb3dSCy Schubert o Add a basic example of how to write a static HTTP server. (4e794d5) 5072b15cb3dSCy Schubert o Document event_get_assignment (88be27d) 5082b15cb3dSCy Schubert o Note that reentrant calls to libevent from logging cbs may fail badly (e431bcd) 5092b15cb3dSCy Schubert o Clarify EVLOOP_* documentation to be more precise. (057a514) 5102b15cb3dSCy Schubert 5112b15cb3dSCy SchubertCLEANUPS 5122b15cb3dSCy Schubert o Simplify the logic for choosing EPOLL_CTL_ADD vs EPOLL_CTL_MOD (2c66983) 5132b15cb3dSCy Schubert o Rename "size" variables in win32select that were really fd counts. (b6a158c) 5142b15cb3dSCy Schubert o Fix even more win64 warnings (7484df6) 5152b15cb3dSCy Schubert o Fix even more win64 warnings: buffer, event_tagging, http, evdns, evrpc (545a611) 5162b15cb3dSCy Schubert o Fix more wn64 warnings. (34b84b9 Christopher Davis) 5172b15cb3dSCy Schubert o Use the label_len local variable in evdns instead of recalculating it over and over (ba01456) 5182b15cb3dSCy Schubert o Fix some irix compilation warnings spotted by Kevin Bowling (7bcace2) 5192b15cb3dSCy Schubert 5202b15cb3dSCy Schubert 5212b15cb3dSCy Schubert 5222b15cb3dSCy SchubertChanges in 2.0.8-rc (14 Oct 2010): 5232b15cb3dSCy Schubert [Autogenerated from the Git log, sorted and cleaned by hand.] 5242b15cb3dSCy SchubertNEW APIS 5252b15cb3dSCy Schubert o Add error callback to evconnlistener (c4be8d8 Simon Perreault) 5262b15cb3dSCy Schubert o Add a LEV_OPT_THREADSAFE option for threadsafe evconnlisteners (127d4f2) 5272b15cb3dSCy Schubert 5282b15cb3dSCy SchubertCHANGED BEHAVIOR 5292b15cb3dSCy Schubert o Correct logic on disabling underlying bufferevents when disabling a filter (ac27eb8) 5302b15cb3dSCy Schubert 5312b15cb3dSCy SchubertBUGFIXES 5322b15cb3dSCy Schubert o Obey enabled status when unsuspending (040a019 Simon Perreault) 5332b15cb3dSCy Schubert 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) 5342b15cb3dSCy Schubert O Make default signal backend fully threadsafe (95a7d41) 5352b15cb3dSCy Schubert o Put internal events at highest priority (90651b3) 5362b15cb3dSCy Schubert o Fix warnings in the main codebase flagged by -Wsigned-compare (9c8db0, 5e4bafb, 5c214a, 6be589a, e06f514) 5372b15cb3dSCy Schubert o Fix compile in kqueue.c (b395392 Sebastian Hahn) 5382b15cb3dSCy Schubert o Do not search outside of the system directory for windows DLLs (d49b5e3) 5392b15cb3dSCy Schubert o Fix a spurious-call bug on epoll.c (0faaee0) 5402b15cb3dSCy Schubert o Send a shutdown(SHUT_WR) before closing an http connection (e0fd870 Christopher Davis) 5412b15cb3dSCy Schubert o Fix warnings on mingw with gcc 4.5 (5b7a370) 5422b15cb3dSCy Schubert o Fix an EINVAL on evbuffer_write_iovec on OpenSolaris. (fdc640b) 5432b15cb3dSCy Schubert o Fix allocation error for IOCP listeners. Probably harmless, since struct event is big (481ef92) 5442b15cb3dSCy Schubert o Make iocp/listener/error work; don't accept again if lev is disabled. (62b429a Christopher Davis) 5452b15cb3dSCy Schubert o Handle rate-limiting for reading on OpenSSL bufferevents correctly. (819b171) 5462b15cb3dSCy Schubert o Fix serious bugs in per-bufferevent rate-limiting code (34d64f8) 5472b15cb3dSCy Schubert o Avoid spurious reads from just-created open openssl bufferevents (223ee40) 5482b15cb3dSCy Schubert o Fix a case where an ssl bufferevent with CLOSE_ON_FREE didn't close its fd (93bb7d8) 5492b15cb3dSCy Schubert o The corrected bufferevent filter semantics let us fix our openssl tests (34331e4) 5502b15cb3dSCy Schubert 5512b15cb3dSCy SchubertTESTING 5522b15cb3dSCy Schubert o Make SSL tests cover enabling/disabling EV_READ. (a5ce9ad) 5532b15cb3dSCy Schubert o Bump to the latest version of tinytest (f0bd83e) 5542b15cb3dSCy Schubert o Unit tests for listener error callbacks (045eef4) 5552b15cb3dSCy Schubert o New unit test for ssl bufferevents starting with connected SSLs. (02f6259) 5562b15cb3dSCy Schubert 5572b15cb3dSCy SchubertDEBUGGABILITY 5582b15cb3dSCy Schubert o Make debugging output for epoll backend more comprehensive (ec2b05e) 5592b15cb3dSCy Schubert o Make event.c debugging messages report fds (e119899) 5602b15cb3dSCy Schubert o Make the --enable-gcc-warnings option include signed comparison warnings (d3b096c) 5612b15cb3dSCy Schubert 5622b15cb3dSCy SchubertDEADCODE REMOVAL 5632b15cb3dSCy Schubert o Remove the now-useless evsig_caught and evsig_process (4858b79) 5642b15cb3dSCy Schubert o Remove event_base.evsigbase; nothing used it. (38d0960) 5652b15cb3dSCy Schubert 5662b15cb3dSCy Schubert 5672b15cb3dSCy Schubert 5682b15cb3dSCy SchubertChanges in 2.0.7-rc (9 Sep 2010): 5692b15cb3dSCy Schubert [Autogenerated from the Git log, sorted and cleaned by hand.] 5702b15cb3dSCy SchubertNEW APIS 5712b15cb3dSCy Schubert o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143) 5722b15cb3dSCy Schubert o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis) 5732b15cb3dSCy Schubert 5742b15cb3dSCy SchubertBUGFIXES 5752b15cb3dSCy Schubert o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43) 5762b15cb3dSCy Schubert o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini) 5772b15cb3dSCy Schubert o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini) 5782b15cb3dSCy Schubert o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd) 5792b15cb3dSCy Schubert o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843) 5802b15cb3dSCy Schubert o Fix kqueue correctness test on x84_64 (6123d12) 5812b15cb3dSCy Schubert o Detect events with no ev_base; warn instead of crashing (f1074b7) 5822b15cb3dSCy Schubert o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3) 5832b15cb3dSCy Schubert o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20) 5842b15cb3dSCy Schubert o On windows, make lock/thread function tables static (5de2bcb) 5852b15cb3dSCy Schubert o Close th_notify_fds and open a new pair on reinit (495ed66) 5862b15cb3dSCy Schubert o Declare signal handler function as "__cdecl" on Windows (f0056d0) 5872b15cb3dSCy Schubert o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc) 5882b15cb3dSCy Schubert o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis) 5892b15cb3dSCy Schubert 5902b15cb3dSCy SchubertTHREADING BUGFIXES 5912b15cb3dSCy Schubert o Avoid deadlock when activating signals (970e6ad) 5922b15cb3dSCy Schubert o Add a condition variable backend, with implementations for pthreads and win32 (d4977b5) 5932b15cb3dSCy Schubert o Use conditions instead of current_event_lock to fix a deadlock (e0972c2) 5942b15cb3dSCy Schubert o Fix logic error in win32 TRY_LOCK that caused problems with rate-limiting (4c32b9d) 5952b15cb3dSCy Schubert o Avoid needlessly calling evthread_notify_base() when the loop is not running (c7a06bf) 5962b15cb3dSCy Schubert o Minimize calls to base_notify implementation functions, thereby avoiding needless syscalls (4632b78) 5972b15cb3dSCy Schubert 5982b15cb3dSCy SchubertIOCP BUGFIXES 5992b15cb3dSCy Schubert o IOCP-related evbuffer fixes (03afa20 Christopher Davis) 6002b15cb3dSCy Schubert o Stop IOCP when freeing the event_base (d844242 Christopher Davis) 6012b15cb3dSCy Schubert o Some IOCP bufferevent tweaks (76f7e7a Christopher Davis) 6022b15cb3dSCy Schubert 6032b15cb3dSCy SchubertTESTS 6042b15cb3dSCy Schubert o Make the regress_pthread.c tests work on windows with current test APIs (d74ae38) 6052b15cb3dSCy Schubert o Add a unit test for conditions (5fb1095) 6062b15cb3dSCy Schubert o Allow more than one copy of regression tests to run at once (a97320a) 6072b15cb3dSCy Schubert o Fix event_del(0) instance in bench.c (b0f284c Shuo Chen) 6082b15cb3dSCy Schubert o Fix a few memory leaks in the tests (1115366) 6092b15cb3dSCy Schubert o IOCP-related unit test tweaks (499452f Christopher Davis) 6102b15cb3dSCy Schubert o Improve testing of when thread-notification occurs (ce85280) 6112b15cb3dSCy Schubert 6122b15cb3dSCy SchubertBUILD AND DISTRIBUTION 6132b15cb3dSCy Schubert o Add pkgconfig files for libevent_{openssl,pthreads} (ebcb1f0) 6142b15cb3dSCy Schubert o Change include order in Makefile.nmake (4022b28) 6152b15cb3dSCy Schubert o Make include/event2/event-config.h not included in source dist (a4af9be) 6162b15cb3dSCy Schubert o Honor NDEBUG; build without warnings with NDEBUG; make NDEBUG always-off in unit test code (743f866) 6172b15cb3dSCy Schubert o Declare evkeyvalq and event_list even if event_struct.h comes before sys/queue.h (d3ceca8) 6182b15cb3dSCy Schubert o Move evkeyvalq into a separate header for evhttp_parse_query users (ca9048f) 6192b15cb3dSCy Schubert o Prefer autoreconf -ivf to manual autogen.sh (7ea8e89) 6202b15cb3dSCy Schubert 6212b15cb3dSCy SchubertCLEANUP 6222b15cb3dSCy Schubert o Completely remove the (mostly-removed) obsolete thread functions (3808168) 6232b15cb3dSCy Schubert o Rename regress_pthread.c to regress_thread.c (041989f) 6242b15cb3dSCy Schubert o Make defer-internal.h use lock macros, not direct calls to lock fns (5218d2a) 6252b15cb3dSCy Schubert 6262b15cb3dSCy SchubertDOCUMENTATION 6272b15cb3dSCy Schubert o Document that DNS_NO_SEARCH is an obsolete alias for DNS_QUERY_NO_SEARCH (33200e7) 6282b15cb3dSCy Schubert o Update the whatsnew-2.0.txt document (4991669) 6292b15cb3dSCy Schubert 6302b15cb3dSCy Schubert 6312b15cb3dSCy Schubert 6322b15cb3dSCy SchubertChanges in 2.0.6-rc (6 Aug 2010): 6332b15cb3dSCy Schubert [Autogenerated from the Git log, sorted by hand.] 6342b15cb3dSCy SchubertDOCUMENTATION 6352b15cb3dSCy Schubert o Document a change in the semantics of event_get_struct_event_size() (e21f5d1) 6362b15cb3dSCy Schubert o Add a comment to describe our plan for library versioning (9659ece) 6372b15cb3dSCy Schubert o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6) 6382b15cb3dSCy Schubert 6392b15cb3dSCy SchubertNEW FEATURES AND INTERFACE CHANGES 6402b15cb3dSCy Schubert o Remove the obsolete evthread interfaces (c5bab56) 6412b15cb3dSCy Schubert o Let evhttp_send_error infer the right error reasons (3990669) 6422b15cb3dSCy Schubert o Add a function to retrieve the other side of a bufferevent pair (17a8e2d) 6432b15cb3dSCy Schubert o Add bufferevent_lock()/bufferevent_unlock() (215e629) 6442b15cb3dSCy Schubert o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59) 6452b15cb3dSCy Schubert o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167) 6462b15cb3dSCy Schubert o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d) 6472b15cb3dSCy Schubert o Add an interface to expose min_share in ratelimiting groups (6ae53d6) 6482b15cb3dSCy Schubert 6492b15cb3dSCy SchubertBUGFIXES 6502b15cb3dSCy Schubert o Avoid event_del on uninitialized event in event_base_free (6d19510) 6512b15cb3dSCy Schubert o Add some missing includes to fix Linux build again (75701e8) 6522b15cb3dSCy Schubert o Avoid close of uninitialized socket in evbuffer unit test (bda21e7) 6532b15cb3dSCy Schubert o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b) 6542b15cb3dSCy Schubert o If no evdns request can be launched, return NULL, not a handle (b14f151) 6552b15cb3dSCy Schubert o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3) 6562b15cb3dSCy Schubert o Fix the default HTTP error template (06bd056 Felix Nawothnig) 6572b15cb3dSCy Schubert o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf) 6582b15cb3dSCy Schubert o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig) 6592b15cb3dSCy Schubert o never let bufferevent_rlim functions return negative (0859870) 6602b15cb3dSCy Schubert o Make sample/hello_world work on windows (d89fdba) 6612b15cb3dSCy Schubert o Fix a deadlock related to event-base notification. Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2) 6622b15cb3dSCy Schubert o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie) 6632b15cb3dSCy Schubert o Don't race when calling event_active/event_add on a running signal event (fc5e0a2) 6642b15cb3dSCy Schubert o Suppress a spurious EPERM warning in epoll.c (e73cbde) 6652b15cb3dSCy Schubert o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks) 6662b15cb3dSCy Schubert o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie) 6672b15cb3dSCy Schubert o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye) 6682b15cb3dSCy Schubert o Fix rate-limit calculation on openssl bufferevents. (009f300) 6692b15cb3dSCy Schubert o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis) 6702b15cb3dSCy Schubert 6712b15cb3dSCy SchubertBUILD AND DISTRIBUTION CHANGES 6722b15cb3dSCy Schubert o Test the unlocked-deferred callback case of bufferevents (dfb75ab) 6732b15cb3dSCy Schubert o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc) 6742b15cb3dSCy Schubert o Use -Wlogical-op on gcc 4.5 or higher (d14bb92) 6752b15cb3dSCy Schubert o Add the libtool-generated /m4/* stuff to .gitignore (c21c663) 6762b15cb3dSCy Schubert o Remove some automake-generated files from version control. (9b14911) 6772b15cb3dSCy Schubert o Have autogen.sh pass --force-missing to automake (8a44062) 6782b15cb3dSCy Schubert o Set library version for libevent_pthreads correctly (b2d7440) 6792b15cb3dSCy Schubert o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn) 6802b15cb3dSCy Schubert o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71) 6812b15cb3dSCy Schubert o Fix unit tests with -DUSE_DEBUG enabled (28f31a4) 6822b15cb3dSCy Schubert o Fix evdns build with -DUNICODE (5fa30d2) 6832b15cb3dSCy Schubert o Move event-config.h to include/event2 (ec347b9) 6842b15cb3dSCy Schubert 6852b15cb3dSCy SchubertTESTING 6862b15cb3dSCy Schubert o Add options to test-ratelim.c to check its results (2b44dcc) 6872b15cb3dSCy Schubert o Make test-ratelim clean up after itself better. (b5bfc44) 6882b15cb3dSCy Schubert o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7) 6892b15cb3dSCy Schubert o Remove all non-error prints from test/regress.c (8bc1e3d) 6902b15cb3dSCy Schubert o Make test.sh exit with nonzero status if tests fail (faf2a04) 6912b15cb3dSCy Schubert o Have the unit tests report errors from test.sh (3689bd2) 6922b15cb3dSCy Schubert o Fix logic in correcting high values from FIONREAD (3467f2f) 6932b15cb3dSCy Schubert o Add test for behavior on remote socket close (44d57ee) 6942b15cb3dSCy Schubert o Unit test for event_get_struct_event_size() (7510aac) 6952b15cb3dSCy Schubert o Make test/test.sh call test-changelist (7c92691) 6962b15cb3dSCy Schubert o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch) 6972b15cb3dSCy Schubert o Add option to test-ratelim to test min_share (42f6b62) 6982b15cb3dSCy Schubert o Fix an assertion bug in test-ratelim (b2c6202) 6992b15cb3dSCy Schubert o Make tests quieter on local dns resolver failure (e996b3d) 7002b15cb3dSCy Schubert o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2) 7012b15cb3dSCy Schubert o Use AF_INET socketpair to test sendfile on Solaris (9b60209) 7022b15cb3dSCy Schubert o Make test-changelist count cpu usage right on win32 (ea1ea3d) 7032b15cb3dSCy Schubert 7042b15cb3dSCy SchubertINTERNALS, PERFORMANCE, AND CODE CLEANUPS 7052b15cb3dSCy Schubert o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed) 7062b15cb3dSCy Schubert o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3) 7072b15cb3dSCy Schubert o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4) 7082b15cb3dSCy Schubert o Remove some dead assignments (47c5dfb) 7092b15cb3dSCy Schubert o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee) 7102b15cb3dSCy Schubert o Drain th_notify_fd[0] more bytes at a time. (a5bc15b) 7112b15cb3dSCy Schubert o Tidy up the code in evthread_make_base_notifiable a little (61e1eee) 7122b15cb3dSCy Schubert o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1) 7132b15cb3dSCy Schubert o Remove unused variables in test/test-changelist.c (b00d4c0) 7142b15cb3dSCy Schubert o Fix whitespace. (cb927a5) 7152b15cb3dSCy Schubert o Improve error message for failed epoll to make debugging easier. (9e725f7) 7162b15cb3dSCy Schubert o Turn our socketpair() replacement into its own function (57b30cd) 7172b15cb3dSCy Schubert 7182b15cb3dSCy Schubert 7192b15cb3dSCy Schubert 7202b15cb3dSCy SchubertChanges in 2.0.5-beta (10 May 2010): 7212b15cb3dSCy Schubert [Autogenerated from the Git log, sorted by hand.] 7222b15cb3dSCy SchubertDOCUMENTATION 7232b15cb3dSCy Schubert o Update all our copyright notices to say "2010" (17efc1c) 7242b15cb3dSCy Schubert o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57) 7252b15cb3dSCy Schubert o Clarify Christopher Clark's status as writer of original ht code. (78772c3) 7262b15cb3dSCy Schubert o Try to comment some of the event code more (cdd4c49) 7272b15cb3dSCy Schubert o Add a few more evmap/changelist comments (c247adc) 7282b15cb3dSCy Schubert o Add a comment to explain why evdns_request is now separte from request (ceefbe8) 7292b15cb3dSCy Schubert o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a) 7302b15cb3dSCy Schubert o Stop distributing and installing manpages: they were too inaccurate (7731ec8) 7312b15cb3dSCy Schubert 7322b15cb3dSCy SchubertNEW FEATURES AND INTERFACE CHANGES 7332b15cb3dSCy Schubert o Remove signal_assign() and signal_new() macros. (2fac0f7) 7342b15cb3dSCy Schubert o Make evdns use the regular logging system by default (b2f2be6) 7352b15cb3dSCy Schubert o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3) 7362b15cb3dSCy Schubert o Functions to manipulate existing rate limiting groups. (ee41aca) 7372b15cb3dSCy Schubert o Functions to track the total bytes sent over a rate limit group. (fb366c1) 7382b15cb3dSCy Schubert o Detect and refuse reentrant event_base_loop() calls (b557b17) 7392b15cb3dSCy Schubert o Limit the maximum number of events on each socket to 65535 (819f949) 7402b15cb3dSCy Schubert o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c) 7412b15cb3dSCy Schubert o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen) 7422b15cb3dSCy Schubert o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen) 7432b15cb3dSCy Schubert o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb) 7442b15cb3dSCy Schubert o Make evutil_secure_rng_init() work even with builtin arc4random (f980716) 7452b15cb3dSCy Schubert o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis) 7462b15cb3dSCy Schubert o Release locks on bufferevents while executing callbacks (a5208fe Joachim Bauch) o Make debug mode catch mixed ET and non-ET events on an fd (cb67074) 7472b15cb3dSCy Schubert o Catch attempts to enable debug_mode too late (9ecf0d4) 7482b15cb3dSCy Schubert o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis) 7492b15cb3dSCy Schubert 7502b15cb3dSCy SchubertBUGFIXES 7512b15cb3dSCy Schubert o Avoid a spurious close(-1) on Linux (70a44b6) 7522b15cb3dSCy Schubert o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3) 7532b15cb3dSCy Schubert o Free evdns_base->req_heads on evdns_base_free (859af67) 7542b15cb3dSCy Schubert o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431) 7552b15cb3dSCy Schubert o Set mem_offset for every bufferevent type (657d1b6) 7562b15cb3dSCy Schubert o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich) 7572b15cb3dSCy Schubert o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith) 7582b15cb3dSCy Schubert o Fix minheap code to use replacement malloc functions (a527618) 7592b15cb3dSCy Schubert o Fix a free(NULL) in minheap-internal.h (6f20492) 7602b15cb3dSCy Schubert o Fix critical bug in evbuffer_write when writev is not available (cda56ab) 7612b15cb3dSCy Schubert o Make the no_iovecs case of write_atmost compile (8e227b0) 7622b15cb3dSCy Schubert o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3) 7632b15cb3dSCy Schubert o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis) 7642b15cb3dSCy Schubert o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis) 7652b15cb3dSCy Schubert o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano) 7662b15cb3dSCy Schubert o Clean up properly when adding a signal handler fails. (b84b598 Gilad Benjamini) o Ensure that evdns_request is a persistent handle. (15bb82d Christopher Davis) 7672b15cb3dSCy Schubert o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis) 7682b15cb3dSCy Schubert o Assert for valid requests as necessary. (67072f3 Christopher Davis) 7692b15cb3dSCy Schubert o do not leak the request object on persistent connections (9d8edf2) 7702b15cb3dSCy Schubert o Make evdns logging threadsafe (b1c7950) 7712b15cb3dSCy Schubert o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7) 7722b15cb3dSCy Schubert o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a) 7732b15cb3dSCy Schubert o fix a leak when unpausing evrpc requests (94ee125) 7742b15cb3dSCy Schubert o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2) 7752b15cb3dSCy Schubert o Fix compilation when openssl support is disabled (40c301b) 7762b15cb3dSCy Schubert o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf) 7772b15cb3dSCy Schubert o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn) 7782b15cb3dSCy Schubert o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis) 7792b15cb3dSCy Schubert o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29) 7802b15cb3dSCy Schubert o Fix symbol conflict between mm_*() macros and libmm (99e50e9) 7812b15cb3dSCy Schubert o Fix some crazy macro mistakes in arc4random.c (90d4225) 7822b15cb3dSCy Schubert o Make evbuffer_add_file() work on windows (dcdae6b) 7832b15cb3dSCy Schubert o Fix unused-variable warning when building with threads disabled (ad811cd) 7842b15cb3dSCy Schubert o Numerous opensolaris compilation fixes (c44de06) 7852b15cb3dSCy Schubert o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28) 7862b15cb3dSCy Schubert o Fix another nasty solaris getaddrinfo() behavior (3557071) 7872b15cb3dSCy Schubert o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a) 7882b15cb3dSCy Schubert o Fix some autoconf issues on OpenBSD (7c519df) 7892b15cb3dSCy Schubert 7902b15cb3dSCy SchubertBUILD AND DISTRIBUTION CHANGES 7912b15cb3dSCy Schubert o Distribute libevent.pc.in, not libevent.pc (22aff04) 7922b15cb3dSCy Schubert o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield) 7932b15cb3dSCy Schubert o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield) 7942b15cb3dSCy Schubert o Support the standard 'make check' target in place of 'make verify' (426c8fb) 7952b15cb3dSCy Schubert o Remove redundant stuff from EXTRA_DIST (b660edf) 7962b15cb3dSCy Schubert o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5) 7972b15cb3dSCy Schubert o Remove an orphaned RELEASE flag in Makefile.am (0794b0d) 7982b15cb3dSCy Schubert o Give a better warning for bad automake versions. (77c917d) 7992b15cb3dSCy Schubert o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7) 8002b15cb3dSCy Schubert o Never test for select() on windows (3eb044d Trond Norbye) 8012b15cb3dSCy Schubert o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano) 8022b15cb3dSCy Schubert o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano) 8032b15cb3dSCy Schubert o Add ctags/etags files to .gitignore (0861d17) 8042b15cb3dSCy Schubert o Only specify -no-undefined on mingw (25433b9) 8052b15cb3dSCy Schubert o Only add libevent_core.la to LIBADD on mingw (fdc6297) 8062b15cb3dSCy Schubert 8072b15cb3dSCy SchubertTESTING 8082b15cb3dSCy Schubert o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis) 8092b15cb3dSCy Schubert o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis) 8102b15cb3dSCy Schubert o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3) 8112b15cb3dSCy Schubert o Fix a write of uninitialized RAM in regression tests (68dc742) 8122b15cb3dSCy Schubert o Fix some memory leaks in the unit tests (274a7bd) 8132b15cb3dSCy Schubert o Make 'main/many_events' test 70 fds, not 64. (33874b0) 8142b15cb3dSCy Schubert o Unit-test every evbuffer_add_file() implementation. (06a4443) 8152b15cb3dSCy Schubert o Add more unit tests for evbuffer_expand (8c83e99) 8162b15cb3dSCy Schubert o Test another case of evbuffer_prepend (1234b95) 8172b15cb3dSCy Schubert o Fix a possible double-free bug in SSL bufferevents with CLOSE_ON_FREE (7501895) o Add dns/search_cancel unit test. (39b870b Christopher Davis) 8182b15cb3dSCy Schubert o Make http_base_test stop leaking an event_base. (96730d3) 8192b15cb3dSCy Schubert o Detect broken unsetenv at unit-test runtime (f37cd4c) 8202b15cb3dSCy Schubert o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1) 8212b15cb3dSCy Schubert o add more (currently skipped) add_file tests on win32 (05de45d) 8222b15cb3dSCy Schubert o Fix bench_http build on win32. (384d124) 8232b15cb3dSCy Schubert o Make unit test for add_file able to tell "error" from "done" (88a543f) 8242b15cb3dSCy Schubert o Make test for bufferevent_connect_hostname system-neutral (f89168e) 8252b15cb3dSCy Schubert o Make test.sh support mingw/msys on win32 (0ee6f6c) 8262b15cb3dSCy Schubert o Fix test.sh on freebsd (3d9e05b) 8272b15cb3dSCy Schubert 8282b15cb3dSCy SchubertINTERNALS, PERFORMANCE, AND AND CODE CLEANUPS 8292b15cb3dSCy Schubert o Improve the speed of evbuffer_readln() (cc1600a) 8302b15cb3dSCy Schubert o more whitespace normalization (2c2618d) 8312b15cb3dSCy Schubert o Revise evbuffer to add last_with_data (2a6d2a1) 8322b15cb3dSCy Schubert o Use last_with_data in place of previous_to_last (c8ac57f) 8332b15cb3dSCy Schubert o Remove previous_to_last from evbuffer (6f47bd1) 8342b15cb3dSCy Schubert o Fix last_with_data compilation on windows (1e7b986) 8352b15cb3dSCy Schubert o Add some glass-box tests for the last_with_data code. (17da042) 8362b15cb3dSCy Schubert o Improve robustness for refcounting (f1bc125) 8372b15cb3dSCy Schubert o Remove a needless min_heap_shift_up_() call (7204b91) 8382b15cb3dSCy Schubert o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4) 8392b15cb3dSCy Schubert o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3) 8402b15cb3dSCy Schubert o Make evbuffer_prepend handle empty buffers better (c87272b) 8412b15cb3dSCy Schubert o Replace last_with_data with a slightly smarter version (b7442f8) 8422b15cb3dSCy Schubert o Turn the increasingly complex *_CHAIN() macros into functions (96865c4) 8432b15cb3dSCy Schubert o Rewrite evbuffer_expand and its users (d5ebcf3) 8442b15cb3dSCy Schubert o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis) 8452b15cb3dSCy Schubert o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6) 8462b15cb3dSCy Schubert o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg) 8472b15cb3dSCy Schubert o Move domain search state to evdns_request. (beaa14a Christopher Davis) 8482b15cb3dSCy Schubert o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f) 8492b15cb3dSCy Schubert o Rename current_base symbol to event_global_current_base_ (c16e684) 8502b15cb3dSCy Schubert o Fix whitespace in evutil.c (935e150) 8512b15cb3dSCy Schubert o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0) 8522b15cb3dSCy Schubert 8532b15cb3dSCy Schubert 8542b15cb3dSCy Schubert 8552b15cb3dSCy SchubertChanges in 2.0.4-alpha (28 Feb 2010): 8562b15cb3dSCy Schubert [Autogenerated from the Git log, sorted by hand.] 8572b15cb3dSCy SchubertDOCUMENTATION 8582b15cb3dSCy Schubert o Add stub header for 2.0.4-alpha changelog. (94d0065) 8592b15cb3dSCy Schubert o Improve the README with more information and links. (0b42726) 8602b15cb3dSCy Schubert o Add more people who wrote patches to the acknowledgments (0af10d5) 8612b15cb3dSCy Schubert o Add a warning about the use of event_initialized. (f32b575) 8622b15cb3dSCy Schubert o Add a LICENSE file so people can find our license easily (7067006) 8632b15cb3dSCy Schubert o Add a new "hello world" sample program (becb9f9) 8642b15cb3dSCy Schubert o Clarify status of example programs (d60a1bd) 8652b15cb3dSCy Schubert o Update time-test.c to use event2 (f4190bf) 8662b15cb3dSCy Schubert o Add the arc4random.c license to the LICENSE file. (e15e1e9) 8672b15cb3dSCy Schubert 8682b15cb3dSCy SchubertNEW FEATURES AND INTERFACE CHANGES 8692b15cb3dSCy Schubert o Improved optional lock debugging. (0cd3bb9) 8702b15cb3dSCy Schubert o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd) 8712b15cb3dSCy Schubert o Testing code for bufferevent rate-limiting. (f0c0124) 8722b15cb3dSCy Schubert o Make the initial nameserver probe timeout configurable. (1e56a32) 8732b15cb3dSCy Schubert o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f) 8742b15cb3dSCy Schubert o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379) 8752b15cb3dSCy Schubert o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534) 8762b15cb3dSCy Schubert o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich) 8772b15cb3dSCy Schubert o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666) 8782b15cb3dSCy Schubert o Look at the proper /etc/hosts file on windows. (66c02c7) 8792b15cb3dSCy Schubert o Allow http connections to use evdns for hostname looksups. (c698b77) 8802b15cb3dSCy Schubert o Changelist code to defer event changes until just before dispatch (27308aa) 8812b15cb3dSCy Schubert o do not use a function to assign the evdns base; instead assign it via evhttp_connection_base_new() which is a new function introduced in 2.0 (5032e52) 8822b15cb3dSCy Schubert o Functions to access more fields of struct event. (0683950) 8832b15cb3dSCy Schubert o Make kqueue use changelists. (45e5ae3) 8842b15cb3dSCy Schubert o Remove kqueue->pend_changes. (3225dfb) 8852b15cb3dSCy Schubert o Minimize epoll_ctl calls by using changelist (c8c6a89) 8862b15cb3dSCy Schubert o Add support for a "debug mode" to try to catch common errors. (cd17c3a) 8872b15cb3dSCy Schubert o Note a missing ratelim function (361da8f) 8882b15cb3dSCy Schubert o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81) 8892b15cb3dSCy Schubert o const-ify a few more functions in event.h (d38a7a1) 8902b15cb3dSCy Schubert o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694) 8912b15cb3dSCy Schubert o Remove EVUTIL_CHECK_FMT. (6c21c89) 8922b15cb3dSCy Schubert o Add EV_*_MAX macros to event2/util.h to expose limits for ev_* types. (aba1fff) o Functions to view and manipulate rate-limiting buckets. (85047a6) 8932b15cb3dSCy Schubert o Add the rest of the integer limits, and add a test for them. (60742d5) 8942b15cb3dSCy Schubert o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d) 8952b15cb3dSCy Schubert o Add an arc4random implementation for use by evdns (d4de062) 8962b15cb3dSCy Schubert o Use off_t for the length parameter of evbuffer_add_file (3fe60fd) 8972b15cb3dSCy Schubert o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b) 8982b15cb3dSCy Schubert o Expose view of current rate limit as constrained by group limit (162ce8a) 8992b15cb3dSCy Schubert o Provide consistent, tested semantics for bufferevent timeouts (d328829) 9002b15cb3dSCy Schubert 9012b15cb3dSCy SchubertBUGFIXES AND TESTS 9022b15cb3dSCy Schubert o Tolerate code that returns from a fatal_cb. (91fe23f) 9032b15cb3dSCy Schubert o Parenthesize macro arguments more aggressively (07e9e9b) 9042b15cb3dSCy Schubert o Fix memory-leak of signal handler array with kqueue. (e1ffbb8) 9052b15cb3dSCy Schubert o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7) 9062b15cb3dSCy Schubert o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838) 9072b15cb3dSCy Schubert o Fix a locking bug in event_base_loop() (da1718b) 9082b15cb3dSCy Schubert o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao) 9092b15cb3dSCy Schubert o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern) 9102b15cb3dSCy Schubert o Fix up evthread compilation on windows (bd6f1ba Roman Puls) 9112b15cb3dSCy Schubert o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown) 9122b15cb3dSCy Schubert o Update nmake makefile to build evthread.c (b62d979 unknown) 9132b15cb3dSCy Schubert o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko) 9142b15cb3dSCy Schubert o Fix a snow leopard compile warning in the unit tests. (7ae9445) 9152b15cb3dSCy Schubert o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn) 9162b15cb3dSCy Schubert o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch) 9172b15cb3dSCy Schubert o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones) 9182b15cb3dSCy Schubert o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch) 9192b15cb3dSCy Schubert o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch) 9202b15cb3dSCy Schubert o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527) 9212b15cb3dSCy Schubert o Set all instances of the version number correctly. (5a112d3) 9222b15cb3dSCy Schubert o Fix a few locking issues on windows. (c51bb3c unknown) 9232b15cb3dSCy Schubert o Use evutil_socket_t, not int, when logging socket errors. (292467c) 9242b15cb3dSCy Schubert o Fix up behavior of never-defered callbacks a little (390e056) 9252b15cb3dSCy Schubert o Replace some cases of uint32_t with ev_uint32_t. (a47d88d) 9262b15cb3dSCy Schubert o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen) 9272b15cb3dSCy Schubert o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich) 9282b15cb3dSCy Schubert o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich) 9292b15cb3dSCy Schubert o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich) 9302b15cb3dSCy Schubert o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich) 9312b15cb3dSCy Schubert o Fix the code that allowed DNS options to not end with : (ee4953f) 9322b15cb3dSCy Schubert o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea) 9332b15cb3dSCy Schubert o Fix test-ratelim compilation on Linux. (885b427) 9342b15cb3dSCy Schubert o Fix compilation of rate-limiting code on win32. (165d30e) 9352b15cb3dSCy Schubert o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich) 9362b15cb3dSCy Schubert o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6) 9372b15cb3dSCy Schubert o Fixed a memory leak on windows threads implementation. The CRITICAL_SECTION was not being free'd in evthread_win32_lock_free(). (2f33e00 Jardel Weyrich) 9382b15cb3dSCy Schubert o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich) 9392b15cb3dSCy Schubert o Improved error handling in evconnlistener_new_async(). Also keeping the fd open because it is not opened by this function, so the caller is responsible for closing it. Additionally, since evconnlistener_new_bind() creates a socket and passes it to the function above, it required error checking to close the same socket. (fec66f9 Jardel Weyrich) 9402b15cb3dSCy Schubert o Don't use a bind address for nameservers on loopback (8d4aaf9) 9412b15cb3dSCy Schubert o Fix compilation of rate-limit code when threading support is disabled (97a8c79) 9422b15cb3dSCy Schubert o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971) 9432b15cb3dSCy Schubert o Check more internal event_add() calls for failure (ff3f6cd) 9442b15cb3dSCy Schubert o Fix windows and msvc build (5c7a7bc) 9452b15cb3dSCy Schubert o Call event_debug_unassign on internal events (a19b4a0) 9462b15cb3dSCy Schubert o Try to fix a warning in hash_debug_entry (137f2c6) 9472b15cb3dSCy Schubert o Fix a dumb typo in ev_intptr_t definitions. (27c9a40) 9482b15cb3dSCy Schubert o do not fail while sending on http connections the client closed. (93d7369) 9492b15cb3dSCy Schubert o make evhttp_send() safe against terminated connections, too (3978180) 9502b15cb3dSCy Schubert o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield) 9512b15cb3dSCy Schubert o Fix some additional -DUNICODE issues on win32. (a7a9431) 9522b15cb3dSCy Schubert o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e) 9532b15cb3dSCy Schubert o Always use our own gai_strerror() replacement. (6810bdb) 9542b15cb3dSCy Schubert o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea) 9552b15cb3dSCy Schubert o validate close cb on server when client connection closes (2f782af) 9562b15cb3dSCy Schubert o Fix two unlocked reads in evbuffer. (7116bf2) 9572b15cb3dSCy Schubert o When working without a current event base, don't try to use IOCP listeners (cb52838) 9582b15cb3dSCy Schubert o Fix getpid() usage on Windows (ff2a134) 9592b15cb3dSCy Schubert o Add a unit test for secure rng. (48a29b6) 9602b15cb3dSCy Schubert o Add some headers to fix freebsd compilation (b72be50) 9612b15cb3dSCy Schubert o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9) 9622b15cb3dSCy Schubert o Suspend read/write on bufferevents during hostname lookup (db08f64) 9632b15cb3dSCy Schubert o Make bufferevent_free() clear all callbacks immediately. (b2fbeb3) 9642b15cb3dSCy Schubert o Fix some race conditions in persistent events and event_reinit (e2642f0) 9652b15cb3dSCy Schubert o Fix a bug in resetting timeouts on persistent events when IO triggers. (38ec0a7) 9662b15cb3dSCy Schubert o Add a test for timeouts on filtering bufferevents. (c02bfe1) 9672b15cb3dSCy Schubert o Add test for periodic timers that get activated for other reasons (8fcb7a1) 9682b15cb3dSCy Schubert o Use new timeval diff comparison function in bufferevent test (f3dfe46) 9692b15cb3dSCy Schubert o Delete stack-alloced event in new unit test before returning. (7ffd387) 9702b15cb3dSCy Schubert o Fix mingw compilation (23170a6) 9712b15cb3dSCy Schubert o Try to define a sane _EVENT_SIZEOF_SIZE_T for msvc compilation (1e14f82) 9722b15cb3dSCy Schubert o Fix arc4random compilation on MSVC. (98edb89) 9732b15cb3dSCy Schubert o deal with connect() failing immediately (7bc48bf) 9742b15cb3dSCy Schubert o Small cleanups on freebsd-connect-refused patch. (57b7248) 9752b15cb3dSCy Schubert 9762b15cb3dSCy SchubertBUILD AND DISTRIBUTION CHANGES 9772b15cb3dSCy Schubert o Remove the contents of WIN32-Prj as unmaintained. (c69d5a5) 9782b15cb3dSCy Schubert o Allow the user to redirect the verbose output of test/test.sh to a file (c382de6) 9792b15cb3dSCy Schubert o Allow test.sh to be run as ./test/test.sh (7dfbe94) 9802b15cb3dSCy Schubert o Never believe that we have pthreads on win32, even if gcc thinks we do. (78ed097) 9812b15cb3dSCy Schubert o Make it compile under gcc --std=c89. (e2ca403) 9822b15cb3dSCy Schubert o Fix a number of warnings from gcc -pedantic (918e9c5) 9832b15cb3dSCy Schubert o Add the msvc-generated .lib files to .gitignore. (e244a2e) 9842b15cb3dSCy Schubert o Add the "compile" script to gitignore. (1ba6bed) 9852b15cb3dSCy Schubert 9862b15cb3dSCy SchubertINTERNALS AND CODE CLEANUPS 9872b15cb3dSCy Schubert o Add a .gitignore file. (ba34071) 9882b15cb3dSCy Schubert o New EVTHREAD_TRY_LOCK function to try to grab a lock. (689fc09) 9892b15cb3dSCy Schubert o Add the abilitity to mark some buffer callbacks as never-deferred. (438f9ed) 9902b15cb3dSCy Schubert o Refactor our 'suspend operation' logic on bufferevents. (0d744aa) 9912b15cb3dSCy Schubert o Simplify the read high-watermark checking. (5846bf6) 9922b15cb3dSCy Schubert o Improve readability of evutil_unparse_protoname() (5a43df8 Jardel Weyrich) 9932b15cb3dSCy Schubert o Expose our cached gettimeofday value with a new interface (47854a8) 9942b15cb3dSCy Schubert o Whitespace fixes in test.sh (0b151a9) 9952b15cb3dSCy Schubert o Enable branch-prediction hints with EVUTIL_UNLIKELY. (eaaf27f) 9962b15cb3dSCy Schubert o Refactor code from evdns into a new internal "read a file" function. (0f7144f) 9972b15cb3dSCy Schubert o Comestic changes in evconnlistener_new(), new_accepting_socket(), accepted_socket_invoke_user_cb() and iocp_listener_enable(). (510ab6b Jardel Weyrich) 9982b15cb3dSCy Schubert o Add unit-test for bad_request bug fixed in 1.4 recently. (6cc79c6 Pavel Plesov) o Add a comment on evthread_enable_lock_debuging. (b9f43b2) 9992b15cb3dSCy Schubert o Fix test.sh on shells without echo -n (94131e9) 10002b15cb3dSCy Schubert o More unit tests for getaddrinfo_async: v4timeout and cancel. (a334b31) 10012b15cb3dSCy Schubert o Make http use evconnlistener. (ec34533) 10022b15cb3dSCy Schubert o move dns utility functions into a separate file so that we can use them for http testing (b822639) 10032b15cb3dSCy Schubert o add a test for evhttp_connection_base_new with a dns_base (26714ca) 10042b15cb3dSCy Schubert o forgot to add void to test function (78a50fe) 10052b15cb3dSCy Schubert o Add a forgotten header (changelist-internal.h) (4b9f307) 10062b15cb3dSCy Schubert o Remove some commented-out code in evutil (26e1b6f) 10072b15cb3dSCy Schubert o Remove a needless include of rpc_compat.h (70a4a3e) 10082b15cb3dSCy Schubert o Use less memory for each entry in a hashtable (a66e947) 10092b15cb3dSCy Schubert o Try to untangle the logic in server_port_flush(). (439aea0) 10102b15cb3dSCy Schubert o Use ev_[u]intptr_t types in place of [u]intptr_t (cef61a2) 10112b15cb3dSCy Schubert o Reduce windows header includes in our own headers. (da6135e) 10122b15cb3dSCy Schubert o clean up terminate_chunked test (e8a9782) 10132b15cb3dSCy Schubert o Increment the submicro version number. (63e868e) 10142b15cb3dSCy Schubert o Update event-config.h version number to match configure.in (aae7db5) 10152b15cb3dSCy Schubert o Clean up formatting: Disallow space-before-tab. (8fdf09c) 10162b15cb3dSCy Schubert o Clean up formatting: use tabs, not 8-spaces, to indent. (e5bbd40) 10172b15cb3dSCy Schubert o Clean up formatting: remove trailing spaces (e5cf987) 10182b15cb3dSCy Schubert o Clean up formatting: function/keyword spacing consistency. (4faeaea) 10192b15cb3dSCy Schubert 10202b15cb3dSCy Schubert 10212b15cb3dSCy Schubert 10222b15cb3dSCy SchubertChanges in 2.0.3-alpha (20 Nov 2009): 10232b15cb3dSCy Schubert o Add a new code to support SSL/TLS on bufferevents, using the OpenSSL library (where available). 10242b15cb3dSCy Schubert o Fix a bug where we didn't allocate enough memory in event_get_supported_methods(). 10252b15cb3dSCy Schubert o Avoid segfault during failed allocation of locked evdns_base. (Found by Rocco Carbone.) 10262b15cb3dSCy Schubert o Export new evutil_ascii_* functions to perform locale-independent character type operations. 10272b15cb3dSCy Schubert o Try to compile better with MSVC: patches from Brodie Thiesfield 10282b15cb3dSCy Schubert o New evconnlistener_get_fd function to expose a listener's associated socket. 10292b15cb3dSCy Schubert o Expose an ev_socklen_t type for consistent use across platforms. 10302b15cb3dSCy Schubert o Make bufferevent_socket_connect() work when the original fd was -1. 10312b15cb3dSCy Schubert o Fix a bug in bufferevent_socket_connect() when the connection succeeds too quickly. 10322b15cb3dSCy Schubert o Export an evutil_sockaddr_cmp() to compare to sockaddr objects for equality. 10332b15cb3dSCy Schubert o Add a bufferevent_get_enabled() to tell what a bufferevent has been configured to do. 10342b15cb3dSCy Schubert o Add an evbuffer_search_eol() function to locate the end of a line nondestructively. 10352b15cb3dSCy Schubert o Add an evbuffer_search_range() function to search a bounded range of a buffer. 10362b15cb3dSCy Schubert o Fix a rare crash bug in evdns. 10372b15cb3dSCy Schubert o Have bufferevent_socket_connect() with no arguments put a bufferevent into connecting mode. 10382b15cb3dSCy Schubert o Support sendfile on Solaris: patch from Caitlin Mercer. 10392b15cb3dSCy Schubert o New functions to explicitly reference a socket used by an evhttp object. Patches from David Reiss. 10402b15cb3dSCy Schubert o When we send a BEV_EVENT_CONNECTED to indicate connected status, we no longer invoke the write callback as well unless we actually wrote data too. 10412b15cb3dSCy Schubert o If the kernel tells us that there are a negative number of bytes to read from a socket, do not believe it. Fixes bug 2841177; found by Alexander Pronchenkov. 10422b15cb3dSCy Schubert o Do not detect whether we have monotonic clock support every time a new event base is created: instead do it only once. Patch taken from Chromium. 10432b15cb3dSCy Schubert o Do not allocate the maximum event queue for the epoll backend at startup. Instead, start out accepting 32 events at a time, and double the queue's size when it seems that the OS is generating events faster than we're requesting them. Saves up to 374K per epoll-based event_base. Resolves bug 2839240. 10442b15cb3dSCy Schubert o Treat an event with a negative fd as valid but untriggerable by Libevent. This is useful for applications that want to manually activate events. 10452b15cb3dSCy Schubert o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h 10462b15cb3dSCy Schubert o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec 10472b15cb3dSCy Schubert o New event_base_got_exit() and event_base_got_break() functions to tell whether an event loop exited because of an event_base_loopexit() or an event_base_loopbreak(). Patch from Ka-Hing Cheung. 10482b15cb3dSCy Schubert o When adding or deleting an event from a non-main thread, only wake up the main thread when its behavior actually needs to change. 10492b15cb3dSCy Schubert o Fix some bugs when using the old evdns interfaces to initialize the evdns module. 10502b15cb3dSCy Schubert o Detect errors during bufferevent_connect(). Patch from Christopher Davis. 10512b15cb3dSCy Schubert o Fix compilation for listener.h for C++ - missing extern "C". Patch from Ferenc Szalai. 10522b15cb3dSCy Schubert o Make the event_base_loop() family of functions respect thread-safety better. This should clear up a few hard-to-debug race conditions. 10532b15cb3dSCy Schubert o Fix a bug when using a specialized memory allocator on win32. 10542b15cb3dSCy Schubert o Have the win32 select() backend label TCP-socket-connected events as EV_WRITE, not EV_READ. This should bring it in line with the other backends, and improve portability. Patch from Christopher Davis. 10552b15cb3dSCy Schubert o Stop using enums as arguments or return values when what we mean is a bitfield of enum values. C++ doesn't believe that you can OR two enum values together and get another enum, and C++ takes its typing seriously. Patch from Christopher Davis. 10562b15cb3dSCy Schubert o Add an API to replace all fatal calls to exit() with a user-provided panic function. 10572b15cb3dSCy Schubert o Replace all assert() calls with a variant that is aware of the user-provided logging and panic functions. 10582b15cb3dSCy Schubert o Add a return value to event_assign so that it can fail rather than asserting when the user gives it bad input. event_set still dies on bad input. 10592b15cb3dSCy Schubert o The event_base_new() and event_base_new_with_config() functions now never call exit() on failure. For backward "compatibility", event_init() still does, but more consistently. 10602b15cb3dSCy Schubert o Remove compat/sys/_time.h. It interfered with system headers on HPUX, and its functionality has been subsumed by event2/util.h and util-internal.h. 10612b15cb3dSCy Schubert o Add a new bufferevent_socket_connect_hostname() to encapsulate the resolve-then-connect operation. 10622b15cb3dSCy Schubert o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian. 10632b15cb3dSCy Schubert o Alternative queue-based timeout algorithm for programs that use a large number of timeouts with the same value. 10642b15cb3dSCy Schubert o New event_base_config option to disable the timeval cache entirely. 10652b15cb3dSCy Schubert o Make EV_PERSIST timeouts more accurate: schedule the next event based on the scheduled time of the previous event, not based on the current time. 10662b15cb3dSCy Schubert o Allow http.c to handle cases where getaddrinfo returns an IPv6 address. Patch from Ryan Phillips. 10672b15cb3dSCy Schubert o Fix a problem with excessive memory allocation when using multiple event priorities. 10682b15cb3dSCy Schubert o Default to using arc4random for DNS transaction IDs on systems that have it; from OpenBSD. 10692b15cb3dSCy Schubert o Never check the environment when we're running setuid or setgid; from OpenBSD. 10702b15cb3dSCy Schubert o Options passed to evdns_set_option() no longer need to end with a colon. 10712b15cb3dSCy Schubert o Add an evutil_getaddrinfo() function to clone getaddrinfo on platforms that don't have it. 10722b15cb3dSCy Schubert o Add an evdns_getaddrinfo() function to provide a nonblocking getaddrinfo using evdns, so programs can perform useful hostname lookup. 10732b15cb3dSCy Schubert o Finally expose the IOCP-based bufferevent backend. It passes its unit tests, but probably still has some bugs remaining. Code by Nick Mathewson and Christopher Davis. 10742b15cb3dSCy Schubert o Numerous other bugfixes. 10752b15cb3dSCy Schubert o On FreeBSD and other OSes, connect can return ECONREFUSED immediately; instead of failing the function call, pretend with faileld in the callback. 10762b15cb3dSCy Schubert o Fix a race condition in the pthreads test case; found by Nick Mathewson 10772b15cb3dSCy Schubert o Remove most calls to event_err() in http and deal with memory errors instead 10782b15cb3dSCy Schubert 10792b15cb3dSCy Schubert 10802b15cb3dSCy Schubert 10812b15cb3dSCy SchubertChanges in 2.0.2-alpha (25 Jul 2009): 10822b15cb3dSCy Schubert o Add a new flag to bufferevents to make all callbacks automatically deferred. 10832b15cb3dSCy Schubert o Make evdns functionality locked, and automatically defer dns callbacks. 10842b15cb3dSCy Schubert o Fix a possible free(NULL) when freeing an event_base with no signals. 10852b15cb3dSCy Schubert o Add a flag to disable checking environment varibles when making an event_base 10862b15cb3dSCy Schubert o Disallow setting less than 1 priority. 10872b15cb3dSCy Schubert o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen] 10882b15cb3dSCy Schubert o Use signal.h, not sys/signal.h. [Patch from mmadia] 10892b15cb3dSCy Schubert o Try harder to build with certain older c99 compilers. 10902b15cb3dSCy Schubert o Make sure that an event_config's flags field is always initialized to 0. [Bug report from Victor Goya] 10912b15cb3dSCy Schubert o Avoid data corruption when reading data entirely into the second-to-last chain of an evbuffer. [Bug report from Victor Goya] 10922b15cb3dSCy Schubert o Make sendfile work on FreeBSD 10932b15cb3dSCy Schubert o Do not use vararg macros for accessing evrpc structures; this is not backwards compatible, but we did not promise any backwards compatibility for the rpc code. 10942b15cb3dSCy Schubert o Actually define the event_config_set_flag() function. 10952b15cb3dSCy Schubert o Try harder to compile with Visual C++. 10962b15cb3dSCy Schubert o Move event_set() and its allies to event2/event_compat.h where they belong. 10972b15cb3dSCy Schubert o Remove the event_gotsig code, which has long been deprecated and unused. 10982b15cb3dSCy Schubert o Add an event_get_base() function to return the base assigned to an event. 10992b15cb3dSCy Schubert o New function to automate connecting on a socket-based bufferevent. 11002b15cb3dSCy Schubert o New functions to automate listening for incoming TCP connections. 11012b15cb3dSCy Schubert o Do case-insensitive checks with a locale-independent comparison function. 11022b15cb3dSCy Schubert o Rename the evbuffercb and everrorcb callbacks to bufferevent_data_cb and bufferevent_event_cb respectively. The old names are available in bufferevent_compat.h. 11032b15cb3dSCy Schubert o Rename the EVBUFFER_* codes used by bufferevent event callbacks to BEV_EVENT_*, to avoid namespace collision with evbuffer flags. The old names are available in bufferevent_compat.h. 11042b15cb3dSCy Schubert o Move the EVBUFFER_INPUT and EVBUFFER_OUTPUT macros to bufferevent_compat.h 11052b15cb3dSCy Schubert o Add a bufferevent_getfd() function to mirror bufferevent_setfd() 11062b15cb3dSCy Schubert o Make bufferevent_setfd() return an error code if the operation is not successful. 11072b15cb3dSCy Schubert o Shave 22 bytes off struct event on 32-bit platforms by shrinking and re-ordering fields. The savings on 64-bit platforms is likely higher. 11082b15cb3dSCy Schubert o Cap the maximum number of priorities at 256. 11092b15cb3dSCy Schubert o Change the semantics of evbuffer_cb_set_flags() to be set-flag only; add a new evbuffer_cb_clear_flags() to remove set flags. 11102b15cb3dSCy Schubert o Change the interface of evbuffer_add_reference so that the cleanup callback gets more information 11112b15cb3dSCy Schubert o Revise the new evbuffer_reserve_space/evbuffer_commit_space() interfaces so that you can use them without causing extraneous copies or leaving gaps in the evbuffer. 11122b15cb3dSCy Schubert o Add a new evbuffer_peek() interface to inspect data in an evbuffer without removing it. 11132b15cb3dSCy Schubert o Fix a deadlock when suspending reads in a bufferevent due to a full buffer. (Spotted by Joachim Bauch.) 11142b15cb3dSCy Schubert o Fix a memory error when freeing a thread-enabled event base with registered events. (Spotted by Joachim Bauch.) 11152b15cb3dSCy Schubert o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair. 11162b15cb3dSCy Schubert o Activate fd events in a pseudorandom order with O(N) backends, so that we don't systematically favor low fds (select) or earlier-added fds (poll, win32). 11172b15cb3dSCy Schubert o Replace some read()/write() instances with send()/recv() to work properly on win32. 11182b15cb3dSCy Schubert o Set truncated flag correctly in evdns server replies. 11192b15cb3dSCy Schubert o Raise RpcGenError in event_rpcgen.py; from jmanison and Zack Weinberg 11202b15cb3dSCy Schubert o Fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg. 11212b15cb3dSCy Schubert o Allow specifying the output filename for rpcgen; based on work by jmansion; patch from Zack Weinberg. 11222b15cb3dSCy Schubert o Allow C identifiers as struct names; allow multiple comments in .rpc files; from Zack Weinberg 11232b15cb3dSCy Schubert o Mitigate a race condition when using socket bufferevents in multiple threads. 11242b15cb3dSCy Schubert o Use AC_SEARCH_LIBS, not AC_CHECK_LIB to avoid needless library use. 11252b15cb3dSCy Schubert o Do not allow event_del(ev) to return while that event's callback is executing in another thread. This fixes a nasty race condition. 11262b15cb3dSCy Schubert o event_get_supported_methods() now lists methods that have been disabled with the EVENT_NO* environment options. 11272b15cb3dSCy Schubert o Rename encode_int[64] to evtag_encode_int[64] to avoid polluting the global namespace. The old method names are still available as macros in event2/tag_compat.h. 11282b15cb3dSCy Schubert 11292b15cb3dSCy Schubert 11302b15cb3dSCy Schubert 11312b15cb3dSCy SchubertChanges in 2.0.1-alpha (17 Apr 2009): 11322b15cb3dSCy Schubert o free minheap on event_base_free(); from Christopher Layne 11332b15cb3dSCy Schubert o debug cleanups in signal.c; from Christopher Layne 11342b15cb3dSCy Schubert o provide event_base_new() that does not set the current_base global 11352b15cb3dSCy Schubert o bufferevent_write now uses a const source argument; report from Charles Kerr 11362b15cb3dSCy Schubert o improve documentation on event_base_loopexit; patch from Scott Lamb 11372b15cb3dSCy Schubert o New function, event_{base_}loopbreak. Like event_loopexit, it makes an event loop stop executing and return. Unlike event_loopexit, it keeps subsequent pending events from getting executed. Patch from Scott Lamb 11382b15cb3dSCy Schubert o Check return value of event_add in signal.c 11392b15cb3dSCy Schubert o provide event_reinit() to reintialize an event_base after fork 11402b15cb3dSCy Schubert o New function event_set_mem_functinons. It allows the user to give libevent replacement functions to use for memory management in place of malloc(), free(), etc. This should be generally useful for memory instrumentation, specialized allocators, and so on. 11412b15cb3dSCy Schubert o The kqueue implementation now catches signals that are raised after event_add() is called but before the event_loop() call. This makes it match the other implementations. 11422b15cb3dSCy Schubert o The kqueue implementation now restores original signal handlers correctly when its signal events are removed. 11432b15cb3dSCy Schubert o Check return value of event_add in signal.c 11442b15cb3dSCy Schubert o Add a more powerful evbuffer_readln as a replacement for evbuffer_readline. The new function handles more newline styles, and is more useful with buffers that may contain a nul characters. 11452b15cb3dSCy Schubert o Do not mangle socket handles on 64-bit windows. 1146*a466cc55SCy Schubert o The configure script now takes an --enable-gcc-warnings option that turns on many optional gcc warnings. (Nick has been building with these for a while, but they might be useful to other developers.) 11472b15cb3dSCy Schubert o move EV_PERSIST handling out of the event backends 11482b15cb3dSCy Schubert o small improvements to evhttp documentation 11492b15cb3dSCy Schubert o always generate Date and Content-Length headers for HTTP/1.1 replies 11502b15cb3dSCy Schubert o set the correct event base for HTTP close events 11512b15cb3dSCy Schubert o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions. 11522b15cb3dSCy Schubert o Rewrite win32.c backend to be O(n lg n) rather than O(n^2). 11532b15cb3dSCy Schubert o Removed obsoleted recalc code 11542b15cb3dSCy Schubert o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly. 11552b15cb3dSCy Schubert o pull setters/getters out of RPC structures into a base class to which we just need to store a pointer; this reduces the memory footprint of these structures. 11562b15cb3dSCy Schubert o prefix {encode,decode}_tag functions with evtag to avoid collisions 11572b15cb3dSCy Schubert o fix a bug with event_rpcgen for integers 11582b15cb3dSCy Schubert o Correctly handle DNS replies with no answers set (Fixes bug 1846282) 11592b15cb3dSCy Schubert o add -Wstrict-aliasing to warnings and more cleanup 11602b15cb3dSCy Schubert o removed linger from http server socket; reported by Ilya Martynov 11612b15cb3dSCy Schubert o event_rpcgen now allows creating integer arrays 11622b15cb3dSCy Schubert o support string arrays in event_rpcgen 11632b15cb3dSCy Schubert o change evrpc hooking to allow pausing of RPCs; this will make it possible for the hook to do some meaning ful work; this is not backwards compatible. 11642b15cb3dSCy Schubert o allow an http request callback to take ownership of a request structure 11652b15cb3dSCy Schubert o allow association of meta data with RPC requests for hook processing 11662b15cb3dSCy Schubert o associate more context for hooks to query such as the connection object 11672b15cb3dSCy Schubert o remove pending timeouts on event_base_free() 11682b15cb3dSCy Schubert o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards 11692b15cb3dSCy Schubert o devpoll and evport need reinit; tested by W.C.A Wijngaards 11702b15cb3dSCy Schubert o event_base_get_method; from Springande Ulv 11712b15cb3dSCy Schubert o Send CRLF after each chunk in HTTP output, for compliance with RFC2626. Patch from "propanbutan". Fixes bug 1894184. 11722b15cb3dSCy Schubert o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values. 11732b15cb3dSCy Schubert o Use a 64-bit field to hold HTTP content-lengths. Patch from Scott Lamb. 11742b15cb3dSCy Schubert o Allow regression code to build even without Python installed 11752b15cb3dSCy Schubert o remove NDEBUG ifdefs from evdns.c 11762b15cb3dSCy Schubert o detect integer types properly on platforms without stdint.h 11772b15cb3dSCy Schubert o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa. 11782b15cb3dSCy Schubert o simplify evbuffer by removing orig_buffer 11792b15cb3dSCy Schubert o do not insert event into list when evsel->add fails 11802b15cb3dSCy Schubert o add support for PUT/DELETE requests; from Josh Rotenberg 11812b15cb3dSCy Schubert o introduce evhttp_accept_socket() to accept from an already created socket 11822b15cb3dSCy Schubert o include Content-Length in reply for HTTP/1.0 requests with keep-alive 11832b15cb3dSCy Schubert o increase listen queue for http sockets to 128; if that is not enough the evhttp_accpet_socket() api can be used with a prepared socket. 11842b15cb3dSCy Schubert o Patch from Tani Hosokawa: make some functions in http.c threadsafe. 11852b15cb3dSCy Schubert o test support for PUT/DELETE requests; from Josh Rotenberg 11862b15cb3dSCy Schubert o rewrite of the evbuffer code to reduce memory copies 11872b15cb3dSCy Schubert o Some older Solaris versions demand that _REENTRANT be defined to get strtok_r(); do so. 11882b15cb3dSCy Schubert o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin 11892b15cb3dSCy Schubert o Provide OpenSSL style support for multiple threads accessing the same event_base 11902b15cb3dSCy Schubert o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks. 11912b15cb3dSCy Schubert o switch thread support so that locks get allocated as they are needed. 11922b15cb3dSCy Schubert o make event methods static so that they are not exported; from Andrei Nigmatulin 11932b15cb3dSCy Schubert o make RPC replies use application/octet-stream as mime type 11942b15cb3dSCy Schubert o do not delete uninitialized timeout event in evdns 11952b15cb3dSCy Schubert o Correct the documentation on buffer printf functions. 11962b15cb3dSCy Schubert o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select. 11972b15cb3dSCy Schubert o Correctly handle timeouts larger than 35 minutes on Linux with epoll.c. This is probably a kernel defect, but we'll have to support old kernels anyway even if it gets fixed. 11982b15cb3dSCy Schubert o Make name_from_addr() threadsafe in http.c 11992b15cb3dSCy Schubert o Add new thread-safe interfaces to evdns functions. 12002b15cb3dSCy Schubert o Make all event_tagging interfaces threadsafe. 12012b15cb3dSCy Schubert o Rename internal memory management functions. 12022b15cb3dSCy Schubert o New functions (event_assign, event_new, event_free) for use by apps that want to be safely threadsafe, or want to remain ignorant of the contents of struct event. 12032b15cb3dSCy Schubert o introduce bufferevent_read_buffer; allows reading without memory copy. 12042b15cb3dSCy Schubert o expose bufferevent_setwatermark via header files and fix high watermark on read 12052b15cb3dSCy Schubert o fix a bug in buffrevent read water marks and add a test for them 12062b15cb3dSCy Schubert o fix a bug in which bufferevent_write_buffer would not schedule a write event 12072b15cb3dSCy Schubert o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure 12082b15cb3dSCy Schubert o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents 12092b15cb3dSCy Schubert o convert evhttp_connection to use bufferevents. 12102b15cb3dSCy Schubert o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy. 12112b15cb3dSCy Schubert o Remove the never-exported, never-used evhttp_hostportfile function. 12122b15cb3dSCy Schubert o Support input/output filters for bufferevents; somewhat similar to libio's model. This will allow us to implement SSL, compression, etc, transparently to users of bufferevents such as the http layer. 12132b15cb3dSCy Schubert o allow connections to be removed from an rpc pool 12142b15cb3dSCy Schubert o add new evtimer_assign, signal_assign, evtimer_new, and signal_new functions to manipulate timer and signal events, analagous to the now-recommended event_assign and event_new 12152b15cb3dSCy Schubert o switch internal uses of event_set over to use event_assign. 12162b15cb3dSCy Schubert o introduce evbuffer_contiguous_space() api that tells a user how much data is available in the first buffer chain 12172b15cb3dSCy Schubert o introduce evbuffer_reserve_space() and evbuffer_commit_space() to make processing in filters more efficient. 12182b15cb3dSCy Schubert o reduce system calls for getting current time by caching it. 12192b15cb3dSCy Schubert o separate signal events from io events; making the code less complex. 12202b15cb3dSCy Schubert o support for periodic timeouts 12212b15cb3dSCy Schubert o support for virtual HTTP hosts. 12222b15cb3dSCy Schubert o turn event_initialized() into a function, and add function equivalents to EVENT_SIGNAL and EVENT_FD so that people don't need to include event_struct.h 12232b15cb3dSCy Schubert o Build test directory correctly with CPPFLAGS set. 12242b15cb3dSCy Schubert o Provide an API for retrieving the supported event mechanisms. 12252b15cb3dSCy Schubert o event_base_new_with_config() and corresponding config APIs. 12262b15cb3dSCy Schubert o migrate the evhttp header to event2/ but accessors are still missing. 12272b15cb3dSCy Schubert o deprecate timeout_* event functions by moving them to event_compat.h 12282b15cb3dSCy Schubert o Move windows gettimeofday replacement into a new evutil_gettimeofday(). 12292b15cb3dSCy Schubert o Make configure script work on IRIX. 12302b15cb3dSCy Schubert o provide a method for canceling ongoing http requests. 12312b15cb3dSCy Schubert o Make vsnprintf() returns consistent on win32. 12322b15cb3dSCy Schubert o Fix connection keep-alive behavior for HTTP/1.0 12332b15cb3dSCy Schubert o Fix use of freed memory in event_reinit; pointed out by Peter Postma 12342b15cb3dSCy Schubert o constify struct timeval * where possible 12352b15cb3dSCy Schubert o make event_get_supported_methods obey environment variables 12362b15cb3dSCy Schubert o support for edge-triggered events on epoll and kqueue backends: patch from Valery Kholodkov 12372b15cb3dSCy Schubert o support for selecting event backends by their features, and for querying the features of a backend. 12382b15cb3dSCy Schubert o change failing behavior of event_base_new_with_config: if a config is provided and no backend is selected, return NULL instead of aborting. 12392b15cb3dSCy Schubert o deliver partial data to request callbacks when chunked callback is set even if there is no chunking on the http level; allows cancelation of requests from within the chunked callback; from Scott Lamb. 12402b15cb3dSCy Schubert o allow min_heap_erase to be called on removed members; from liusifan. 12412b15cb3dSCy Schubert o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT. Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility. 12422b15cb3dSCy Schubert o Do not use SO_REUSEADDR when connecting 12432b15cb3dSCy Schubert o Support 64-bit integers in RPC structs 12442b15cb3dSCy Schubert o Correct handling of trailing headers in chunked replies; from Scott Lamb. 12452b15cb3dSCy Schubert o Support multi-line HTTP headers; based on a patch from Moshe Litvin 12462b15cb3dSCy Schubert o Reject negative Content-Length headers; anonymous bug report 12472b15cb3dSCy Schubert o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report 12482b15cb3dSCy Schubert o Various HTTP correctness fixes from Scott Lamb 12492b15cb3dSCy Schubert o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail 12502b15cb3dSCy Schubert o Support multiple events listening on the same signal; make signals regular events that go on the same event queue; problem report by Alexander Drozdov. 12512b15cb3dSCy Schubert o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov. 12522b15cb3dSCy Schubert o Fix off-by-one errors in devpoll; from Ian Bell 12532b15cb3dSCy Schubert o Make event_add not change any state if it fails; reported by Ian Bell. 12542b15cb3dSCy Schubert o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. 12552b15cb3dSCy Schubert o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov. 12562b15cb3dSCy Schubert o Add new utility functions to correctly observe and log winsock errors. 12572b15cb3dSCy Schubert o Do not remove Accept-Encoding header 12582b15cb3dSCy Schubert o Clear the timer cache on entering the event loop; reported by Victor Chang 12592b15cb3dSCy Schubert o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez 12602b15cb3dSCy Schubert o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones. 12612b15cb3dSCy Schubert o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn 12622b15cb3dSCy Schubert o Fix a typo in setting the global event base; reported by lance. 12632b15cb3dSCy Schubert o Set the 0x20 bit on outgoing alphabetic characters in DNS requests randomly, and insist on a match in replies. This helps resist DNS poisoning attacks. 12642b15cb3dSCy Schubert o Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it. 12652b15cb3dSCy Schubert o Restructure the event backends so that they do not need to keep track of events themselves, as a side effect multiple events can use the same fd or signal. 12662b15cb3dSCy Schubert o Add generic implementations for parsing and emiting IPv6 addresses on platforms that do not have inet_ntop and/or inet_pton. 12672b15cb3dSCy Schubert o Allow DNS servers that have IPv6 addresses. 12682b15cb3dSCy Schubert o Add an evbuffer_write_atmost() function to write a limited number of bytes to an fd. 12692b15cb3dSCy Schubert o Refactor internal notify-main-thread logic to prefer eventfd to pipe, then pipe to socketpair, and only use socketpairs as a last resort. 12702b15cb3dSCy Schubert o Try harder to pack all evbuffer reads into as few chains as possible, using readv/WSARecv as appropriate. 12712b15cb3dSCy Schubert o New evthread_use_windows_threads() and evthread_use_pthreads() functions to set up the evthread callbacks with reasonable defaults. 12722b15cb3dSCy Schubert o Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted. 12732b15cb3dSCy Schubert o sendfile, mmap and memory reference support for evbuffers. 12742b15cb3dSCy Schubert o New evutil_make_listen_socket_reuseable() to abstract SO_REUSEADDR. 12752b15cb3dSCy Schubert o New bind-to option to allow DNS clients to bind to an arbitrary port for outgoing requests. 12762b15cb3dSCy Schubert o evbuffers can now be "frozen" to prevent operations at one or both ends. 12772b15cb3dSCy Schubert o Bufferevents now notice external attempts to add data to an inbuf or remove it from an outbuf, and stop them. 12782b15cb3dSCy Schubert o Fix parsing of queries where the encoded queries contained \r, \n or + 12792b15cb3dSCy Schubert o Do not allow internal events to starve lower-priority events. 12802b15cb3dSCy Schubert 1281