1c43e99fdSEd MasteChanges in version 2.0.21-stable (18 Nov 2012) 2c43e99fdSEd MasteBUGFIXES: 3c43e99fdSEd Maste o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) 4c43e99fdSEd Maste o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) 5c43e99fdSEd Maste o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) 6c43e99fdSEd Maste o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) 7c43e99fdSEd Maste o build: Use python2 rather than python (0eb0109 Ross Lagerwall) 8c43e99fdSEd Maste o build: Compile without warnings on mingw64 (94866c2) 9c43e99fdSEd Maste o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) 10c43e99fdSEd Maste o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) 11c43e99fdSEd Maste o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) 12c43e99fdSEd Maste o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) 13c43e99fdSEd Maste o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) 14c43e99fdSEd Maste o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) 15c43e99fdSEd Maste o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) 16c43e99fdSEd Maste 17c43e99fdSEd Maste 18c43e99fdSEd MasteChanges in version 2.0.20-stable (23 Aug 2012) 19c43e99fdSEd MasteBUGFIXES: 20c43e99fdSEd Maste o core: Make event_pending() threadsafe. (be7a95c Simon Liu) 21c43e99fdSEd Maste o win32: avoid crash when waiting forever on zero fds. (160e58b) 22c43e99fdSEd Maste o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31) 23c43e99fdSEd Maste o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c) 24c43e99fdSEd Maste o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67) 25c43e99fdSEd Maste o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3) 26c43e99fdSEd Maste o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel) 27c43e99fdSEd Maste o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43) 28c43e99fdSEd Maste 29c43e99fdSEd Maste 30c43e99fdSEd MastePORTABILITY FIXES: 31c43e99fdSEd Maste o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel) 32c43e99fdSEd Maste o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn) 33c43e99fdSEd Maste o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6) 34c43e99fdSEd Maste 35c43e99fdSEd MasteBUILD FIXES: 36c43e99fdSEd Maste o Add GCC annotations so that the vsprintf functions get checked properly (117e327) 37c43e99fdSEd Maste o Fix an unused variable warning on *BSD. (c0720c1) 38c43e99fdSEd Maste 39c43e99fdSEd MasteUNIT TEST FIXES: 40c43e99fdSEd Maste o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall) 41c43e99fdSEd Maste o Remove deadcode in http regression tests. Found by coverity. (5553346) 42c43e99fdSEd Maste o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777) 43c43e99fdSEd Maste o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d) 44c43e99fdSEd Maste o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d) 45c43e99fdSEd Maste o Fix resource leaks in the unit tests; found by coverity (270f279) 46c43e99fdSEd Maste o Add some missing null checks to unit tests; found by coverity (f021c3d) 47c43e99fdSEd Maste o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf) 48c43e99fdSEd Maste o Remove unused variable; spotted by coverity (6355b2a) 49c43e99fdSEd Maste o Add checks to various return values in unit tests. Found by coverity (b9e7329) 50c43e99fdSEd Maste o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0) 51c43e99fdSEd Maste 52c43e99fdSEd Maste 53c43e99fdSEd Maste 54c43e99fdSEd MasteChanges in version 2.0.19-stable (3 May 2012) 55c43e99fdSEd MasteBUGFIXES (CORE): 56c43e99fdSEd Maste o Refactor event_persist_closure: raise and extract some common logic (bec22b4) 57c43e99fdSEd Maste o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c) 58c43e99fdSEd Maste o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40) 59c43e99fdSEd Maste 60c43e99fdSEd MasteBUGFIXES (SSL): 61c43e99fdSEd Maste o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey) 62c43e99fdSEd Maste 63c43e99fdSEd MasteBUGFIXES (DNS): 64c43e99fdSEd Maste o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel) 65c43e99fdSEd Maste o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel) 66c43e99fdSEd Maste o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a) 67c43e99fdSEd Maste 68c43e99fdSEd MasteDOCUMENTATION FIXES: 69c43e99fdSEd Maste o Fix a typo in the bufferevent documentation (98e9119) 70c43e99fdSEd Maste o Add missing ) to changelog; spotted by rransom (4c7ee6b) 71c43e99fdSEd Maste o Fix the website URL in the readme (f775521) 72c43e99fdSEd Maste 73c43e99fdSEd MasteCOMPILATION FIXES: 74c43e99fdSEd Maste o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae) 75c43e99fdSEd Maste o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn) 76c43e99fdSEd Maste o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg) 77c43e99fdSEd Maste 78c43e99fdSEd MasteFORWARD-COMPATIBILITY: 79c43e99fdSEd Maste o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2) 80c43e99fdSEd Maste 81c43e99fdSEd MasteTESTING/DEBUGGING SUPPORT: 82c43e99fdSEd Maste o dns-example.c can now take a resolv.conf file on the commandline (6610fa5) 83c43e99fdSEd Maste o Make some evdns.c debug logs more verbose (d873d67) 84c43e99fdSEd Maste o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd) 85c43e99fdSEd Maste 86c43e99fdSEd Maste 87c43e99fdSEd Maste 88c43e99fdSEd MasteChanges in version 2.0.18-stable (22 Mar 2012) 89c43e99fdSEd MasteBUGFIXES (core): 90c43e99fdSEd Maste o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42) 91c43e99fdSEd Maste 92c43e99fdSEd MasteBUGFIXES (kqueue): 93c43e99fdSEd Maste o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn) 94c43e99fdSEd Maste 95c43e99fdSEd MasteBUILD FIXES: 96c43e99fdSEd Maste o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey) 97c43e99fdSEd Maste o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey) 98c43e99fdSEd Maste o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn) 99c43e99fdSEd Maste 100c43e99fdSEd MasteBUGFIXES (dns): 101c43e99fdSEd Maste o Stop crashing in evdns when nameserver probes give a weird error (bec5068) 102c43e99fdSEd Maste 103c43e99fdSEd Maste 104c43e99fdSEd MasteChanges in version 2.0.17-stable (10 Feb 2012) 105c43e99fdSEd Maste 106c43e99fdSEd MasteBUGFIXES (core): 107c43e99fdSEd Maste o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5) 108c43e99fdSEd Maste o check for sysctl before we use it (358c745 Mike Frysinger) 109c43e99fdSEd Maste o Remove bogus casts of socket to int before calling ev_callback (f032516) 110c43e99fdSEd Maste o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720) 111c43e99fdSEd Maste o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc) 112c43e99fdSEd Maste o Fix a fd leak in event_reinit() (3f18ad1) 113c43e99fdSEd Maste o Do a memberwise comparison of threading function tables (c94a5f2 Nate R) 114c43e99fdSEd Maste o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill) 115c43e99fdSEd Maste o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6) 116c43e99fdSEd Maste o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott) 117c43e99fdSEd Maste 118c43e99fdSEd MasteBUGFIXES (evbuffer and bufferevents): 119c43e99fdSEd Maste o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg) 120c43e99fdSEd Maste o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812) 121c43e99fdSEd Maste 122c43e99fdSEd MasteBUGFIXES (evhttp): 123c43e99fdSEd Maste o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea) 124c43e99fdSEd Maste 125c43e99fdSEd MasteBUGFIXES (evdns): 126c43e99fdSEd Maste o evdns: fix a bug in circular-queue implementation (d6094b1) 127c43e99fdSEd Maste 128c43e99fdSEd MasteBUILD FIXES: 129c43e99fdSEd Maste o Fix a silly compilation error with the sun compiler (1927776 Colin Watt) 130c43e99fdSEd Maste o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c) 131c43e99fdSEd Maste 132c43e99fdSEd MasteDOCUMENTATION FIXES: 133c43e99fdSEd Maste o Slightly clarify evbuffer_peek documentation (7bbf6ca) 134c43e99fdSEd Maste o Update copyright notices to 2012 (e49e289) 135c43e99fdSEd Maste 136c43e99fdSEd MasteNEW APIS: 137c43e99fdSEd Maste o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker) 138c43e99fdSEd Maste 139c43e99fdSEd MasteTESTS AND TEST FIXES: 140c43e99fdSEd Maste o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7) 141c43e99fdSEd Maste o Add function to check referential integrity of an event_base (27737d5) 142c43e99fdSEd Maste o Check event_base correctness at end of each unit test (3312b02) 143c43e99fdSEd Maste o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187) 144c43e99fdSEd Maste o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259) 145c43e99fdSEd Maste 146c43e99fdSEd MasteChanges in version 2.0.16-stable (18 Nov 2011) 147c43e99fdSEd MasteBUGFIXES (core): 148c43e99fdSEd Maste o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov) 149c43e99fdSEd Maste o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles) 150c43e99fdSEd Maste o Fix compile warning from saying event2/*.h inside a comment (447b0ba) 151c43e99fdSEd Maste o Warn when unable to construct base because of failing make_base_notifiable (4e797f3) 152c43e99fdSEd Maste o Don't try to make notifiable event_base when no threading fns are configured (e787413) 153c43e99fdSEd Maste 154c43e99fdSEd MasteBUGFIXES (evbuffer): 155c43e99fdSEd Maste o unit test for remove_buffer bug (90bd620 Greg Hazel) 156c43e99fdSEd Maste o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c) 157c43e99fdSEd Maste 158c43e99fdSEd MasteBUGFIXES (bufferevent_openssl): 159c43e99fdSEd Maste o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey) 160c43e99fdSEd Maste o Move SSL rate-limit enforcement into bytes_to_read() (96c562f) 161c43e99fdSEd Maste o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey) 162c43e99fdSEd Maste 163c43e99fdSEd MasteBUGFIXES (dns) 164c43e99fdSEd Maste o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov) 165c43e99fdSEd Maste 166c43e99fdSEd MasteTESTING: 167c43e99fdSEd Maste o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov) 168c43e99fdSEd Maste o Test for commit aff6ba1 (f7841bf Leonid Evdokimov) 169c43e99fdSEd Maste o Style and comment tweaks for dns/leak* tests (5e42202) 170c43e99fdSEd Maste o improve test to remove at least one buffer from src (7eb52eb Greg Hazel) 171c43e99fdSEd Maste 172c43e99fdSEd MasteDOCUMENTATION: 173c43e99fdSEd Maste o Add note about evhttp_send_reply_end to its doxygen (724bfb5) 174c43e99fdSEd Maste o Update copyright dates to 2011. (3c824bd) 175c43e99fdSEd Maste o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid) 176c43e99fdSEd Maste o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem) 177c43e99fdSEd Maste 178c43e99fdSEd Maste 179c43e99fdSEd Maste 180c43e99fdSEd MasteChanges in version 2.0.15-stable (12 Oct 2011) 181c43e99fdSEd MasteBUGFIXES (DNS): 182c43e99fdSEd Maste o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov) 183c43e99fdSEd Maste o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov) 184c43e99fdSEd Maste 185c43e99fdSEd MasteBUFGIXES (bufferevents and evbuffers): 186c43e99fdSEd Maste o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex) 187c43e99fdSEd Maste o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9) 188c43e99fdSEd Maste 189c43e99fdSEd MasteBUGFIXES (event loop): 190c43e99fdSEd Maste o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a) 191c43e99fdSEd Maste 192c43e99fdSEd MasteDOCUMENTATION FIXES: 193c43e99fdSEd Maste o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov) 194c43e99fdSEd Maste o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel) 195c43e99fdSEd Maste 196c43e99fdSEd MasteBUILD AND TESTING FIXES: 197c43e99fdSEd Maste o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev) 198c43e99fdSEd Maste o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382) 199c43e99fdSEd Maste o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey) 200c43e99fdSEd Maste o Make write-checking fixes use tt_fail_perror (2b76847) 201c43e99fdSEd Maste o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7) 202c43e99fdSEd Maste 203c43e99fdSEd Maste 204c43e99fdSEd Maste 205c43e99fdSEd MasteChanges in version 2.0.14-stable (31 Aug 2011) 206c43e99fdSEd MasteBUGFIXES (bufferevents and evbuffers): 207c43e99fdSEd Maste o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch) 208c43e99fdSEd Maste o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn) 209c43e99fdSEd Maste o Fix handling of group rate limits under 64 bytes of burst (6d5440e) 210c43e99fdSEd Maste o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf) 211c43e99fdSEd Maste o Make rate limiting work with common_timeout logic (5b18f13) 212c43e99fdSEd Maste o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch) 213c43e99fdSEd Maste 214c43e99fdSEd MasteBUGFIXES (IOCP): 215c43e99fdSEd Maste o IOCP: don't launch reads or writes on an unconnected socket (495c227) 216c43e99fdSEd Maste o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b) 217c43e99fdSEd Maste o Have test-ratelim.c support IOCP (0ff2c5a) 218c43e99fdSEd Maste o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd) 219c43e99fdSEd Maste o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d) 220c43e99fdSEd Maste 221c43e99fdSEd MasteBUGFIXES (other): 222c43e99fdSEd Maste o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov) 223c43e99fdSEd Maste o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov) 224c43e99fdSEd Maste 225c43e99fdSEd MasteBUILD AND TESTING FIXES: 226c43e99fdSEd Maste o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston) 227c43e99fdSEd Maste o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart) 228c43e99fdSEd Maste o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn) 229c43e99fdSEd Maste 230c43e99fdSEd Maste 231c43e99fdSEd MasteChanges in version 2.0.13-stable (18 Jul 2011) 232c43e99fdSEd MasteBUGFIXES 233c43e99fdSEd Maste o Avoid race-condition when initializing global locks (b683cae) 234c43e99fdSEd Maste o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch) 235c43e99fdSEd Maste o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey) 236c43e99fdSEd Maste o Avoid a segfault when all methods are disabled or broken (27ce38b) 237c43e99fdSEd Maste o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a) 238c43e99fdSEd Maste o Add some missing checks for mm_calloc failures (89d5e09) 239c43e99fdSEd Maste o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d) 240c43e99fdSEd Maste o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab) 241c43e99fdSEd Maste o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid) 242c43e99fdSEd Maste o Use the correct printf args when formatting size_t (3203f88) 243c43e99fdSEd Maste o Complain if the caller tries to change threading cbs after setting them (cb6ecee) 244c43e99fdSEd Maste 245c43e99fdSEd MasteDOCUMENTATION FIXES AND IMPROVEMENTS 246c43e99fdSEd Maste o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac) 247c43e99fdSEd Maste o Update Doxyfile to produce more useful output (aea0555) 248c43e99fdSEd Maste 249c43e99fdSEd MasteTEST FIXES 250c43e99fdSEd Maste o Fix up test_evutil_snprintf (caf695a) 251c43e99fdSEd Maste o Fix tinytest invocation from windows shell (57def34 Ed Day) 252c43e99fdSEd Maste 253c43e99fdSEd MasteBUILD FIXES 254c43e99fdSEd Maste o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d) 255c43e99fdSEd Maste o Fix select.c compilation on systems with no NFDBITS (49d1136) 256c43e99fdSEd Maste o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott) 257c43e99fdSEd Maste o Don't break when building tests from git without python installed (b031adf) 258c43e99fdSEd Maste o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn) 259c43e99fdSEd Maste o Fix AIX build issue with TAILQ_FOREACH definition (e934096) 260c43e99fdSEd Maste 261c43e99fdSEd Maste 262c43e99fdSEd MasteChanges in version 2.0.12-stable (4 Jun 2011) 263c43e99fdSEd MasteBUGFIXES 264c43e99fdSEd Maste o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0) 265c43e99fdSEd Maste o Fix an assert-inducing fencepost bug in the select backend (d90149d) 266c43e99fdSEd Maste o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko) 267c43e99fdSEd Maste o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1) 268c43e99fdSEd Maste o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid) 269c43e99fdSEd Maste o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey) 270c43e99fdSEd Maste o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey) 271c43e99fdSEd Maste 272c43e99fdSEd MasteDOCUMENTATION: 273c43e99fdSEd Maste o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d) 274c43e99fdSEd Maste 275c43e99fdSEd MasteBUILD FIXES 276c43e99fdSEd Maste o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin) 277c43e99fdSEd Maste o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin) 278c43e99fdSEd Maste o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn) 279c43e99fdSEd Maste o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn) 280c43e99fdSEd Maste o Correctly detect openssl on windows (6619385 Sebastian Hahn) 281c43e99fdSEd Maste o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn) 282c43e99fdSEd Maste o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart) 283c43e99fdSEd Maste o Fix new warnings from GCC 4.6 (06a714f) 284c43e99fdSEd Maste o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin) 285c43e99fdSEd Maste o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin) 286c43e99fdSEd Maste o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin) 287c43e99fdSEd Maste o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin) 288c43e99fdSEd Maste o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin) 289c43e99fdSEd Maste o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin) 290c43e99fdSEd Maste o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin) 291c43e99fdSEd Maste o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin) 292c43e99fdSEd Maste o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn) 293c43e99fdSEd Maste o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin) 294c43e99fdSEd Maste o cygwin: make it possible to build DLLs (d54d3fc) 295c43e99fdSEd Maste 296c43e99fdSEd Maste 297c43e99fdSEd Maste 298c43e99fdSEd MasteChanges in version 2.0.11-stable (27 Apr 2011) 299c43e99fdSEd Maste [Autogenerated from the Git log, sorted and cleaned by hand.] 300c43e99fdSEd MasteBUGFIXES: 301c43e99fdSEd Maste o Fix evport handling of POLLHUP and POLLERR (b42ce4b) 302c43e99fdSEd Maste o Fix compilation on Windows with NDEBUG (cb8059d) 303c43e99fdSEd Maste o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye) 304c43e99fdSEd Maste o Detect and handle more allocation failures. (666b096 Jardel Weyrich) 305c43e99fdSEd Maste o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich) 306c43e99fdSEd Maste o Handle resize failures in the select backend better. (83e805a) 307c43e99fdSEd Maste o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b) 308c43e99fdSEd Maste o Make --enable-gcc-warnings a no-op if not using gcc (3267703) 309c43e99fdSEd Maste o Fix a type error in our (unused) arc4random_stir() (f736198) 310c43e99fdSEd Maste o Correctly detect and stop non-chunked http requests when the body is too long (63a715e) 311c43e99fdSEd Maste o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7) 312c43e99fdSEd Maste o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko) 313c43e99fdSEd Maste o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot) 314c43e99fdSEd Maste o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko) 315c43e99fdSEd Maste o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko) 316c43e99fdSEd Maste o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko) 317c43e99fdSEd Maste o Fix a crash bug in evdns server circular list code (00e91b3) 318c43e99fdSEd Maste o Handle calloc failure in evdns. (Found by Dave Hart) (364291e) 319c43e99fdSEd Maste o Fix a memory leak on win32 socket->event map. (b4f89f0) 320c43e99fdSEd Maste o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn) 321c43e99fdSEd Maste o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn) 322c43e99fdSEd Maste 323c43e99fdSEd MastePORTABILITY: 324c43e99fdSEd Maste o Fall back to sscanf if we have no other way to implement strtoll (453317b) 325c43e99fdSEd Maste o Build correctly on platforms without sockaddr_storage (9184563) 326c43e99fdSEd Maste o Try to build correctly on platforms with no IPv6 support (713c254) 327c43e99fdSEd Maste o Build on systems without AI_PASSIVE (cb92113) 328c43e99fdSEd Maste o Fix http unit test on non-windows platforms without getaddrinfo (6092f12) 329c43e99fdSEd Maste o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0) 330c43e99fdSEd Maste o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn) 331c43e99fdSEd Maste o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn) 332c43e99fdSEd Maste o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn) 333c43e99fdSEd Maste o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn) 334c43e99fdSEd Maste o Check for allocation failures in apply_socktype_protocol_hack (637d17a) 335c43e99fdSEd Maste o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b) 336c43e99fdSEd Maste o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68) 337c43e99fdSEd Maste 338c43e99fdSEd MasteDEFENSIVE PROGRAMMING: 339c43e99fdSEd Maste o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7) 340c43e99fdSEd Maste 341c43e99fdSEd MasteBUGS IN TESTS: 342c43e99fdSEd Maste o Fix test.sh output on solaris (b4f89b6 Dave Hart) 343c43e99fdSEd Maste o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn) 344c43e99fdSEd Maste o Use %s with printf in test.sh (039b9bd) 345c43e99fdSEd Maste o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn) 346c43e99fdSEd Maste o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn) 347c43e99fdSEd Maste o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn) 348c43e99fdSEd Maste o add some (void) casts for unused variables (65707d7 Sebastian Hahn) 349c43e99fdSEd Maste o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn) 350c43e99fdSEd Maste o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn) 351c43e99fdSEd Maste o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn) 352c43e99fdSEd Maste o Remote some dead code from dns-example.c (744c745 Sebastian Hahn) 353c43e99fdSEd Maste o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn) 354c43e99fdSEd Maste 355c43e99fdSEd MasteBUILD FIXES: 356c43e99fdSEd Maste o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn) 357c43e99fdSEd Maste o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn) 358c43e99fdSEd Maste o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn) 359c43e99fdSEd Maste o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart) 360c43e99fdSEd Maste o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart) 361c43e99fdSEd Maste o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn) 362c43e99fdSEd Maste 363c43e99fdSEd MasteFEATURES: 364c43e99fdSEd Maste o Make URI parser able to tolerate nonconformant URIs. (95060b5) 365c43e99fdSEd Maste 366c43e99fdSEd MasteDOCUMENTATION: 367c43e99fdSEd Maste o Clarify event_set_mem_functions doc (926f816) 368c43e99fdSEd Maste o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924) 369c43e99fdSEd Maste o fix spelling mistake in whatsnew-2.0.txt (deb2f73) 370c43e99fdSEd Maste o Fix sample/http-server ipv6 fixes (eb692be) 371c43e99fdSEd Maste o Comment internal headers used in sample code. (4eb281c) 372c43e99fdSEd Maste o Be explicit about how long event loops run in event.h documentation (f95bafb) 373c43e99fdSEd Maste o Add comment to configure.in to explain gc-sections test logic (c621359) 374c43e99fdSEd Maste o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665) 375c43e99fdSEd Maste 376c43e99fdSEd MasteBUILD IMPROVEMENTS: 377c43e99fdSEd Maste o Use the gcc -ffunction-segments feature to allow gc when linking with static libevent (0965c56 Dave Hart) 378c43e99fdSEd Maste o Add configure options to disable installation, regression tests (49e9bb7 Dave Hart) 379c43e99fdSEd Maste 380c43e99fdSEd Maste 381c43e99fdSEd Maste 382c43e99fdSEd MasteChanges in version 2.0.10-stable (16 Dec 2010) 383c43e99fdSEd Maste [Autogenerated from the Git log, sorted and cleaned by hand.] 384c43e99fdSEd MasteBUGFIXES 385c43e99fdSEd Maste o Minor fix for IOCP shutdown handling fix (2599b2d Kelly Brock) 386c43e99fdSEd Maste o Correctly notify the main thread when activating an event from a subthread (5beeec9) 387c43e99fdSEd Maste o Reject overlong http requests early when Expect:100-continue is set (d23839f Constantine Verutin) 388c43e99fdSEd Maste o EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings with -DNDEBUG. (b63ab17 Evan Jones) 389c43e99fdSEd Maste 390c43e99fdSEd MasteCODE CLEANUPS 391c43e99fdSEd Maste o bufferevent-internal.h: Use the new event2/util.h header, not evutil.h (ef5e65a Evan Jones) 392c43e99fdSEd Maste o Use relative includes instead of system includes consistently. (fbe64f2 Evan Jones) 393c43e99fdSEd Maste o Make whitespace more consistent 394c43e99fdSEd Maste 395c43e99fdSEd MasteTESTING 396c43e99fdSEd Maste o tests: Use new event2 headers instead of old compatibility headers. (4f33209 Evan Jones) 397c43e99fdSEd Maste 398c43e99fdSEd MasteDOCUMENTATION 399c43e99fdSEd Maste o Document that the cpu_hint is only used on Windows with IOCP for now (57689c4) 400c43e99fdSEd Maste o Add stuff to "whats new in 2.0" based on reading include changes since August. (18adc3f) 401c43e99fdSEd Maste 402c43e99fdSEd Maste 403c43e99fdSEd MasteChanges in 2.0.9-rc (30 Nov 2010): 404c43e99fdSEd Maste [Autogenerated from the Git log, sorted and cleaned by hand.] 405c43e99fdSEd MasteNEW AND MODIFIED APIs 406c43e99fdSEd Maste o Add a function to change a listener's callback. (46ee061) 407c43e99fdSEd Maste o Make evbuffer_add_file take ev_off_t, not off_t (ac7e52d) 408c43e99fdSEd Maste o Make rate-limits go up to SIZE_MAX/EV_SSIZE_MAX, not just INT32_MAX (2cbb1a1) 409c43e99fdSEd Maste o Add a bufferevent_get_base function (aab49b6) 410c43e99fdSEd Maste 411c43e99fdSEd MasteMAJOR BUGFIXES 412c43e99fdSEd Maste 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) 413c43e99fdSEd Maste o Fix a 100%-CPU bug where an SSL connection would sometimes never stop trying to write (1213d3d) 414c43e99fdSEd Maste o Fix a nasty bug related to use of dup() with epoll on Linux (c281aba) 415c43e99fdSEd Maste o Fix bugs in posix thread-id calculation when sizeof(pthread_t) != sizeof(long) (fbaf077) 416c43e99fdSEd Maste o Fix some ints to evutil_socket_t; make tests pass on win64. (f817bfa Dimitre Piskyulev) 417c43e99fdSEd Maste o Set _EVENT_SIZEOF_VOID_P correctly on win32 and win64 (1ae82cd Dimitre Piskyulev) 418c43e99fdSEd Maste o Avoid double-invocation of user callback with EVUTIL_EAI_CANCEL (abf01ed) 419c43e99fdSEd Maste o Set SO_UPDATE_ACCEPT_CONTEXT on sockets from AcceptEx so that shutdown() can work (52aa419) 420c43e99fdSEd Maste o When closing a filtering bufferevent, clear callbacks on the underlying bufferevent (fc7b1b0) 421c43e99fdSEd Maste 422c43e99fdSEd MasteNEW AND MODIFIED HTTP APIs 423c43e99fdSEd Maste o Add evhttp_parse_query_str to be used with evhttp_uri_parse. (2075fbc) 424c43e99fdSEd Maste o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b) 425c43e99fdSEd Maste o Define enumerators for all HTTP methods, including PATCH from RFC5789 (75a7341 Felix Nawothnig) 426c43e99fdSEd Maste o Functions to actually use evhttp_bound_socket with/as evconnlistener. (006efa7) 427c43e99fdSEd Maste o Add evhttp_request_get_command so code can tell GET from POST without peeking at the struct. (49f4bf7) 428c43e99fdSEd Maste o Introduce absolute URI parsing helpers. (86dd720 Pavel Plesov) 429c43e99fdSEd Maste o Revise evhttp_uri_parse implementation to handle more of RFC3986 (eaa5f1d) 430c43e99fdSEd Maste o Add evhttp_connection_get_base() to get the event_base from an http connection (cd00079) 431c43e99fdSEd Maste o Let evhttp_parse_query return -1 on failure (b1756d0) 432c43e99fdSEd Maste o New evhttp_uri(encode|decode) functions to handle + and NUL characters right (a8148ce) 433c43e99fdSEd Maste o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b) 434c43e99fdSEd Maste o Tweak interface for allowed methods (f5b391e) 435c43e99fdSEd Maste o Add evhttp server alias interface, correct flagging of proxy requests. (aab8c38 Christopher Davis) 436c43e99fdSEd Maste 437c43e99fdSEd MasteHTTP BUGFIXES 438c43e99fdSEd Maste o Add some comments to http.c and make a few functions static. (90b3ed5) 439c43e99fdSEd Maste o Fix Content-Length when trying send more than 100GB of data (!) on an evhttp. (525da3e) 440c43e99fdSEd Maste o Fix a bug where we would read too much data in HTTP bodies or requests. (58a1cc6) 441c43e99fdSEd Maste o Correctly count req->body_size on http usage without Content-Length (8e342e5) 442c43e99fdSEd Maste o Avoid missed-request bug when entire http request arrives before data is flushed (74c0e86) 443c43e99fdSEd Maste o reset "chunked" flag when sending non-chunked reply (aa5f55f Joachim Bauch) 444c43e99fdSEd Maste o evhttp_encode_uri encodes all reserved characters, including !$'()*+,/:=@ (2e63a60) 445c43e99fdSEd Maste o Replace exact-version checks for HTTP/1.1 with >= or < checks (647e094) 446c43e99fdSEd Maste o evhttp: Return 501 when we get an unrecognized method, not 400. (536311a) 447c43e99fdSEd Maste o Don't disable reading from the HTTP connection after sending the request to be notified of connection-close in time (c76640b Felix Nawothnig) 448c43e99fdSEd Maste o Never call evhttp_readcb while writing. (0512487) 449c43e99fdSEd Maste o Try to fix an assertion failure related to close detection (0faaa39) 450c43e99fdSEd Maste o Correctly detect timeouts during http connects (04861d5) 451c43e99fdSEd Maste o Preliminary support for Continue expectation in evhttp. (fa9305f Christopher Davis) 452c43e99fdSEd Maste 453c43e99fdSEd MasteOTHER BUGFIXES 454c43e99fdSEd Maste o Correct logic for realigning a chain in evbuffer_add (e4f34e8) 455c43e99fdSEd Maste o Fix a minor syntax error that most compilers didn't care about (e56ff65) 456c43e99fdSEd Maste o Fix some uses of int for socket in regress (5d389dc) 457c43e99fdSEd Maste o Check return value for ioctlsocket on win32 (f5ad31c Trond Norbye) 458c43e99fdSEd Maste o Fix som event_warns that should have been event_warnx (19c71e7) 459c43e99fdSEd Maste o Fix signal handler types for win64. (b81217f) 460c43e99fdSEd Maste o Try to clear up more size_t vs int/long issues. (598d133) 461c43e99fdSEd Maste o Make sure IOCP evconnlistener uses virtual events. (7b40a00 Christopher Davis) 462c43e99fdSEd Maste o Don't free evdns_request handles until after the callback is invoked (9ed30de) 463c43e99fdSEd Maste o Fix some more cancel-related bugs in getaddrinfo_async (c7cfbcf) 464c43e99fdSEd Maste o Make evdns_getaddrinfo_cancel threadsafe (d51b2fc) 465c43e99fdSEd Maste o Only clear underlying callbacks when the user hasn't reset them. (1ac5b23) 466c43e99fdSEd Maste o Fix bug in bufferevent_connect on an openssl bufferevent that already had an fd (4f228a1) 467c43e99fdSEd Maste o Resolve an evport bug in the thread/forking test (3a67d0b) 468c43e99fdSEd Maste o Make sure the CLOEXEC flag is set on fds we open for base notification (3ab578f) 469c43e99fdSEd Maste o Fix IRIX build. sa_family collides with a #define in sys/socket.h on IRIX. (e874982 Kevin Bowling) 470c43e99fdSEd Maste o If not WIN32, include <sys/socket.h> in event2/util.h. (1cd45e5 Kevin Bowling) 471c43e99fdSEd Maste o Fix some C99-style comments to work with the xlC compiler. (c2e5e22 Kevin Bowling) 472c43e99fdSEd Maste 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) 473c43e99fdSEd Maste o Reworked AIX __ss_family workaround to use AC_STRUCT_MEMBER. (2e2a3d7 Kevin Bowling) 474c43e99fdSEd Maste o Take select from <sys/select.h> when testing in autoconf. AIX build fix. (a3a9f6b Kevin Bowling) 475c43e99fdSEd Maste o Fix snprintf related failures on IRIX. (3239073 Kevin Bowling) 476c43e99fdSEd Maste o Remove _event_initialized(); make event_initialized() a function(); make it consistent on windows and non-windows (652024b) 477c43e99fdSEd Maste o Do not let EVLOOP_ONCE exit the loop until all deferred callbacks have run (2d5e1bd) 478c43e99fdSEd Maste o Make EVLOOP_ONCE ignore internal events (0617a81) 479c43e99fdSEd Maste o Possible crash fix when freeing an underlying bufferevent of an openssl bufferevent (29f7623) 480c43e99fdSEd Maste 481c43e99fdSEd MasteHTTP CLEANUPS 482c43e99fdSEd Maste o Stop using Libevent-1 headers in regress_http (1f507d7) 483c43e99fdSEd Maste o Modernize header usage in bench_http.c (e587069) 484c43e99fdSEd Maste o fix signed/unsigned warnings in http.c (74a91e5) 485c43e99fdSEd Maste o Update the HTTP regression tests to use Libevent2 apis for non-http stuff (d9ffa89) 486c43e99fdSEd Maste o Start porting http tests to not use legacy interfaces (8505a74) 487c43e99fdSEd Maste o Convert the rest of the http tests to be non-legacy unit tests. (9bb8239) 488c43e99fdSEd Maste o Rename the confusing "base" static variable in regress_http.c (353402a) 489c43e99fdSEd Maste o Stop accessing http request struct directly from in the unit tests. (0b137f4) 490c43e99fdSEd Maste o Refactor http version parsing into a single function (a38140b) 491c43e99fdSEd Maste 492c43e99fdSEd MasteTESTING 493c43e99fdSEd Maste o Improvements to tinytest_macros.h (ad923a1) 494c43e99fdSEd Maste o Add a huge pile of tests for the new URI functions, and make them pass. (a5a76e6) 495c43e99fdSEd Maste o Unit tests for evhttp_uri_set* (bc98f5e) 496c43e99fdSEd Maste o Increase the skew tolerance to 2 seconds in thread/deferred_cb_skew (f806476 Christopher Davis) 497c43e99fdSEd Maste o Reorder backends in test.sh to match preference order in event.c (ece974f) 498c43e99fdSEd Maste o Add a stress test for getaddrinfo_cancel (da1bf52) 499c43e99fdSEd Maste o Units test for unexpected evhttp methods. (75e3320) 500c43e99fdSEd Maste 501c43e99fdSEd MasteDOCUMENTATION 502c43e99fdSEd Maste o Document behavior of URI parsing more thoroughly. (3a33462) 503c43e99fdSEd Maste o Document that two bufferevent functions only work on socket bufferevents (70e1b60) 504c43e99fdSEd Maste o add a requested docstring for event_rpcgen.CommandLine.__init__ (f1250eb) 505c43e99fdSEd Maste o Fix a mistake in http documentation found by Julien Blache (229714d) 506c43e99fdSEd Maste o Add a basic example of how to write a static HTTP server. (4e794d5) 507c43e99fdSEd Maste o Document event_get_assignment (88be27d) 508c43e99fdSEd Maste o Note that reentrant calls to libevent from logging cbs may fail badly (e431bcd) 509c43e99fdSEd Maste o Clarify EVLOOP_* documentation to be more precise. (057a514) 510c43e99fdSEd Maste 511c43e99fdSEd MasteCLEANUPS 512c43e99fdSEd Maste o Simplify the logic for choosing EPOLL_CTL_ADD vs EPOLL_CTL_MOD (2c66983) 513c43e99fdSEd Maste o Rename "size" variables in win32select that were really fd counts. (b6a158c) 514c43e99fdSEd Maste o Fix even more win64 warnings (7484df6) 515c43e99fdSEd Maste o Fix even more win64 warnings: buffer, event_tagging, http, evdns, evrpc (545a611) 516c43e99fdSEd Maste o Fix more wn64 warnings. (34b84b9 Christopher Davis) 517c43e99fdSEd Maste o Use the label_len local variable in evdns instead of recalculating it over and over (ba01456) 518c43e99fdSEd Maste o Fix some irix compilation warnings spotted by Kevin Bowling (7bcace2) 519c43e99fdSEd Maste 520c43e99fdSEd Maste 521c43e99fdSEd Maste 522c43e99fdSEd MasteChanges in 2.0.8-rc (14 Oct 2010): 523c43e99fdSEd Maste [Autogenerated from the Git log, sorted and cleaned by hand.] 524c43e99fdSEd MasteNEW APIS 525c43e99fdSEd Maste o Add error callback to evconnlistener (c4be8d8 Simon Perreault) 526c43e99fdSEd Maste o Add a LEV_OPT_THREADSAFE option for threadsafe evconnlisteners (127d4f2) 527c43e99fdSEd Maste 528c43e99fdSEd MasteCHANGED BEHAVIOR 529c43e99fdSEd Maste o Correct logic on disabling underlying bufferevents when disabling a filter (ac27eb8) 530c43e99fdSEd Maste 531c43e99fdSEd MasteBUGFIXES 532c43e99fdSEd Maste o Obey enabled status when unsuspending (040a019 Simon Perreault) 533c43e99fdSEd Maste 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) 534c43e99fdSEd Maste O Make default signal backend fully threadsafe (95a7d41) 535c43e99fdSEd Maste o Put internal events at highest priority (90651b3) 536c43e99fdSEd Maste o Fix warnings in the main codebase flagged by -Wsigned-compare (9c8db0, 5e4bafb, 5c214a, 6be589a, e06f514) 537c43e99fdSEd Maste o Fix compile in kqueue.c (b395392 Sebastian Hahn) 538c43e99fdSEd Maste o Do not search outside of the system directory for windows DLLs (d49b5e3) 539c43e99fdSEd Maste o Fix a spurious-call bug on epoll.c (0faaee0) 540c43e99fdSEd Maste o Send a shutdown(SHUT_WR) before closing an http connection (e0fd870 Christopher Davis) 541c43e99fdSEd Maste o Fix warnings on mingw with gcc 4.5 (5b7a370) 542c43e99fdSEd Maste o Fix an EINVAL on evbuffer_write_iovec on OpenSolaris. (fdc640b) 543c43e99fdSEd Maste o Fix allocation error for IOCP listeners. Probably harmless, since struct event is big (481ef92) 544c43e99fdSEd Maste o Make iocp/listener/error work; don't accept again if lev is disabled. (62b429a Christopher Davis) 545c43e99fdSEd Maste o Handle rate-limiting for reading on OpenSSL bufferevents correctly. (819b171) 546c43e99fdSEd Maste o Fix serious bugs in per-bufferevent rate-limiting code (34d64f8) 547c43e99fdSEd Maste o Avoid spurious reads from just-created open openssl bufferevents (223ee40) 548c43e99fdSEd Maste o Fix a case where an ssl bufferevent with CLOSE_ON_FREE didn't close its fd (93bb7d8) 549c43e99fdSEd Maste o The corrected bufferevent filter semantics let us fix our openssl tests (34331e4) 550c43e99fdSEd Maste 551c43e99fdSEd MasteTESTING 552c43e99fdSEd Maste o Make SSL tests cover enabling/disabling EV_READ. (a5ce9ad) 553c43e99fdSEd Maste o Bump to the latest version of tinytest (f0bd83e) 554c43e99fdSEd Maste o Unit tests for listener error callbacks (045eef4) 555c43e99fdSEd Maste o New unit test for ssl bufferevents starting with connected SSLs. (02f6259) 556c43e99fdSEd Maste 557c43e99fdSEd MasteDEBUGGABILITY 558c43e99fdSEd Maste o Make debugging output for epoll backend more comprehensive (ec2b05e) 559c43e99fdSEd Maste o Make event.c debugging messages report fds (e119899) 560c43e99fdSEd Maste o Make the --enable-gcc-warnings option include signed comparison warnings (d3b096c) 561c43e99fdSEd Maste 562c43e99fdSEd MasteDEADCODE REMOVAL 563c43e99fdSEd Maste o Remove the now-useless evsig_caught and evsig_process (4858b79) 564c43e99fdSEd Maste o Remove event_base.evsigbase; nothing used it. (38d0960) 565c43e99fdSEd Maste 566c43e99fdSEd Maste 567c43e99fdSEd Maste 568c43e99fdSEd MasteChanges in 2.0.7-rc (9 Sep 2010): 569c43e99fdSEd Maste [Autogenerated from the Git log, sorted and cleaned by hand.] 570c43e99fdSEd MasteNEW APIS 571c43e99fdSEd Maste o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143) 572c43e99fdSEd Maste o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis) 573c43e99fdSEd Maste 574c43e99fdSEd MasteBUGFIXES 575c43e99fdSEd Maste o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43) 576c43e99fdSEd Maste o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini) 577c43e99fdSEd Maste o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini) 578c43e99fdSEd Maste o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd) 579c43e99fdSEd Maste o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843) 580c43e99fdSEd Maste o Fix kqueue correctness test on x84_64 (6123d12) 581c43e99fdSEd Maste o Detect events with no ev_base; warn instead of crashing (f1074b7) 582c43e99fdSEd Maste o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3) 583c43e99fdSEd Maste o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20) 584c43e99fdSEd Maste o On windows, make lock/thread function tables static (5de2bcb) 585c43e99fdSEd Maste o Close th_notify_fds and open a new pair on reinit (495ed66) 586c43e99fdSEd Maste o Declare signal handler function as "__cdecl" on Windows (f0056d0) 587c43e99fdSEd Maste o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc) 588c43e99fdSEd Maste o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis) 589c43e99fdSEd Maste 590c43e99fdSEd MasteTHREADING BUGFIXES 591c43e99fdSEd Maste o Avoid deadlock when activating signals (970e6ad) 592c43e99fdSEd Maste o Add a condition variable backend, with implementations for pthreads and win32 (d4977b5) 593c43e99fdSEd Maste o Use conditions instead of current_event_lock to fix a deadlock (e0972c2) 594c43e99fdSEd Maste o Fix logic error in win32 TRY_LOCK that caused problems with rate-limiting (4c32b9d) 595c43e99fdSEd Maste o Avoid needlessly calling evthread_notify_base() when the loop is not running (c7a06bf) 596c43e99fdSEd Maste o Minimize calls to base_notify implementation functions, thereby avoiding needless syscalls (4632b78) 597c43e99fdSEd Maste 598c43e99fdSEd MasteIOCP BUGFIXES 599c43e99fdSEd Maste o IOCP-related evbuffer fixes (03afa20 Christopher Davis) 600c43e99fdSEd Maste o Stop IOCP when freeing the event_base (d844242 Christopher Davis) 601c43e99fdSEd Maste o Some IOCP bufferevent tweaks (76f7e7a Christopher Davis) 602c43e99fdSEd Maste 603c43e99fdSEd MasteTESTS 604c43e99fdSEd Maste o Make the regress_pthread.c tests work on windows with current test APIs (d74ae38) 605c43e99fdSEd Maste o Add a unit test for conditions (5fb1095) 606c43e99fdSEd Maste o Allow more than one copy of regression tests to run at once (a97320a) 607c43e99fdSEd Maste o Fix event_del(0) instance in bench.c (b0f284c Shuo Chen) 608c43e99fdSEd Maste o Fix a few memory leaks in the tests (1115366) 609c43e99fdSEd Maste o IOCP-related unit test tweaks (499452f Christopher Davis) 610c43e99fdSEd Maste o Improve testing of when thread-notification occurs (ce85280) 611c43e99fdSEd Maste 612c43e99fdSEd MasteBUILD AND DISTRIBUTION 613c43e99fdSEd Maste o Add pkgconfig files for libevent_{openssl,pthreads} (ebcb1f0) 614c43e99fdSEd Maste o Change include order in Makefile.nmake (4022b28) 615c43e99fdSEd Maste o Make include/event2/event-config.h not included in source dist (a4af9be) 616c43e99fdSEd Maste o Honor NDEBUG; build without warnings with NDEBUG; make NDEBUG always-off in unit test code (743f866) 617c43e99fdSEd Maste o Declare evkeyvalq and event_list even if event_struct.h comes before sys/queue.h (d3ceca8) 618c43e99fdSEd Maste o Move evkeyvalq into a separate header for evhttp_parse_query users (ca9048f) 619c43e99fdSEd Maste o Prefer autoreconf -ivf to manual autogen.sh (7ea8e89) 620c43e99fdSEd Maste 621c43e99fdSEd MasteCLEANUP 622c43e99fdSEd Maste o Completely remove the (mostly-removed) obsolete thread functions (3808168) 623c43e99fdSEd Maste o Rename regress_pthread.c to regress_thread.c (041989f) 624c43e99fdSEd Maste o Make defer-internal.h use lock macros, not direct calls to lock fns (5218d2a) 625c43e99fdSEd Maste 626c43e99fdSEd MasteDOCUMENTATION 627c43e99fdSEd Maste o Document that DNS_NO_SEARCH is an obsolete alias for DNS_QUERY_NO_SEARCH (33200e7) 628c43e99fdSEd Maste o Update the whatsnew-2.0.txt document (4991669) 629c43e99fdSEd Maste 630c43e99fdSEd Maste 631c43e99fdSEd Maste 632c43e99fdSEd MasteChanges in 2.0.6-rc (6 Aug 2010): 633c43e99fdSEd Maste [Autogenerated from the Git log, sorted by hand.] 634c43e99fdSEd MasteDOCUMENTATION 635c43e99fdSEd Maste o Document a change in the semantics of event_get_struct_event_size() (e21f5d1) 636c43e99fdSEd Maste o Add a comment to describe our plan for library versioning (9659ece) 637c43e99fdSEd Maste o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6) 638c43e99fdSEd Maste 639c43e99fdSEd MasteNEW FEATURES AND INTERFACE CHANGES 640c43e99fdSEd Maste o Remove the obsolete evthread interfaces (c5bab56) 641c43e99fdSEd Maste o Let evhttp_send_error infer the right error reasons (3990669) 642c43e99fdSEd Maste o Add a function to retrieve the other side of a bufferevent pair (17a8e2d) 643c43e99fdSEd Maste o Add bufferevent_lock()/bufferevent_unlock() (215e629) 644c43e99fdSEd Maste o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59) 645c43e99fdSEd Maste o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167) 646c43e99fdSEd Maste o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d) 647c43e99fdSEd Maste o Add an interface to expose min_share in ratelimiting groups (6ae53d6) 648c43e99fdSEd Maste 649c43e99fdSEd MasteBUGFIXES 650c43e99fdSEd Maste o Avoid event_del on uninitialized event in event_base_free (6d19510) 651c43e99fdSEd Maste o Add some missing includes to fix Linux build again (75701e8) 652c43e99fdSEd Maste o Avoid close of uninitialized socket in evbuffer unit test (bda21e7) 653c43e99fdSEd Maste o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b) 654c43e99fdSEd Maste o If no evdns request can be launched, return NULL, not a handle (b14f151) 655c43e99fdSEd Maste o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3) 656c43e99fdSEd Maste o Fix the default HTTP error template (06bd056 Felix Nawothnig) 657c43e99fdSEd Maste o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf) 658c43e99fdSEd Maste o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig) 659c43e99fdSEd Maste o never let bufferevent_rlim functions return negative (0859870) 660c43e99fdSEd Maste o Make sample/hello_world work on windows (d89fdba) 661c43e99fdSEd Maste o Fix a deadlock related to event-base notification. Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2) 662c43e99fdSEd Maste o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie) 663c43e99fdSEd Maste o Don't race when calling event_active/event_add on a running signal event (fc5e0a2) 664c43e99fdSEd Maste o Suppress a spurious EPERM warning in epoll.c (e73cbde) 665c43e99fdSEd Maste o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks) 666c43e99fdSEd Maste o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie) 667c43e99fdSEd Maste o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye) 668c43e99fdSEd Maste o Fix rate-limit calculation on openssl bufferevents. (009f300) 669c43e99fdSEd Maste o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis) 670c43e99fdSEd Maste 671c43e99fdSEd MasteBUILD AND DISTRIBUTION CHANGES 672c43e99fdSEd Maste o Test the unlocked-deferred callback case of bufferevents (dfb75ab) 673c43e99fdSEd Maste o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc) 674c43e99fdSEd Maste o Use -Wlogical-op on gcc 4.5 or higher (d14bb92) 675c43e99fdSEd Maste o Add the libtool-generated /m4/* stuff to .gitignore (c21c663) 676c43e99fdSEd Maste o Remove some automake-generated files from version control. (9b14911) 677c43e99fdSEd Maste o Have autogen.sh pass --force-missing to automake (8a44062) 678c43e99fdSEd Maste o Set library version for libevent_pthreads correctly (b2d7440) 679c43e99fdSEd Maste o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn) 680c43e99fdSEd Maste o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71) 681c43e99fdSEd Maste o Fix unit tests with -DUSE_DEBUG enabled (28f31a4) 682c43e99fdSEd Maste o Fix evdns build with -DUNICODE (5fa30d2) 683c43e99fdSEd Maste o Move event-config.h to include/event2 (ec347b9) 684c43e99fdSEd Maste 685c43e99fdSEd MasteTESTING 686c43e99fdSEd Maste o Add options to test-ratelim.c to check its results (2b44dcc) 687c43e99fdSEd Maste o Make test-ratelim clean up after itself better. (b5bfc44) 688c43e99fdSEd Maste o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7) 689c43e99fdSEd Maste o Remove all non-error prints from test/regress.c (8bc1e3d) 690c43e99fdSEd Maste o Make test.sh exit with nonzero status if tests fail (faf2a04) 691c43e99fdSEd Maste o Have the unit tests report errors from test.sh (3689bd2) 692c43e99fdSEd Maste o Fix logic in correcting high values from FIONREAD (3467f2f) 693c43e99fdSEd Maste o Add test for behavior on remote socket close (44d57ee) 694c43e99fdSEd Maste o Unit test for event_get_struct_event_size() (7510aac) 695c43e99fdSEd Maste o Make test/test.sh call test-changelist (7c92691) 696c43e99fdSEd Maste o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch) 697c43e99fdSEd Maste o Add option to test-ratelim to test min_share (42f6b62) 698c43e99fdSEd Maste o Fix an assertion bug in test-ratelim (b2c6202) 699c43e99fdSEd Maste o Make tests quieter on local dns resolver failure (e996b3d) 700c43e99fdSEd Maste o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2) 701c43e99fdSEd Maste o Use AF_INET socketpair to test sendfile on Solaris (9b60209) 702c43e99fdSEd Maste o Make test-changelist count cpu usage right on win32 (ea1ea3d) 703c43e99fdSEd Maste 704c43e99fdSEd MasteINTERNALS, PERFORMANCE, AND CODE CLEANUPS 705c43e99fdSEd Maste o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed) 706c43e99fdSEd Maste o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3) 707c43e99fdSEd Maste o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4) 708c43e99fdSEd Maste o Remove some dead assignments (47c5dfb) 709c43e99fdSEd Maste o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee) 710c43e99fdSEd Maste o Drain th_notify_fd[0] more bytes at a time. (a5bc15b) 711c43e99fdSEd Maste o Tidy up the code in evthread_make_base_notifiable a little (61e1eee) 712c43e99fdSEd Maste o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1) 713c43e99fdSEd Maste o Remove unused variables in test/test-changelist.c (b00d4c0) 714c43e99fdSEd Maste o Fix whitespace. (cb927a5) 715c43e99fdSEd Maste o Improve error message for failed epoll to make debugging easier. (9e725f7) 716c43e99fdSEd Maste o Turn our socketpair() replacement into its own function (57b30cd) 717c43e99fdSEd Maste 718c43e99fdSEd Maste 719c43e99fdSEd Maste 720c43e99fdSEd MasteChanges in 2.0.5-beta (10 May 2010): 721c43e99fdSEd Maste [Autogenerated from the Git log, sorted by hand.] 722c43e99fdSEd MasteDOCUMENTATION 723c43e99fdSEd Maste o Update all our copyright notices to say "2010" (17efc1c) 724c43e99fdSEd Maste o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57) 725c43e99fdSEd Maste o Clarify Christopher Clark's status as writer of original ht code. (78772c3) 726c43e99fdSEd Maste o Try to comment some of the event code more (cdd4c49) 727c43e99fdSEd Maste o Add a few more evmap/changelist comments (c247adc) 728c43e99fdSEd Maste o Add a comment to explain why evdns_request is now separte from request (ceefbe8) 729c43e99fdSEd Maste o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a) 730c43e99fdSEd Maste o Stop distributing and installing manpages: they were too inaccurate (7731ec8) 731c43e99fdSEd Maste 732c43e99fdSEd MasteNEW FEATURES AND INTERFACE CHANGES 733c43e99fdSEd Maste o Remove signal_assign() and signal_new() macros. (2fac0f7) 734c43e99fdSEd Maste o Make evdns use the regular logging system by default (b2f2be6) 735c43e99fdSEd Maste o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3) 736c43e99fdSEd Maste o Functions to manipulate existing rate limiting groups. (ee41aca) 737c43e99fdSEd Maste o Functions to track the total bytes sent over a rate limit group. (fb366c1) 738c43e99fdSEd Maste o Detect and refuse reentrant event_base_loop() calls (b557b17) 739c43e99fdSEd Maste o Limit the maximum number of events on each socket to 65535 (819f949) 740c43e99fdSEd Maste o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c) 741c43e99fdSEd Maste o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen) 742c43e99fdSEd Maste o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen) 743c43e99fdSEd Maste o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb) 744c43e99fdSEd Maste o Make evutil_secure_rng_init() work even with builtin arc4random (f980716) 745c43e99fdSEd Maste o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis) 746c43e99fdSEd Maste 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) 747c43e99fdSEd Maste o Catch attempts to enable debug_mode too late (9ecf0d4) 748c43e99fdSEd Maste o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis) 749c43e99fdSEd Maste 750c43e99fdSEd MasteBUGFIXES 751c43e99fdSEd Maste o Avoid a spurious close(-1) on Linux (70a44b6) 752c43e99fdSEd Maste o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3) 753c43e99fdSEd Maste o Free evdns_base->req_heads on evdns_base_free (859af67) 754c43e99fdSEd Maste o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431) 755c43e99fdSEd Maste o Set mem_offset for every bufferevent type (657d1b6) 756c43e99fdSEd Maste o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich) 757c43e99fdSEd Maste o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith) 758c43e99fdSEd Maste o Fix minheap code to use replacement malloc functions (a527618) 759c43e99fdSEd Maste o Fix a free(NULL) in minheap-internal.h (6f20492) 760c43e99fdSEd Maste o Fix critical bug in evbuffer_write when writev is not available (cda56ab) 761c43e99fdSEd Maste o Make the no_iovecs case of write_atmost compile (8e227b0) 762c43e99fdSEd Maste o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3) 763c43e99fdSEd Maste o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis) 764c43e99fdSEd Maste o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis) 765c43e99fdSEd Maste o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano) 766c43e99fdSEd Maste 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) 767c43e99fdSEd Maste o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis) 768c43e99fdSEd Maste o Assert for valid requests as necessary. (67072f3 Christopher Davis) 769c43e99fdSEd Maste o do not leak the request object on persistent connections (9d8edf2) 770c43e99fdSEd Maste o Make evdns logging threadsafe (b1c7950) 771c43e99fdSEd Maste o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7) 772c43e99fdSEd Maste o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a) 773c43e99fdSEd Maste o fix a leak when unpausing evrpc requests (94ee125) 774c43e99fdSEd Maste o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2) 775c43e99fdSEd Maste o Fix compilation when openssl support is disabled (40c301b) 776c43e99fdSEd Maste o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf) 777c43e99fdSEd Maste o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn) 778c43e99fdSEd Maste o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis) 779c43e99fdSEd Maste o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29) 780c43e99fdSEd Maste o Fix symbol conflict between mm_*() macros and libmm (99e50e9) 781c43e99fdSEd Maste o Fix some crazy macro mistakes in arc4random.c (90d4225) 782c43e99fdSEd Maste o Make evbuffer_add_file() work on windows (dcdae6b) 783c43e99fdSEd Maste o Fix unused-variable warning when building with threads disabled (ad811cd) 784c43e99fdSEd Maste o Numerous opensolaris compilation fixes (c44de06) 785c43e99fdSEd Maste o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28) 786c43e99fdSEd Maste o Fix another nasty solaris getaddrinfo() behavior (3557071) 787c43e99fdSEd Maste o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a) 788c43e99fdSEd Maste o Fix some autoconf issues on OpenBSD (7c519df) 789c43e99fdSEd Maste 790c43e99fdSEd MasteBUILD AND DISTRIBUTION CHANGES 791c43e99fdSEd Maste o Distribute libevent.pc.in, not libevent.pc (22aff04) 792c43e99fdSEd Maste o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield) 793c43e99fdSEd Maste o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield) 794c43e99fdSEd Maste o Support the standard 'make check' target in place of 'make verify' (426c8fb) 795c43e99fdSEd Maste o Remove redundant stuff from EXTRA_DIST (b660edf) 796c43e99fdSEd Maste o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5) 797c43e99fdSEd Maste o Remove an orphaned RELEASE flag in Makefile.am (0794b0d) 798c43e99fdSEd Maste o Give a better warning for bad automake versions. (77c917d) 799c43e99fdSEd Maste o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7) 800c43e99fdSEd Maste o Never test for select() on windows (3eb044d Trond Norbye) 801c43e99fdSEd Maste o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano) 802c43e99fdSEd Maste o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano) 803c43e99fdSEd Maste o Add ctags/etags files to .gitignore (0861d17) 804c43e99fdSEd Maste o Only specify -no-undefined on mingw (25433b9) 805c43e99fdSEd Maste o Only add libevent_core.la to LIBADD on mingw (fdc6297) 806c43e99fdSEd Maste 807c43e99fdSEd MasteTESTING 808c43e99fdSEd Maste o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis) 809c43e99fdSEd Maste o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis) 810c43e99fdSEd Maste o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3) 811c43e99fdSEd Maste o Fix a write of uninitialized RAM in regression tests (68dc742) 812c43e99fdSEd Maste o Fix some memory leaks in the unit tests (274a7bd) 813c43e99fdSEd Maste o Make 'main/many_events' test 70 fds, not 64. (33874b0) 814c43e99fdSEd Maste o Unit-test every evbuffer_add_file() implementation. (06a4443) 815c43e99fdSEd Maste o Add more unit tests for evbuffer_expand (8c83e99) 816c43e99fdSEd Maste o Test another case of evbuffer_prepend (1234b95) 817c43e99fdSEd Maste 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) 818c43e99fdSEd Maste o Make http_base_test stop leaking an event_base. (96730d3) 819c43e99fdSEd Maste o Detect broken unsetenv at unit-test runtime (f37cd4c) 820c43e99fdSEd Maste o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1) 821c43e99fdSEd Maste o add more (currently skipped) add_file tests on win32 (05de45d) 822c43e99fdSEd Maste o Fix bench_http build on win32. (384d124) 823c43e99fdSEd Maste o Make unit test for add_file able to tell "error" from "done" (88a543f) 824c43e99fdSEd Maste o Make test for bufferevent_connect_hostname system-neutral (f89168e) 825c43e99fdSEd Maste o Make test.sh support mingw/msys on win32 (0ee6f6c) 826c43e99fdSEd Maste o Fix test.sh on freebsd (3d9e05b) 827c43e99fdSEd Maste 828c43e99fdSEd MasteINTERNALS, PERFORMANCE, AND AND CODE CLEANUPS 829c43e99fdSEd Maste o Improve the speed of evbuffer_readln() (cc1600a) 830c43e99fdSEd Maste o more whitespace normalization (2c2618d) 831c43e99fdSEd Maste o Revise evbuffer to add last_with_data (2a6d2a1) 832c43e99fdSEd Maste o Use last_with_data in place of previous_to_last (c8ac57f) 833c43e99fdSEd Maste o Remove previous_to_last from evbuffer (6f47bd1) 834c43e99fdSEd Maste o Fix last_with_data compilation on windows (1e7b986) 835c43e99fdSEd Maste o Add some glass-box tests for the last_with_data code. (17da042) 836c43e99fdSEd Maste o Improve robustness for refcounting (f1bc125) 837c43e99fdSEd Maste o Remove a needless min_heap_shift_up_() call (7204b91) 838c43e99fdSEd Maste o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4) 839c43e99fdSEd Maste o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3) 840c43e99fdSEd Maste o Make evbuffer_prepend handle empty buffers better (c87272b) 841c43e99fdSEd Maste o Replace last_with_data with a slightly smarter version (b7442f8) 842c43e99fdSEd Maste o Turn the increasingly complex *_CHAIN() macros into functions (96865c4) 843c43e99fdSEd Maste o Rewrite evbuffer_expand and its users (d5ebcf3) 844c43e99fdSEd Maste o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis) 845c43e99fdSEd Maste o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6) 846c43e99fdSEd Maste o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg) 847c43e99fdSEd Maste o Move domain search state to evdns_request. (beaa14a Christopher Davis) 848c43e99fdSEd Maste o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f) 849c43e99fdSEd Maste o Rename current_base symbol to event_global_current_base_ (c16e684) 850c43e99fdSEd Maste o Fix whitespace in evutil.c (935e150) 851c43e99fdSEd Maste o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0) 852c43e99fdSEd Maste 853c43e99fdSEd Maste 854c43e99fdSEd Maste 855c43e99fdSEd MasteChanges in 2.0.4-alpha (28 Feb 2010): 856c43e99fdSEd Maste [Autogenerated from the Git log, sorted by hand.] 857c43e99fdSEd MasteDOCUMENTATION 858c43e99fdSEd Maste o Add stub header for 2.0.4-alpha changelog. (94d0065) 859c43e99fdSEd Maste o Improve the README with more information and links. (0b42726) 860c43e99fdSEd Maste o Add more people who wrote patches to the acknowledgments (0af10d5) 861c43e99fdSEd Maste o Add a warning about the use of event_initialized. (f32b575) 862c43e99fdSEd Maste o Add a LICENSE file so people can find our license easily (7067006) 863c43e99fdSEd Maste o Add a new "hello world" sample program (becb9f9) 864c43e99fdSEd Maste o Clarify status of example programs (d60a1bd) 865c43e99fdSEd Maste o Update time-test.c to use event2 (f4190bf) 866c43e99fdSEd Maste o Add the arc4random.c license to the LICENSE file. (e15e1e9) 867c43e99fdSEd Maste 868c43e99fdSEd MasteNEW FEATURES AND INTERFACE CHANGES 869c43e99fdSEd Maste o Improved optional lock debugging. (0cd3bb9) 870c43e99fdSEd Maste o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd) 871c43e99fdSEd Maste o Testing code for bufferevent rate-limiting. (f0c0124) 872c43e99fdSEd Maste o Make the initial nameserver probe timeout configurable. (1e56a32) 873c43e99fdSEd Maste o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f) 874c43e99fdSEd Maste o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379) 875c43e99fdSEd Maste o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534) 876c43e99fdSEd Maste o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich) 877c43e99fdSEd Maste o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666) 878c43e99fdSEd Maste o Look at the proper /etc/hosts file on windows. (66c02c7) 879c43e99fdSEd Maste o Allow http connections to use evdns for hostname looksups. (c698b77) 880c43e99fdSEd Maste o Changelist code to defer event changes until just before dispatch (27308aa) 881c43e99fdSEd Maste 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) 882c43e99fdSEd Maste o Functions to access more fields of struct event. (0683950) 883c43e99fdSEd Maste o Make kqueue use changelists. (45e5ae3) 884c43e99fdSEd Maste o Remove kqueue->pend_changes. (3225dfb) 885c43e99fdSEd Maste o Minimize epoll_ctl calls by using changelist (c8c6a89) 886c43e99fdSEd Maste o Add support for a "debug mode" to try to catch common errors. (cd17c3a) 887c43e99fdSEd Maste o Note a missing ratelim function (361da8f) 888c43e99fdSEd Maste o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81) 889c43e99fdSEd Maste o const-ify a few more functions in event.h (d38a7a1) 890c43e99fdSEd Maste o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694) 891c43e99fdSEd Maste o Remove EVUTIL_CHECK_FMT. (6c21c89) 892c43e99fdSEd Maste 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) 893c43e99fdSEd Maste o Add the rest of the integer limits, and add a test for them. (60742d5) 894c43e99fdSEd Maste o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d) 895c43e99fdSEd Maste o Add an arc4random implementation for use by evdns (d4de062) 896c43e99fdSEd Maste o Use off_t for the length parameter of evbuffer_add_file (3fe60fd) 897c43e99fdSEd Maste o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b) 898c43e99fdSEd Maste o Expose view of current rate limit as constrained by group limit (162ce8a) 899c43e99fdSEd Maste o Provide consistent, tested semantics for bufferevent timeouts (d328829) 900c43e99fdSEd Maste 901c43e99fdSEd MasteBUGFIXES AND TESTS 902c43e99fdSEd Maste o Tolerate code that returns from a fatal_cb. (91fe23f) 903c43e99fdSEd Maste o Parenthesize macro arguments more aggressively (07e9e9b) 904c43e99fdSEd Maste o Fix memory-leak of signal handler array with kqueue. (e1ffbb8) 905c43e99fdSEd Maste o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7) 906c43e99fdSEd Maste o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838) 907c43e99fdSEd Maste o Fix a locking bug in event_base_loop() (da1718b) 908c43e99fdSEd Maste o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao) 909c43e99fdSEd Maste o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern) 910c43e99fdSEd Maste o Fix up evthread compilation on windows (bd6f1ba Roman Puls) 911c43e99fdSEd Maste o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown) 912c43e99fdSEd Maste o Update nmake makefile to build evthread.c (b62d979 unknown) 913c43e99fdSEd Maste o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko) 914c43e99fdSEd Maste o Fix a snow leopard compile warning in the unit tests. (7ae9445) 915c43e99fdSEd Maste o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn) 916c43e99fdSEd Maste o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch) 917c43e99fdSEd Maste o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones) 918c43e99fdSEd Maste o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch) 919c43e99fdSEd Maste o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch) 920c43e99fdSEd Maste o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527) 921c43e99fdSEd Maste o Set all instances of the version number correctly. (5a112d3) 922c43e99fdSEd Maste o Fix a few locking issues on windows. (c51bb3c unknown) 923c43e99fdSEd Maste o Use evutil_socket_t, not int, when logging socket errors. (292467c) 924c43e99fdSEd Maste o Fix up behavior of never-defered callbacks a little (390e056) 925c43e99fdSEd Maste o Replace some cases of uint32_t with ev_uint32_t. (a47d88d) 926c43e99fdSEd Maste o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen) 927c43e99fdSEd Maste o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich) 928c43e99fdSEd Maste o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich) 929c43e99fdSEd Maste o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich) 930c43e99fdSEd Maste o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich) 931c43e99fdSEd Maste o Fix the code that allowed DNS options to not end with : (ee4953f) 932c43e99fdSEd Maste o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea) 933c43e99fdSEd Maste o Fix test-ratelim compilation on Linux. (885b427) 934c43e99fdSEd Maste o Fix compilation of rate-limiting code on win32. (165d30e) 935c43e99fdSEd Maste o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich) 936c43e99fdSEd Maste o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6) 937c43e99fdSEd Maste 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) 938c43e99fdSEd Maste o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich) 939c43e99fdSEd Maste 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) 940c43e99fdSEd Maste o Don't use a bind address for nameservers on loopback (8d4aaf9) 941c43e99fdSEd Maste o Fix compilation of rate-limit code when threading support is disabled (97a8c79) 942c43e99fdSEd Maste o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971) 943c43e99fdSEd Maste o Check more internal event_add() calls for failure (ff3f6cd) 944c43e99fdSEd Maste o Fix windows and msvc build (5c7a7bc) 945c43e99fdSEd Maste o Call event_debug_unassign on internal events (a19b4a0) 946c43e99fdSEd Maste o Try to fix a warning in hash_debug_entry (137f2c6) 947c43e99fdSEd Maste o Fix a dumb typo in ev_intptr_t definitions. (27c9a40) 948c43e99fdSEd Maste o do not fail while sending on http connections the client closed. (93d7369) 949c43e99fdSEd Maste o make evhttp_send() safe against terminated connections, too (3978180) 950c43e99fdSEd Maste o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield) 951c43e99fdSEd Maste o Fix some additional -DUNICODE issues on win32. (a7a9431) 952c43e99fdSEd Maste o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e) 953c43e99fdSEd Maste o Always use our own gai_strerror() replacement. (6810bdb) 954c43e99fdSEd Maste o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea) 955c43e99fdSEd Maste o validate close cb on server when client connection closes (2f782af) 956c43e99fdSEd Maste o Fix two unlocked reads in evbuffer. (7116bf2) 957c43e99fdSEd Maste o When working without a current event base, don't try to use IOCP listeners (cb52838) 958c43e99fdSEd Maste o Fix getpid() usage on Windows (ff2a134) 959c43e99fdSEd Maste o Add a unit test for secure rng. (48a29b6) 960c43e99fdSEd Maste o Add some headers to fix freebsd compilation (b72be50) 961c43e99fdSEd Maste o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9) 962c43e99fdSEd Maste o Suspend read/write on bufferevents during hostname lookup (db08f64) 963c43e99fdSEd Maste o Make bufferevent_free() clear all callbacks immediately. (b2fbeb3) 964c43e99fdSEd Maste o Fix some race conditions in persistent events and event_reinit (e2642f0) 965c43e99fdSEd Maste o Fix a bug in resetting timeouts on persistent events when IO triggers. (38ec0a7) 966c43e99fdSEd Maste o Add a test for timeouts on filtering bufferevents. (c02bfe1) 967c43e99fdSEd Maste o Add test for periodic timers that get activated for other reasons (8fcb7a1) 968c43e99fdSEd Maste o Use new timeval diff comparison function in bufferevent test (f3dfe46) 969c43e99fdSEd Maste o Delete stack-alloced event in new unit test before returning. (7ffd387) 970c43e99fdSEd Maste o Fix mingw compilation (23170a6) 971c43e99fdSEd Maste o Try to define a sane _EVENT_SIZEOF_SIZE_T for msvc compilation (1e14f82) 972c43e99fdSEd Maste o Fix arc4random compilation on MSVC. (98edb89) 973c43e99fdSEd Maste o deal with connect() failing immediately (7bc48bf) 974c43e99fdSEd Maste o Small cleanups on freebsd-connect-refused patch. (57b7248) 975c43e99fdSEd Maste 976c43e99fdSEd MasteBUILD AND DISTRIBUTION CHANGES 977c43e99fdSEd Maste o Remove the contents of WIN32-Prj as unmaintained. (c69d5a5) 978c43e99fdSEd Maste o Allow the user to redirect the verbose output of test/test.sh to a file (c382de6) 979c43e99fdSEd Maste o Allow test.sh to be run as ./test/test.sh (7dfbe94) 980c43e99fdSEd Maste o Never believe that we have pthreads on win32, even if gcc thinks we do. (78ed097) 981c43e99fdSEd Maste o Make it compile under gcc --std=c89. (e2ca403) 982c43e99fdSEd Maste o Fix a number of warnings from gcc -pedantic (918e9c5) 983c43e99fdSEd Maste o Add the msvc-generated .lib files to .gitignore. (e244a2e) 984c43e99fdSEd Maste o Add the "compile" script to gitignore. (1ba6bed) 985c43e99fdSEd Maste 986c43e99fdSEd MasteINTERNALS AND CODE CLEANUPS 987c43e99fdSEd Maste o Add a .gitignore file. (ba34071) 988c43e99fdSEd Maste o New EVTHREAD_TRY_LOCK function to try to grab a lock. (689fc09) 989c43e99fdSEd Maste o Add the abilitity to mark some buffer callbacks as never-deferred. (438f9ed) 990c43e99fdSEd Maste o Refactor our 'suspend operation' logic on bufferevents. (0d744aa) 991c43e99fdSEd Maste o Simplify the read high-watermark checking. (5846bf6) 992c43e99fdSEd Maste o Improve readability of evutil_unparse_protoname() (5a43df8 Jardel Weyrich) 993c43e99fdSEd Maste o Expose our cached gettimeofday value with a new interface (47854a8) 994c43e99fdSEd Maste o Whitespace fixes in test.sh (0b151a9) 995c43e99fdSEd Maste o Enable branch-prediction hints with EVUTIL_UNLIKELY. (eaaf27f) 996c43e99fdSEd Maste o Refactor code from evdns into a new internal "read a file" function. (0f7144f) 997c43e99fdSEd Maste o Comestic changes in evconnlistener_new(), new_accepting_socket(), accepted_socket_invoke_user_cb() and iocp_listener_enable(). (510ab6b Jardel Weyrich) 998c43e99fdSEd Maste 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) 999c43e99fdSEd Maste o Fix test.sh on shells without echo -n (94131e9) 1000c43e99fdSEd Maste o More unit tests for getaddrinfo_async: v4timeout and cancel. (a334b31) 1001c43e99fdSEd Maste o Make http use evconnlistener. (ec34533) 1002c43e99fdSEd Maste o move dns utility functions into a separate file so that we can use them for http testing (b822639) 1003c43e99fdSEd Maste o add a test for evhttp_connection_base_new with a dns_base (26714ca) 1004c43e99fdSEd Maste o forgot to add void to test function (78a50fe) 1005c43e99fdSEd Maste o Add a forgotten header (changelist-internal.h) (4b9f307) 1006c43e99fdSEd Maste o Remove some commented-out code in evutil (26e1b6f) 1007c43e99fdSEd Maste o Remove a needless include of rpc_compat.h (70a4a3e) 1008c43e99fdSEd Maste o Use less memory for each entry in a hashtable (a66e947) 1009c43e99fdSEd Maste o Try to untangle the logic in server_port_flush(). (439aea0) 1010c43e99fdSEd Maste o Use ev_[u]intptr_t types in place of [u]intptr_t (cef61a2) 1011c43e99fdSEd Maste o Reduce windows header includes in our own headers. (da6135e) 1012c43e99fdSEd Maste o clean up terminate_chunked test (e8a9782) 1013c43e99fdSEd Maste o Increment the submicro version number. (63e868e) 1014c43e99fdSEd Maste o Update event-config.h version number to match configure.in (aae7db5) 1015c43e99fdSEd Maste o Clean up formatting: Disallow space-before-tab. (8fdf09c) 1016c43e99fdSEd Maste o Clean up formatting: use tabs, not 8-spaces, to indent. (e5bbd40) 1017c43e99fdSEd Maste o Clean up formatting: remove trailing spaces (e5cf987) 1018c43e99fdSEd Maste o Clean up formatting: function/keyword spacing consistency. (4faeaea) 1019c43e99fdSEd Maste 1020c43e99fdSEd Maste 1021c43e99fdSEd Maste 1022c43e99fdSEd MasteChanges in 2.0.3-alpha (20 Nov 2009): 1023c43e99fdSEd Maste o Add a new code to support SSL/TLS on bufferevents, using the OpenSSL library (where available). 1024c43e99fdSEd Maste o Fix a bug where we didn't allocate enough memory in event_get_supported_methods(). 1025c43e99fdSEd Maste o Avoid segfault during failed allocation of locked evdns_base. (Found by Rocco Carbone.) 1026c43e99fdSEd Maste o Export new evutil_ascii_* functions to perform locale-independent character type operations. 1027c43e99fdSEd Maste o Try to compile better with MSVC: patches from Brodie Thiesfield 1028c43e99fdSEd Maste o New evconnlistener_get_fd function to expose a listener's associated socket. 1029c43e99fdSEd Maste o Expose an ev_socklen_t type for consistent use across platforms. 1030c43e99fdSEd Maste o Make bufferevent_socket_connect() work when the original fd was -1. 1031c43e99fdSEd Maste o Fix a bug in bufferevent_socket_connect() when the connection succeeds too quickly. 1032c43e99fdSEd Maste o Export an evutil_sockaddr_cmp() to compare to sockaddr objects for equality. 1033c43e99fdSEd Maste o Add a bufferevent_get_enabled() to tell what a bufferevent has been configured to do. 1034c43e99fdSEd Maste o Add an evbuffer_search_eol() function to locate the end of a line nondestructively. 1035c43e99fdSEd Maste o Add an evbuffer_search_range() function to search a bounded range of a buffer. 1036c43e99fdSEd Maste o Fix a rare crash bug in evdns. 1037c43e99fdSEd Maste o Have bufferevent_socket_connect() with no arguments put a bufferevent into connecting mode. 1038c43e99fdSEd Maste o Support sendfile on Solaris: patch from Caitlin Mercer. 1039c43e99fdSEd Maste o New functions to explicitly reference a socket used by an evhttp object. Patches from David Reiss. 1040c43e99fdSEd Maste 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. 1041c43e99fdSEd Maste 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. 1042c43e99fdSEd Maste 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. 1043c43e99fdSEd Maste 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. 1044c43e99fdSEd Maste 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. 1045c43e99fdSEd Maste o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h 1046c43e99fdSEd Maste o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec 1047c43e99fdSEd Maste 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. 1048c43e99fdSEd Maste 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. 1049c43e99fdSEd Maste o Fix some bugs when using the old evdns interfaces to initialize the evdns module. 1050c43e99fdSEd Maste o Detect errors during bufferevent_connect(). Patch from Christopher Davis. 1051c43e99fdSEd Maste o Fix compilation for listener.h for C++ - missing extern "C". Patch from Ferenc Szalai. 1052c43e99fdSEd Maste o Make the event_base_loop() family of functions respect thread-safety better. This should clear up a few hard-to-debug race conditions. 1053c43e99fdSEd Maste o Fix a bug when using a specialized memory allocator on win32. 1054c43e99fdSEd Maste 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. 1055c43e99fdSEd Maste 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. 1056c43e99fdSEd Maste o Add an API to replace all fatal calls to exit() with a user-provided panic function. 1057c43e99fdSEd Maste o Replace all assert() calls with a variant that is aware of the user-provided logging and panic functions. 1058c43e99fdSEd Maste 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. 1059c43e99fdSEd Maste 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. 1060c43e99fdSEd Maste 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. 1061c43e99fdSEd Maste o Add a new bufferevent_socket_connect_hostname() to encapsulate the resolve-then-connect operation. 1062c43e99fdSEd Maste o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian. 1063c43e99fdSEd Maste o Alternative queue-based timeout algorithm for programs that use a large number of timeouts with the same value. 1064c43e99fdSEd Maste o New event_base_config option to disable the timeval cache entirely. 1065c43e99fdSEd Maste 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. 1066c43e99fdSEd Maste o Allow http.c to handle cases where getaddrinfo returns an IPv6 address. Patch from Ryan Phillips. 1067c43e99fdSEd Maste o Fix a problem with excessive memory allocation when using multiple event priorities. 1068c43e99fdSEd Maste o Default to using arc4random for DNS transaction IDs on systems that have it; from OpenBSD. 1069c43e99fdSEd Maste o Never check the environment when we're running setuid or setgid; from OpenBSD. 1070c43e99fdSEd Maste o Options passed to evdns_set_option() no longer need to end with a colon. 1071c43e99fdSEd Maste o Add an evutil_getaddrinfo() function to clone getaddrinfo on platforms that don't have it. 1072c43e99fdSEd Maste o Add an evdns_getaddrinfo() function to provide a nonblocking getaddrinfo using evdns, so programs can perform useful hostname lookup. 1073c43e99fdSEd Maste 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. 1074c43e99fdSEd Maste o Numerous other bugfixes. 1075c43e99fdSEd Maste o On FreeBSD and other OSes, connect can return ECONREFUSED immediately; instead of failing the function call, pretend with faileld in the callback. 1076c43e99fdSEd Maste o Fix a race condition in the pthreads test case; found by Nick Mathewson 1077c43e99fdSEd Maste o Remove most calls to event_err() in http and deal with memory errors instead 1078c43e99fdSEd Maste 1079c43e99fdSEd Maste 1080c43e99fdSEd Maste 1081c43e99fdSEd MasteChanges in 2.0.2-alpha (25 Jul 2009): 1082c43e99fdSEd Maste o Add a new flag to bufferevents to make all callbacks automatically deferred. 1083c43e99fdSEd Maste o Make evdns functionality locked, and automatically defer dns callbacks. 1084c43e99fdSEd Maste o Fix a possible free(NULL) when freeing an event_base with no signals. 1085c43e99fdSEd Maste o Add a flag to disable checking environment varibles when making an event_base 1086c43e99fdSEd Maste o Disallow setting less than 1 priority. 1087c43e99fdSEd Maste o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen] 1088c43e99fdSEd Maste o Use signal.h, not sys/signal.h. [Patch from mmadia] 1089c43e99fdSEd Maste o Try harder to build with certain older c99 compilers. 1090c43e99fdSEd Maste o Make sure that an event_config's flags field is always initialized to 0. [Bug report from Victor Goya] 1091c43e99fdSEd Maste o Avoid data corruption when reading data entirely into the second-to-last chain of an evbuffer. [Bug report from Victor Goya] 1092c43e99fdSEd Maste o Make sendfile work on FreeBSD 1093c43e99fdSEd Maste 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. 1094c43e99fdSEd Maste o Actually define the event_config_set_flag() function. 1095c43e99fdSEd Maste o Try harder to compile with Visual C++. 1096c43e99fdSEd Maste o Move event_set() and its allies to event2/event_compat.h where they belong. 1097c43e99fdSEd Maste o Remove the event_gotsig code, which has long been deprecated and unused. 1098c43e99fdSEd Maste o Add an event_get_base() function to return the base assigned to an event. 1099c43e99fdSEd Maste o New function to automate connecting on a socket-based bufferevent. 1100c43e99fdSEd Maste o New functions to automate listening for incoming TCP connections. 1101c43e99fdSEd Maste o Do case-insensitive checks with a locale-independent comparison function. 1102c43e99fdSEd Maste 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. 1103c43e99fdSEd Maste 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. 1104c43e99fdSEd Maste o Move the EVBUFFER_INPUT and EVBUFFER_OUTPUT macros to bufferevent_compat.h 1105c43e99fdSEd Maste o Add a bufferevent_getfd() function to mirror bufferevent_setfd() 1106c43e99fdSEd Maste o Make bufferevent_setfd() return an error code if the operation is not successful. 1107c43e99fdSEd Maste 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. 1108c43e99fdSEd Maste o Cap the maximum number of priorities at 256. 1109c43e99fdSEd Maste 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. 1110c43e99fdSEd Maste o Change the interface of evbuffer_add_reference so that the cleanup callback gets more information 1111c43e99fdSEd Maste 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. 1112c43e99fdSEd Maste o Add a new evbuffer_peek() interface to inspect data in an evbuffer without removing it. 1113c43e99fdSEd Maste o Fix a deadlock when suspending reads in a bufferevent due to a full buffer. (Spotted by Joachim Bauch.) 1114c43e99fdSEd Maste o Fix a memory error when freeing a thread-enabled event base with registered events. (Spotted by Joachim Bauch.) 1115c43e99fdSEd Maste o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair. 1116c43e99fdSEd Maste 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). 1117c43e99fdSEd Maste o Replace some read()/write() instances with send()/recv() to work properly on win32. 1118c43e99fdSEd Maste o Set truncated flag correctly in evdns server replies. 1119c43e99fdSEd Maste o Raise RpcGenError in event_rpcgen.py; from jmanison and Zack Weinberg 1120c43e99fdSEd Maste o Fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg. 1121c43e99fdSEd Maste o Allow specifying the output filename for rpcgen; based on work by jmansion; patch from Zack Weinberg. 1122c43e99fdSEd Maste o Allow C identifiers as struct names; allow multiple comments in .rpc files; from Zack Weinberg 1123c43e99fdSEd Maste o Mitigate a race condition when using socket bufferevents in multiple threads. 1124c43e99fdSEd Maste o Use AC_SEARCH_LIBS, not AC_CHECK_LIB to avoid needless library use. 1125c43e99fdSEd Maste 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. 1126c43e99fdSEd Maste o event_get_supported_methods() now lists methods that have been disabled with the EVENT_NO* environment options. 1127c43e99fdSEd Maste 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. 1128c43e99fdSEd Maste 1129c43e99fdSEd Maste 1130c43e99fdSEd Maste 1131c43e99fdSEd MasteChanges in 2.0.1-alpha (17 Apr 2009): 1132c43e99fdSEd Maste o free minheap on event_base_free(); from Christopher Layne 1133c43e99fdSEd Maste o debug cleanups in signal.c; from Christopher Layne 1134c43e99fdSEd Maste o provide event_base_new() that does not set the current_base global 1135c43e99fdSEd Maste o bufferevent_write now uses a const source argument; report from Charles Kerr 1136c43e99fdSEd Maste o improve documentation on event_base_loopexit; patch from Scott Lamb 1137c43e99fdSEd Maste 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 1138c43e99fdSEd Maste o Check return value of event_add in signal.c 1139c43e99fdSEd Maste o provide event_reinit() to reintialize an event_base after fork 1140c43e99fdSEd Maste 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. 1141c43e99fdSEd Maste 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. 1142c43e99fdSEd Maste o The kqueue implementation now restores original signal handlers correctly when its signal events are removed. 1143c43e99fdSEd Maste o Check return value of event_add in signal.c 1144c43e99fdSEd Maste 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. 1145c43e99fdSEd Maste o Do not mangle socket handles on 64-bit windows. 1146*b50261e2SCy 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.) 1147c43e99fdSEd Maste o move EV_PERSIST handling out of the event backends 1148c43e99fdSEd Maste o small improvements to evhttp documentation 1149c43e99fdSEd Maste o always generate Date and Content-Length headers for HTTP/1.1 replies 1150c43e99fdSEd Maste o set the correct event base for HTTP close events 1151c43e99fdSEd Maste o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions. 1152c43e99fdSEd Maste o Rewrite win32.c backend to be O(n lg n) rather than O(n^2). 1153c43e99fdSEd Maste o Removed obsoleted recalc code 1154c43e99fdSEd Maste o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly. 1155c43e99fdSEd Maste 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. 1156c43e99fdSEd Maste o prefix {encode,decode}_tag functions with evtag to avoid collisions 1157c43e99fdSEd Maste o fix a bug with event_rpcgen for integers 1158c43e99fdSEd Maste o Correctly handle DNS replies with no answers set (Fixes bug 1846282) 1159c43e99fdSEd Maste o add -Wstrict-aliasing to warnings and more cleanup 1160c43e99fdSEd Maste o removed linger from http server socket; reported by Ilya Martynov 1161c43e99fdSEd Maste o event_rpcgen now allows creating integer arrays 1162c43e99fdSEd Maste o support string arrays in event_rpcgen 1163c43e99fdSEd Maste 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. 1164c43e99fdSEd Maste o allow an http request callback to take ownership of a request structure 1165c43e99fdSEd Maste o allow association of meta data with RPC requests for hook processing 1166c43e99fdSEd Maste o associate more context for hooks to query such as the connection object 1167c43e99fdSEd Maste o remove pending timeouts on event_base_free() 1168c43e99fdSEd Maste o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards 1169c43e99fdSEd Maste o devpoll and evport need reinit; tested by W.C.A Wijngaards 1170c43e99fdSEd Maste o event_base_get_method; from Springande Ulv 1171c43e99fdSEd Maste o Send CRLF after each chunk in HTTP output, for compliance with RFC2626. Patch from "propanbutan". Fixes bug 1894184. 1172c43e99fdSEd Maste o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values. 1173c43e99fdSEd Maste o Use a 64-bit field to hold HTTP content-lengths. Patch from Scott Lamb. 1174c43e99fdSEd Maste o Allow regression code to build even without Python installed 1175c43e99fdSEd Maste o remove NDEBUG ifdefs from evdns.c 1176c43e99fdSEd Maste o detect integer types properly on platforms without stdint.h 1177c43e99fdSEd Maste o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa. 1178c43e99fdSEd Maste o simplify evbuffer by removing orig_buffer 1179c43e99fdSEd Maste o do not insert event into list when evsel->add fails 1180c43e99fdSEd Maste o add support for PUT/DELETE requests; from Josh Rotenberg 1181c43e99fdSEd Maste o introduce evhttp_accept_socket() to accept from an already created socket 1182c43e99fdSEd Maste o include Content-Length in reply for HTTP/1.0 requests with keep-alive 1183c43e99fdSEd Maste 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. 1184c43e99fdSEd Maste o Patch from Tani Hosokawa: make some functions in http.c threadsafe. 1185c43e99fdSEd Maste o test support for PUT/DELETE requests; from Josh Rotenberg 1186c43e99fdSEd Maste o rewrite of the evbuffer code to reduce memory copies 1187c43e99fdSEd Maste o Some older Solaris versions demand that _REENTRANT be defined to get strtok_r(); do so. 1188c43e99fdSEd Maste o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin 1189c43e99fdSEd Maste o Provide OpenSSL style support for multiple threads accessing the same event_base 1190c43e99fdSEd Maste o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks. 1191c43e99fdSEd Maste o switch thread support so that locks get allocated as they are needed. 1192c43e99fdSEd Maste o make event methods static so that they are not exported; from Andrei Nigmatulin 1193c43e99fdSEd Maste o make RPC replies use application/octet-stream as mime type 1194c43e99fdSEd Maste o do not delete uninitialized timeout event in evdns 1195c43e99fdSEd Maste o Correct the documentation on buffer printf functions. 1196c43e99fdSEd Maste o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select. 1197c43e99fdSEd Maste 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. 1198c43e99fdSEd Maste o Make name_from_addr() threadsafe in http.c 1199c43e99fdSEd Maste o Add new thread-safe interfaces to evdns functions. 1200c43e99fdSEd Maste o Make all event_tagging interfaces threadsafe. 1201c43e99fdSEd Maste o Rename internal memory management functions. 1202c43e99fdSEd Maste 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. 1203c43e99fdSEd Maste o introduce bufferevent_read_buffer; allows reading without memory copy. 1204c43e99fdSEd Maste o expose bufferevent_setwatermark via header files and fix high watermark on read 1205c43e99fdSEd Maste o fix a bug in buffrevent read water marks and add a test for them 1206c43e99fdSEd Maste o fix a bug in which bufferevent_write_buffer would not schedule a write event 1207c43e99fdSEd Maste o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure 1208c43e99fdSEd Maste o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents 1209c43e99fdSEd Maste o convert evhttp_connection to use bufferevents. 1210c43e99fdSEd Maste o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy. 1211c43e99fdSEd Maste o Remove the never-exported, never-used evhttp_hostportfile function. 1212c43e99fdSEd Maste 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. 1213c43e99fdSEd Maste o allow connections to be removed from an rpc pool 1214c43e99fdSEd Maste 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 1215c43e99fdSEd Maste o switch internal uses of event_set over to use event_assign. 1216c43e99fdSEd Maste o introduce evbuffer_contiguous_space() api that tells a user how much data is available in the first buffer chain 1217c43e99fdSEd Maste o introduce evbuffer_reserve_space() and evbuffer_commit_space() to make processing in filters more efficient. 1218c43e99fdSEd Maste o reduce system calls for getting current time by caching it. 1219c43e99fdSEd Maste o separate signal events from io events; making the code less complex. 1220c43e99fdSEd Maste o support for periodic timeouts 1221c43e99fdSEd Maste o support for virtual HTTP hosts. 1222c43e99fdSEd Maste 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 1223c43e99fdSEd Maste o Build test directory correctly with CPPFLAGS set. 1224c43e99fdSEd Maste o Provide an API for retrieving the supported event mechanisms. 1225c43e99fdSEd Maste o event_base_new_with_config() and corresponding config APIs. 1226c43e99fdSEd Maste o migrate the evhttp header to event2/ but accessors are still missing. 1227c43e99fdSEd Maste o deprecate timeout_* event functions by moving them to event_compat.h 1228c43e99fdSEd Maste o Move windows gettimeofday replacement into a new evutil_gettimeofday(). 1229c43e99fdSEd Maste o Make configure script work on IRIX. 1230c43e99fdSEd Maste o provide a method for canceling ongoing http requests. 1231c43e99fdSEd Maste o Make vsnprintf() returns consistent on win32. 1232c43e99fdSEd Maste o Fix connection keep-alive behavior for HTTP/1.0 1233c43e99fdSEd Maste o Fix use of freed memory in event_reinit; pointed out by Peter Postma 1234c43e99fdSEd Maste o constify struct timeval * where possible 1235c43e99fdSEd Maste o make event_get_supported_methods obey environment variables 1236c43e99fdSEd Maste o support for edge-triggered events on epoll and kqueue backends: patch from Valery Kholodkov 1237c43e99fdSEd Maste o support for selecting event backends by their features, and for querying the features of a backend. 1238c43e99fdSEd Maste 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. 1239c43e99fdSEd Maste 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. 1240c43e99fdSEd Maste o allow min_heap_erase to be called on removed members; from liusifan. 1241c43e99fdSEd Maste o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT. Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility. 1242c43e99fdSEd Maste o Do not use SO_REUSEADDR when connecting 1243c43e99fdSEd Maste o Support 64-bit integers in RPC structs 1244c43e99fdSEd Maste o Correct handling of trailing headers in chunked replies; from Scott Lamb. 1245c43e99fdSEd Maste o Support multi-line HTTP headers; based on a patch from Moshe Litvin 1246c43e99fdSEd Maste o Reject negative Content-Length headers; anonymous bug report 1247c43e99fdSEd Maste o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report 1248c43e99fdSEd Maste o Various HTTP correctness fixes from Scott Lamb 1249c43e99fdSEd Maste o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail 1250c43e99fdSEd Maste 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. 1251c43e99fdSEd Maste o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov. 1252c43e99fdSEd Maste o Fix off-by-one errors in devpoll; from Ian Bell 1253c43e99fdSEd Maste o Make event_add not change any state if it fails; reported by Ian Bell. 1254c43e99fdSEd Maste o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. 1255c43e99fdSEd Maste o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov. 1256c43e99fdSEd Maste o Add new utility functions to correctly observe and log winsock errors. 1257c43e99fdSEd Maste o Do not remove Accept-Encoding header 1258c43e99fdSEd Maste o Clear the timer cache on entering the event loop; reported by Victor Chang 1259c43e99fdSEd Maste o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez 1260c43e99fdSEd Maste o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones. 1261c43e99fdSEd Maste o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn 1262c43e99fdSEd Maste o Fix a typo in setting the global event base; reported by lance. 1263c43e99fdSEd Maste 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. 1264c43e99fdSEd Maste o Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it. 1265c43e99fdSEd Maste 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. 1266c43e99fdSEd Maste o Add generic implementations for parsing and emiting IPv6 addresses on platforms that do not have inet_ntop and/or inet_pton. 1267c43e99fdSEd Maste o Allow DNS servers that have IPv6 addresses. 1268c43e99fdSEd Maste o Add an evbuffer_write_atmost() function to write a limited number of bytes to an fd. 1269c43e99fdSEd Maste o Refactor internal notify-main-thread logic to prefer eventfd to pipe, then pipe to socketpair, and only use socketpairs as a last resort. 1270c43e99fdSEd Maste o Try harder to pack all evbuffer reads into as few chains as possible, using readv/WSARecv as appropriate. 1271c43e99fdSEd Maste o New evthread_use_windows_threads() and evthread_use_pthreads() functions to set up the evthread callbacks with reasonable defaults. 1272c43e99fdSEd Maste o Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted. 1273c43e99fdSEd Maste o sendfile, mmap and memory reference support for evbuffers. 1274c43e99fdSEd Maste o New evutil_make_listen_socket_reuseable() to abstract SO_REUSEADDR. 1275c43e99fdSEd Maste o New bind-to option to allow DNS clients to bind to an arbitrary port for outgoing requests. 1276c43e99fdSEd Maste o evbuffers can now be "frozen" to prevent operations at one or both ends. 1277c43e99fdSEd Maste o Bufferevents now notice external attempts to add data to an inbuf or remove it from an outbuf, and stop them. 1278c43e99fdSEd Maste o Fix parsing of queries where the encoded queries contained \r, \n or + 1279c43e99fdSEd Maste o Do not allow internal events to starve lower-priority events. 1280c43e99fdSEd Maste 1281