xref: /libevent-2.1.12/ChangeLog (revision fc43cbdc)
1*fc43cbdcSNick MathewsonChanges in version 2.0.20-stable (?? Aug 2012)
2*fc43cbdcSNick MathewsonBUGFIXES:
3*fc43cbdcSNick Mathewson o core: Make event_pending() threadsafe. (be7a95c Simon Liu)
4*fc43cbdcSNick Mathewson o win32: avoid crash when waiting forever on zero fds. (160e58b)
5*fc43cbdcSNick Mathewson o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31)
6*fc43cbdcSNick Mathewson o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c)
7*fc43cbdcSNick Mathewson o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67)
8*fc43cbdcSNick Mathewson o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3)
9*fc43cbdcSNick Mathewson o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel)
10*fc43cbdcSNick Mathewson o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43)
11*fc43cbdcSNick Mathewson
12*fc43cbdcSNick Mathewson
13*fc43cbdcSNick MathewsonPORTABILITY FIXES:
14*fc43cbdcSNick Mathewson o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel)
15*fc43cbdcSNick Mathewson o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn)
16*fc43cbdcSNick Mathewson o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6)
17*fc43cbdcSNick Mathewson
18*fc43cbdcSNick MathewsonBUILD FIXES:
19*fc43cbdcSNick Mathewson o Add GCC annotations so that the vsprintf functions get checked properly (117e327)
20*fc43cbdcSNick Mathewson o Fix an unused variable warning on *BSD. (c0720c1)
21*fc43cbdcSNick Mathewson
22*fc43cbdcSNick MathewsonUNIT TEST FIXES:
23*fc43cbdcSNick Mathewson o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall)
24*fc43cbdcSNick Mathewson o Remove deadcode in http regression tests. Found by coverity. (5553346)
25*fc43cbdcSNick Mathewson o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777)
26*fc43cbdcSNick Mathewson o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d)
27*fc43cbdcSNick Mathewson o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d)
28*fc43cbdcSNick Mathewson o Fix resource leaks in the unit tests; found by coverity (270f279)
29*fc43cbdcSNick Mathewson o Add some missing null checks to unit tests; found by coverity (f021c3d)
30*fc43cbdcSNick Mathewson o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf)
31*fc43cbdcSNick Mathewson o Remove unused variable; spotted by coverity (6355b2a)
32*fc43cbdcSNick Mathewson o Add checks to various return values in unit tests. Found by coverity (b9e7329)
33*fc43cbdcSNick Mathewson o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0)
34*fc43cbdcSNick Mathewson
35faa92253SNick Mathewson
36faa92253SNick Mathewson
378a9b0cdfSNick MathewsonChanges in version 2.0.19-stable (3 May 2012)
38cecb111bSNick MathewsonBUGFIXES (CORE):
39cecb111bSNick Mathewson o Refactor event_persist_closure: raise and extract some common logic (bec22b4)
40cecb111bSNick Mathewson o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c)
41cecb111bSNick Mathewson o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40)
42cecb111bSNick Mathewson
43cecb111bSNick MathewsonBUGFIXES (SSL):
44cecb111bSNick Mathewson o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey)
45cecb111bSNick Mathewson
46cecb111bSNick MathewsonBUGFIXES (DNS):
47cecb111bSNick Mathewson o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel)
48cecb111bSNick Mathewson o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel)
49cecb111bSNick Mathewson o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a)
50cecb111bSNick Mathewson
51cecb111bSNick MathewsonDOCUMENTATION FIXES:
52cecb111bSNick Mathewson o Fix a typo in the bufferevent documentation (98e9119)
53cecb111bSNick Mathewson o Add missing ) to changelog; spotted by rransom (4c7ee6b)
54cecb111bSNick Mathewson o Fix the website URL in the readme (f775521)
55cecb111bSNick Mathewson
56cecb111bSNick MathewsonCOMPILATION FIXES:
57cecb111bSNick Mathewson o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae)
58cecb111bSNick Mathewson o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn)
59cecb111bSNick Mathewson o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg)
60cecb111bSNick Mathewson
61cecb111bSNick MathewsonFORWARD-COMPATIBILITY:
62cecb111bSNick Mathewson o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2)
63cecb111bSNick Mathewson
64cecb111bSNick MathewsonTESTING/DEBUGGING SUPPORT:
65cecb111bSNick Mathewson o dns-example.c can now take a resolv.conf file on the commandline (6610fa5)
66cecb111bSNick Mathewson o Make some evdns.c debug logs more verbose (d873d67)
67cecb111bSNick Mathewson o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd)
68cecb111bSNick Mathewson
6925a424fbSNick Mathewson
7025a424fbSNick Mathewson
7177342926SNick MathewsonChanges in version 2.0.18-stable (22 Mar 2012)
7277342926SNick MathewsonBUGFIXES (core):
7377342926SNick Mathewson o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42)
7477342926SNick Mathewson
7577342926SNick MathewsonBUGFIXES (kqueue):
7677342926SNick Mathewson o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn)
7777342926SNick Mathewson
7877342926SNick MathewsonBUILD FIXES:
7977342926SNick Mathewson o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey)
8077342926SNick Mathewson o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey)
8177342926SNick Mathewson o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn)
8277342926SNick Mathewson
8377342926SNick MathewsonBUGFIXES (dns):
8477342926SNick Mathewson o Stop crashing in evdns when nameserver probes give a weird error (bec5068)
8577342926SNick Mathewson
860c483170SNick Mathewson
870cdbd642SNick MathewsonChanges in version 2.0.17-stable (10 Feb 2012)
88edc6d7d7SNick Mathewson
89edc6d7d7SNick MathewsonBUGFIXES (core):
90edc6d7d7SNick Mathewson o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5)
91edc6d7d7SNick Mathewson o check for sysctl before we use it (358c745 Mike Frysinger)
92edc6d7d7SNick Mathewson o Remove bogus casts of socket to int before calling ev_callback (f032516)
93edc6d7d7SNick Mathewson o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720)
94edc6d7d7SNick Mathewson o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc)
95edc6d7d7SNick Mathewson o Fix a fd leak in event_reinit() (3f18ad1)
966f6cebe3SNick Mathewson o Do a memberwise comparison of threading function tables (c94a5f2 Nate R)
976f6cebe3SNick Mathewson o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill)
984c7ee6b0SNick Mathewson o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6)
990cdbd642SNick Mathewson o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott)
100edc6d7d7SNick Mathewson
101edc6d7d7SNick MathewsonBUGFIXES (evbuffer and bufferevents):
102edc6d7d7SNick Mathewson o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg)
1036f6cebe3SNick Mathewson o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812)
104edc6d7d7SNick Mathewson
105edc6d7d7SNick MathewsonBUGFIXES (evhttp):
106edc6d7d7SNick Mathewson o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea)
107edc6d7d7SNick Mathewson
1086f6cebe3SNick MathewsonBUGFIXES (evdns):
1096f6cebe3SNick Mathewson o evdns: fix a bug in circular-queue implementation (d6094b1)
1106f6cebe3SNick Mathewson
111edc6d7d7SNick MathewsonBUILD FIXES:
112edc6d7d7SNick Mathewson o Fix a silly compilation error with the sun compiler (1927776 Colin Watt)
113edc6d7d7SNick Mathewson o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c)
114edc6d7d7SNick Mathewson
115edc6d7d7SNick MathewsonDOCUMENTATION FIXES:
116edc6d7d7SNick Mathewson o Slightly clarify evbuffer_peek documentation (7bbf6ca)
1170cdbd642SNick Mathewson o Update copyright notices to 2012 (e49e289)
118edc6d7d7SNick Mathewson
119edc6d7d7SNick MathewsonNEW APIS:
120edc6d7d7SNick Mathewson o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker)
121edc6d7d7SNick Mathewson
122edc6d7d7SNick MathewsonTESTS AND TEST FIXES:
123edc6d7d7SNick Mathewson o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7)
124edc6d7d7SNick Mathewson o Add function to check referential integrity of an event_base (27737d5)
125edc6d7d7SNick Mathewson o Check event_base correctness at end of each unit test (3312b02)
126edc6d7d7SNick Mathewson o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187)
1276f6cebe3SNick Mathewson o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259)
128edc6d7d7SNick Mathewson
12931c99bd2SNick MathewsonChanges in version 2.0.16-stable (18 Nov 2011)
13031c99bd2SNick MathewsonBUGFIXES (core):
13131c99bd2SNick Mathewson o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov)
13234045c8fSNick Mathewson o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles)
13334045c8fSNick Mathewson o Fix compile warning from saying event2/*.h inside a comment (447b0ba)
13434045c8fSNick Mathewson o Warn when unable to construct base because of failing make_base_notifiable (4e797f3)
13534045c8fSNick Mathewson o Don't try to make notifiable event_base when no threading fns are configured (e787413)
13634045c8fSNick Mathewson
13731c99bd2SNick MathewsonBUGFIXES (evbuffer):
13831c99bd2SNick Mathewson o unit test for remove_buffer bug (90bd620 Greg Hazel)
13934045c8fSNick Mathewson o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c)
14034045c8fSNick Mathewson
14131c99bd2SNick MathewsonBUGFIXES (bufferevent_openssl):
14231c99bd2SNick Mathewson o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey)
14331c99bd2SNick Mathewson o Move SSL rate-limit enforcement into bytes_to_read() (96c562f)
14431c99bd2SNick Mathewson o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey)
14531c99bd2SNick Mathewson
14631c99bd2SNick MathewsonBUGFIXES (dns)
14734045c8fSNick Mathewson o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov)
14834045c8fSNick Mathewson
14934045c8fSNick MathewsonTESTING:
15034045c8fSNick Mathewson o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov)
15134045c8fSNick Mathewson o Test for commit aff6ba1 (f7841bf Leonid Evdokimov)
15231c99bd2SNick Mathewson o Style and comment tweaks for dns/leak* tests (5e42202)
15334045c8fSNick Mathewson o improve test to remove at least one buffer from src (7eb52eb Greg Hazel)
15434045c8fSNick Mathewson
15531c99bd2SNick MathewsonDOCUMENTATION:
15634045c8fSNick Mathewson o Add note about evhttp_send_reply_end to its doxygen (724bfb5)
15731c99bd2SNick Mathewson o Update copyright dates to 2011. (3c824bd)
15834045c8fSNick Mathewson o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid)
15931c99bd2SNick Mathewson o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem)
16034045c8fSNick Mathewson
16134045c8fSNick Mathewson
16234045c8fSNick Mathewson
1637c3e0612SNick MathewsonChanges in version 2.0.15-stable (12 Oct 2011)
1647c3e0612SNick MathewsonBUGFIXES (DNS):
1657c3e0612SNick Mathewson o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov)
1667c3e0612SNick Mathewson o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov)
1677c3e0612SNick Mathewson
1687c3e0612SNick MathewsonBUFGIXES (bufferevents and evbuffers):
169c54c2358SNick Mathewson o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex)
1707c3e0612SNick Mathewson o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9)
1717c3e0612SNick Mathewson
1727c3e0612SNick MathewsonBUGFIXES (event loop):
1737c3e0612SNick Mathewson o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a)
1747c3e0612SNick Mathewson
1757c3e0612SNick MathewsonDOCUMENTATION FIXES:
1767c3e0612SNick Mathewson o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov)
1777c3e0612SNick Mathewson o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel)
1787c3e0612SNick Mathewson
1797c3e0612SNick MathewsonBUILD AND TESTING FIXES:
1807c3e0612SNick Mathewson o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev)
1817c3e0612SNick Mathewson o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382)
1827c3e0612SNick Mathewson o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey)
1837c3e0612SNick Mathewson o Make write-checking fixes use tt_fail_perror (2b76847)
1847c3e0612SNick Mathewson o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7)
1857c3e0612SNick Mathewson
1867c3e0612SNick Mathewson
187a718b6c3SNick Mathewson
188da90a9beSNick MathewsonChanges in version 2.0.14-stable (31 Aug 2011)
1896476d92dSNick MathewsonBUGFIXES (bufferevents and evbuffers):
1906476d92dSNick Mathewson o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch)
1916476d92dSNick Mathewson o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn)
1926476d92dSNick Mathewson o Fix handling of group rate limits under 64 bytes of burst (6d5440e)
1936476d92dSNick Mathewson o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf)
1946476d92dSNick Mathewson o Make rate limiting work with common_timeout logic (5b18f13)
19585976ddfSNick Mathewson o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch)
1966476d92dSNick Mathewson
1976476d92dSNick MathewsonBUGFIXES (IOCP):
1986476d92dSNick Mathewson o IOCP: don't launch reads or writes on an unconnected socket (495c227)
1996476d92dSNick Mathewson o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b)
2006476d92dSNick Mathewson o Have test-ratelim.c support IOCP (0ff2c5a)
2016476d92dSNick Mathewson o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd)
2026476d92dSNick Mathewson o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d)
2036476d92dSNick Mathewson
2046476d92dSNick MathewsonBUGFIXES (other):
2056476d92dSNick Mathewson o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov)
2066476d92dSNick Mathewson o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov)
2076476d92dSNick Mathewson
2086476d92dSNick MathewsonBUILD AND TESTING FIXES:
2096476d92dSNick Mathewson o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston)
2106476d92dSNick Mathewson o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart)
2116476d92dSNick Mathewson o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn)
2126476d92dSNick Mathewson
2136476d92dSNick Mathewson
21462b8ce58SNick MathewsonChanges in version 2.0.13-stable (18 Jul 2011)
21562b8ce58SNick MathewsonBUGFIXES
21662b8ce58SNick Mathewson o Avoid race-condition when initializing global locks (b683cae)
21762b8ce58SNick Mathewson o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch)
21862b8ce58SNick Mathewson o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey)
21962b8ce58SNick Mathewson o Avoid a segfault when all methods are disabled or broken (27ce38b)
22062b8ce58SNick Mathewson o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a)
22162b8ce58SNick Mathewson o Add some missing checks for mm_calloc failures (89d5e09)
22262b8ce58SNick Mathewson o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d)
22362b8ce58SNick Mathewson o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab)
22462b8ce58SNick Mathewson o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid)
22562b8ce58SNick Mathewson o Use the correct printf args when formatting size_t (3203f88)
22662b8ce58SNick Mathewson o Complain if the caller tries to change threading cbs after setting them (cb6ecee)
22760c1426fSNick Mathewson
22862b8ce58SNick MathewsonDOCUMENTATION FIXES AND IMPROVEMENTS
22962b8ce58SNick Mathewson o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac)
23062b8ce58SNick Mathewson o Update Doxyfile to produce more useful output (aea0555)
23162b8ce58SNick Mathewson
23262b8ce58SNick MathewsonTEST FIXES
23362b8ce58SNick Mathewson o Fix up test_evutil_snprintf (caf695a)
23462b8ce58SNick Mathewson o Fix tinytest invocation from windows shell (57def34 Ed Day)
23562b8ce58SNick Mathewson
23662b8ce58SNick MathewsonBUILD FIXES
23762b8ce58SNick Mathewson o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d)
23862b8ce58SNick Mathewson o Fix select.c compilation on systems with no NFDBITS (49d1136)
23962b8ce58SNick Mathewson o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott)
24062b8ce58SNick Mathewson o Don't break when building tests from git without python installed (b031adf)
24162b8ce58SNick Mathewson o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn)
24262b8ce58SNick Mathewson o Fix AIX build issue with TAILQ_FOREACH definition (e934096)
24360c1426fSNick Mathewson
24460c1426fSNick Mathewson
245452a8342SNick MathewsonChanges in version 2.0.12-stable (4 Jun 2011)
246c3555837SNick MathewsonBUGFIXES
247c3555837SNick Mathewson o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0)
248c3555837SNick Mathewson o Fix an assert-inducing fencepost bug in the select backend (d90149d)
249c3555837SNick Mathewson o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko)
250c3555837SNick Mathewson o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1)
251c3555837SNick Mathewson o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid)
252c3555837SNick Mathewson o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey)
253c3555837SNick Mathewson o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey)
254c3555837SNick Mathewson
255c3555837SNick MathewsonDOCUMENTATION:
256c3555837SNick Mathewson o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d)
257c3555837SNick Mathewson
258c3555837SNick MathewsonBUILD FIXES
259c3555837SNick Mathewson o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin)
260c3555837SNick Mathewson o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin)
261c3555837SNick Mathewson o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn)
262c3555837SNick Mathewson o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn)
263c3555837SNick Mathewson o Correctly detect openssl on windows (6619385 Sebastian Hahn)
264c3555837SNick Mathewson o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn)
265c3555837SNick Mathewson o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart)
266c3555837SNick Mathewson o Fix new warnings from GCC 4.6 (06a714f)
267c3555837SNick Mathewson o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin)
268c3555837SNick Mathewson o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin)
269c3555837SNick Mathewson o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin)
270c3555837SNick Mathewson o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin)
271c3555837SNick Mathewson o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin)
272c3555837SNick Mathewson o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin)
273c3555837SNick Mathewson o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin)
274c3555837SNick Mathewson o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin)
275c3555837SNick Mathewson o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn)
276c3555837SNick Mathewson o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin)
277c3555837SNick Mathewson o cygwin: make it possible to build DLLs (d54d3fc)
278c3555837SNick Mathewson
279c3555837SNick Mathewson
280c3555837SNick Mathewson
281d30466fcSNick MathewsonChanges in version 2.0.11-stable (27 Apr 2011)
282d30466fcSNick Mathewson  [Autogenerated from the Git log, sorted and cleaned by hand.]
283d30466fcSNick MathewsonBUGFIXES:
284d30466fcSNick Mathewson o Fix evport handling of POLLHUP and POLLERR (b42ce4b)
285d30466fcSNick Mathewson o Fix compilation on Windows with NDEBUG (cb8059d)
286d30466fcSNick Mathewson o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye)
287d30466fcSNick Mathewson o Detect and handle more allocation failures. (666b096 Jardel Weyrich)
288d30466fcSNick Mathewson o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich)
289d30466fcSNick Mathewson o Handle resize failures in the select backend better. (83e805a)
290d30466fcSNick Mathewson o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b)
291d30466fcSNick Mathewson o Make --enable-gcc-warnings a no-op if not using gcc (3267703)
292d30466fcSNick Mathewson o Fix a type error in our (unused) arc4random_stir() (f736198)
293d30466fcSNick Mathewson o Correctly detect and stop non-chunked http requests when the body is too long (63a715e)
294d30466fcSNick Mathewson o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7)
295d30466fcSNick Mathewson o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko)
296d30466fcSNick Mathewson o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot)
297d30466fcSNick Mathewson o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko)
298d30466fcSNick Mathewson o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko)
299d30466fcSNick Mathewson o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko)
300d30466fcSNick Mathewson o Fix a crash bug in evdns server circular list code (00e91b3)
301d30466fcSNick Mathewson o Handle calloc failure in evdns. (Found by Dave Hart) (364291e)
302d30466fcSNick Mathewson o Fix a memory leak on win32 socket->event map. (b4f89f0)
303d30466fcSNick Mathewson o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn)
304d30466fcSNick Mathewson o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn)
305d30466fcSNick Mathewson
306d30466fcSNick MathewsonPORTABILITY:
307d30466fcSNick Mathewson o Fall back to sscanf if we have no other way to implement strtoll (453317b)
308d30466fcSNick Mathewson o Build correctly on platforms without sockaddr_storage (9184563)
309d30466fcSNick Mathewson o Try to build correctly on platforms with no IPv6 support (713c254)
310d30466fcSNick Mathewson o Build on systems without AI_PASSIVE (cb92113)
311d30466fcSNick Mathewson o Fix http unit test on non-windows platforms without getaddrinfo (6092f12)
312d30466fcSNick Mathewson o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0)
313d30466fcSNick Mathewson o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn)
314d30466fcSNick Mathewson o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn)
315d30466fcSNick Mathewson o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn)
316d30466fcSNick Mathewson o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn)
317d30466fcSNick Mathewson o Check for allocation failures in apply_socktype_protocol_hack (637d17a)
318d30466fcSNick Mathewson o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b)
319d30466fcSNick Mathewson o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68)
320d30466fcSNick Mathewson
321d30466fcSNick MathewsonDEFENSIVE PROGRAMMING:
322d30466fcSNick Mathewson o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7)
323d30466fcSNick Mathewson
324d30466fcSNick MathewsonBUGS IN TESTS:
325d30466fcSNick Mathewson o Fix test.sh output on solaris (b4f89b6 Dave Hart)
326d30466fcSNick Mathewson o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn)
327d30466fcSNick Mathewson o Use %s with printf in test.sh (039b9bd)
328d30466fcSNick Mathewson o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn)
329d30466fcSNick Mathewson o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn)
330d30466fcSNick Mathewson o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn)
331d30466fcSNick Mathewson o add some (void) casts for unused variables (65707d7 Sebastian Hahn)
332d30466fcSNick Mathewson o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn)
333d30466fcSNick Mathewson o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn)
334d30466fcSNick Mathewson o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn)
335d30466fcSNick Mathewson o Remote some dead code from dns-example.c (744c745 Sebastian Hahn)
336d30466fcSNick Mathewson o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn)
337d30466fcSNick Mathewson
338d30466fcSNick MathewsonBUILD FIXES:
339d30466fcSNick Mathewson o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn)
340d30466fcSNick Mathewson o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn)
341d30466fcSNick Mathewson o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn)
342d30466fcSNick Mathewson o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart)
343d30466fcSNick Mathewson o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart)
344d30466fcSNick Mathewson o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn)
345d30466fcSNick Mathewson
346d30466fcSNick MathewsonFEATURES:
347d30466fcSNick Mathewson o Make URI parser able to tolerate nonconformant URIs. (95060b5)
348d30466fcSNick Mathewson
349d30466fcSNick MathewsonDOCUMENTATION:
350d30466fcSNick Mathewson o Clarify event_set_mem_functions doc (926f816)
351d30466fcSNick Mathewson o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924)
352d30466fcSNick Mathewson o fix spelling mistake in whatsnew-2.0.txt (deb2f73)
353d30466fcSNick Mathewson o Fix sample/http-server ipv6 fixes (eb692be)
354d30466fcSNick Mathewson o Comment internal headers used in sample code. (4eb281c)
355d30466fcSNick Mathewson o Be explicit about how long event loops run in event.h documentation (f95bafb)
356d30466fcSNick Mathewson o Add comment to configure.in to explain gc-sections test logic (c621359)
357d30466fcSNick Mathewson o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665)
358d30466fcSNick Mathewson
359d30466fcSNick MathewsonBUILD IMPROVEMENTS:
360d30466fcSNick Mathewson o Use the gcc -ffunction-segments feature to allow gc when linking with static libevent (0965c56 Dave Hart)
361d30466fcSNick Mathewson o Add configure options to disable installation, regression tests (49e9bb7 Dave Hart)
362d30466fcSNick Mathewson
363d30466fcSNick Mathewson
364d30466fcSNick Mathewson
3655a12d835SNick MathewsonChanges in version 2.0.10-stable (16 Dec 2010)
3665a12d835SNick Mathewson  [Autogenerated from the Git log, sorted and cleaned by hand.]
3675a12d835SNick MathewsonBUGFIXES
3685a12d835SNick Mathewson o Minor fix for IOCP shutdown handling fix (2599b2d Kelly Brock)
3695a12d835SNick Mathewson o Correctly notify the main thread when activating an event from a subthread (5beeec9)
3705a12d835SNick Mathewson o Reject overlong http requests early when Expect:100-continue is set (d23839f Constantine Verutin)
3715a12d835SNick Mathewson o EVUTIL_ASSERT: Use sizeof() to avoid "unused variable" warnings with -DNDEBUG. (b63ab17 Evan Jones)
3725a12d835SNick Mathewson
3735a12d835SNick MathewsonCODE CLEANUPS
3745a12d835SNick Mathewson o bufferevent-internal.h: Use the new event2/util.h header, not evutil.h (ef5e65a Evan Jones)
3755a12d835SNick Mathewson o Use relative includes instead of system includes consistently. (fbe64f2 Evan Jones)
3765a12d835SNick Mathewson o Make whitespace more consistent
3775a12d835SNick Mathewson
3785a12d835SNick MathewsonTESTING
3795a12d835SNick Mathewson o tests: Use new event2 headers instead of old compatibility headers. (4f33209 Evan Jones)
3805a12d835SNick Mathewson
3815a12d835SNick MathewsonDOCUMENTATION
3825a12d835SNick Mathewson o Document that the cpu_hint is only used on Windows with IOCP for now (57689c4)
3835a12d835SNick Mathewson o Add stuff to "whats new in 2.0" based on reading include changes since August. (18adc3f)
3842b0b06d7SNick Mathewson
3852b0b06d7SNick Mathewson
386ce46db99SNick MathewsonChanges in 2.0.9-rc (30 Nov 2010):
3870c54f176SNick Mathewson  [Autogenerated from the Git log, sorted and cleaned by hand.]
3880c54f176SNick MathewsonNEW AND MODIFIED APIs
3890c54f176SNick Mathewson o Add a function to change a listener's callback. (46ee061)
3900c54f176SNick Mathewson o Make evbuffer_add_file take ev_off_t, not off_t (ac7e52d)
3910c54f176SNick Mathewson o Make rate-limits go up to SIZE_MAX/EV_SSIZE_MAX, not just INT32_MAX (2cbb1a1)
3920c54f176SNick Mathewson o Add a bufferevent_get_base function (aab49b6)
3930c54f176SNick Mathewson
3940c54f176SNick MathewsonMAJOR BUGFIXES
3950c54f176SNick Mathewson 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)
3960c54f176SNick Mathewson o Fix a 100%-CPU bug where an SSL connection would sometimes never stop trying to write (1213d3d)
3970c54f176SNick Mathewson o Fix a nasty bug related to use of dup() with epoll on Linux (c281aba)
3980c54f176SNick Mathewson o Fix bugs in posix thread-id calculation when sizeof(pthread_t) != sizeof(long) (fbaf077)
3990c54f176SNick Mathewson o Fix some ints to evutil_socket_t; make tests pass on win64. (f817bfa Dimitre Piskyulev)
4000c54f176SNick Mathewson o Set _EVENT_SIZEOF_VOID_P correctly on win32 and win64 (1ae82cd Dimitre Piskyulev)
4010c54f176SNick Mathewson o Avoid double-invocation of user callback with EVUTIL_EAI_CANCEL (abf01ed)
4020c54f176SNick Mathewson o Set SO_UPDATE_ACCEPT_CONTEXT on sockets from AcceptEx so that shutdown() can work (52aa419)
4030c54f176SNick Mathewson o When closing a filtering bufferevent, clear callbacks on the underlying bufferevent (fc7b1b0)
4040c54f176SNick Mathewson
4050c54f176SNick MathewsonNEW AND MODIFIED HTTP APIs
4060c54f176SNick Mathewson o Add evhttp_parse_query_str to be used with evhttp_uri_parse. (2075fbc)
4070c54f176SNick Mathewson o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
4080c54f176SNick Mathewson o Define enumerators for all HTTP methods, including PATCH from RFC5789 (75a7341 Felix Nawothnig)
4090c54f176SNick Mathewson o Functions to actually use evhttp_bound_socket with/as evconnlistener. (006efa7)
4100c54f176SNick Mathewson o Add evhttp_request_get_command so code can tell GET from POST without peeking at the struct. (49f4bf7)
4110c54f176SNick Mathewson o Introduce absolute URI parsing helpers. (86dd720 Pavel Plesov)
4120c54f176SNick Mathewson o Revise evhttp_uri_parse implementation to handle more of RFC3986 (eaa5f1d)
4130c54f176SNick Mathewson o Add evhttp_connection_get_base() to get the event_base from an http connection (cd00079)
4140c54f176SNick Mathewson o Let evhttp_parse_query return -1 on failure (b1756d0)
4150c54f176SNick Mathewson o New evhttp_uri(encode|decode) functions to handle + and NUL characters right (a8148ce)
4160c54f176SNick Mathewson o Add evhttp_response_code to remove one more reason to include http_struct.h (22e0a9b)
4170c54f176SNick Mathewson o Tweak interface for allowed methods (f5b391e)
4180c54f176SNick Mathewson o Add evhttp server alias interface, correct flagging of proxy requests. (aab8c38 Christopher Davis)
4190c54f176SNick Mathewson
4200c54f176SNick MathewsonHTTP BUGFIXES
4210c54f176SNick Mathewson o Add some comments to http.c and make a few functions static. (90b3ed5)
4220c54f176SNick Mathewson o Fix Content-Length when trying send more than 100GB of data (!) on an evhttp. (525da3e)
4230c54f176SNick Mathewson o Fix a bug where we would read too much data in HTTP bodies or requests. (58a1cc6)
4240c54f176SNick Mathewson o Correctly count req->body_size on http usage without Content-Length (8e342e5)
4250c54f176SNick Mathewson o Avoid missed-request bug when entire http request arrives before data is flushed (74c0e86)
4260c54f176SNick Mathewson o reset "chunked" flag when sending non-chunked reply (aa5f55f Joachim Bauch)
4270c54f176SNick Mathewson o evhttp_encode_uri encodes all reserved characters, including !$'()*+,/:=@ (2e63a60)
4280c54f176SNick Mathewson o Replace exact-version checks for HTTP/1.1 with >= or < checks (647e094)
4290c54f176SNick Mathewson o evhttp: Return 501 when we get an unrecognized method, not 400. (536311a)
4300c54f176SNick Mathewson o Don't disable reading from the HTTP connection after sending the request to be notified of connection-close in time (c76640b Felix Nawothnig)
4310c54f176SNick Mathewson o Never call evhttp_readcb while writing. (0512487)
4320c54f176SNick Mathewson o Try to fix an assertion failure related to close detection (0faaa39)
4330c54f176SNick Mathewson o Correctly detect timeouts during http connects (04861d5)
4340c54f176SNick Mathewson o Preliminary support for Continue expectation in evhttp. (fa9305f Christopher Davis)
4350c54f176SNick Mathewson
4360c54f176SNick MathewsonOTHER BUGFIXES
4370c54f176SNick Mathewson o Correct logic for realigning a chain in evbuffer_add (e4f34e8)
4380c54f176SNick Mathewson o Fix a minor syntax error that most compilers didn't care about (e56ff65)
4390c54f176SNick Mathewson o Fix some uses of int for socket in regress (5d389dc)
4400c54f176SNick Mathewson o Check return value for ioctlsocket on win32 (f5ad31c Trond Norbye)
4410c54f176SNick Mathewson o Fix som event_warns that should have been event_warnx (19c71e7)
4420c54f176SNick Mathewson o Fix signal handler types for win64. (b81217f)
4430c54f176SNick Mathewson o Try to clear up more size_t vs int/long issues. (598d133)
4440c54f176SNick Mathewson o Make sure IOCP evconnlistener uses virtual events. (7b40a00 Christopher Davis)
4450c54f176SNick Mathewson o Don't free evdns_request handles until after the callback is invoked (9ed30de)
4460c54f176SNick Mathewson o Fix some more cancel-related bugs in getaddrinfo_async (c7cfbcf)
4470c54f176SNick Mathewson o Make evdns_getaddrinfo_cancel threadsafe (d51b2fc)
4480c54f176SNick Mathewson o Only clear underlying callbacks when the user hasn't reset them. (1ac5b23)
4490c54f176SNick Mathewson o Fix bug in bufferevent_connect on an openssl bufferevent that already had an fd (4f228a1)
4500c54f176SNick Mathewson o Resolve an evport bug in the thread/forking test (3a67d0b)
4510c54f176SNick Mathewson o Make sure the CLOEXEC flag is set on fds we open for base notification (3ab578f)
4520c54f176SNick Mathewson o Fix IRIX build.  sa_family collides with a #define in sys/socket.h on IRIX. (e874982 Kevin Bowling)
4530c54f176SNick Mathewson o If not WIN32, include <sys/socket.h> in event2/util.h. (1cd45e5 Kevin Bowling)
4540c54f176SNick Mathewson o Fix some C99-style comments to work with the xlC compiler. (c2e5e22 Kevin Bowling)
4550c54f176SNick Mathewson 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)
4560c54f176SNick Mathewson o Reworked AIX __ss_family workaround to use AC_STRUCT_MEMBER. (2e2a3d7 Kevin Bowling)
4570c54f176SNick Mathewson o Take select from <sys/select.h> when testing in autoconf.  AIX build fix. (a3a9f6b Kevin Bowling)
4580c54f176SNick Mathewson o Fix snprintf related failures on IRIX. (3239073 Kevin Bowling)
4590c54f176SNick Mathewson o Remove _event_initialized(); make event_initialized() a function(); make it consistent on windows and non-windows (652024b)
4600c54f176SNick Mathewson o Do not let EVLOOP_ONCE exit the loop until all deferred callbacks have run (2d5e1bd)
4610c54f176SNick Mathewson o Make EVLOOP_ONCE ignore internal events (0617a81)
4620c54f176SNick Mathewson o Possible crash fix when freeing an underlying bufferevent of an openssl bufferevent (29f7623)
4630c54f176SNick Mathewson
4640c54f176SNick MathewsonHTTP CLEANUPS
4650c54f176SNick Mathewson o Stop using Libevent-1 headers in regress_http (1f507d7)
4660c54f176SNick Mathewson o Modernize header usage in bench_http.c (e587069)
4670c54f176SNick Mathewson o fix signed/unsigned warnings in http.c (74a91e5)
4680c54f176SNick Mathewson o Update the HTTP regression tests to use Libevent2 apis for non-http stuff (d9ffa89)
4690c54f176SNick Mathewson o Start porting http tests to not use legacy interfaces (8505a74)
4700c54f176SNick Mathewson o Convert the rest of the http tests to be non-legacy unit tests. (9bb8239)
4710c54f176SNick Mathewson o Rename the confusing "base" static variable in regress_http.c (353402a)
4720c54f176SNick Mathewson o Stop accessing http request struct directly from in the unit tests. (0b137f4)
4730c54f176SNick Mathewson o Refactor http version parsing into a single function (a38140b)
4740c54f176SNick Mathewson
4750c54f176SNick MathewsonTESTING
4760c54f176SNick Mathewson o Improvements to tinytest_macros.h (ad923a1)
4770c54f176SNick Mathewson o Add a huge pile of tests for the new URI functions, and make them pass. (a5a76e6)
4780c54f176SNick Mathewson o Unit tests for evhttp_uri_set* (bc98f5e)
4790c54f176SNick Mathewson o Increase the skew tolerance to 2 seconds in thread/deferred_cb_skew (f806476 Christopher Davis)
4800c54f176SNick Mathewson o Reorder backends in test.sh to match preference order in event.c (ece974f)
4810c54f176SNick Mathewson o Add a stress test for getaddrinfo_cancel (da1bf52)
4820c54f176SNick Mathewson o Units test for unexpected evhttp methods. (75e3320)
4830c54f176SNick Mathewson
4840c54f176SNick MathewsonDOCUMENTATION
4850c54f176SNick Mathewson o Document behavior of URI parsing more thoroughly. (3a33462)
4860c54f176SNick Mathewson o Document that two bufferevent functions only work on socket bufferevents (70e1b60)
4870c54f176SNick Mathewson o add a requested docstring for event_rpcgen.CommandLine.__init__ (f1250eb)
4880c54f176SNick Mathewson o Fix a mistake in http documentation found by Julien Blache (229714d)
4890c54f176SNick Mathewson o Add a basic example of how to write a static HTTP server. (4e794d5)
4900c54f176SNick Mathewson o Document event_get_assignment (88be27d)
4910c54f176SNick Mathewson o Note that reentrant calls to libevent from logging cbs may fail badly (e431bcd)
4920c54f176SNick Mathewson o Clarify EVLOOP_* documentation to be more precise. (057a514)
4930c54f176SNick Mathewson
4940c54f176SNick MathewsonCLEANUPS
4950c54f176SNick Mathewson o Simplify the logic for choosing EPOLL_CTL_ADD vs EPOLL_CTL_MOD (2c66983)
4960c54f176SNick Mathewson o Rename "size" variables in win32select that were really fd counts. (b6a158c)
4970c54f176SNick Mathewson o Fix even more win64 warnings (7484df6)
4980c54f176SNick Mathewson o Fix even more win64 warnings: buffer, event_tagging, http, evdns, evrpc (545a611)
4990c54f176SNick Mathewson o Fix more wn64 warnings. (34b84b9 Christopher Davis)
5000c54f176SNick Mathewson o Use the label_len local variable in evdns instead of recalculating it over and over (ba01456)
5010c54f176SNick Mathewson o Fix some irix compilation warnings spotted by Kevin Bowling (7bcace2)
5029dc5f44aSNick Mathewson
5039dc5f44aSNick Mathewson
5049dc5f44aSNick Mathewson
50515be0493SNick MathewsonChanges in 2.0.8-rc (14 Oct 2010):
50615be0493SNick Mathewson [Autogenerated from the Git log, sorted and cleaned by hand.]
50715be0493SNick MathewsonNEW APIS
50815be0493SNick Mathewson o Add error callback to evconnlistener (c4be8d8 Simon Perreault)
50915be0493SNick Mathewson o Add a LEV_OPT_THREADSAFE option for threadsafe evconnlisteners (127d4f2)
51015be0493SNick Mathewson
51115be0493SNick MathewsonCHANGED BEHAVIOR
51215be0493SNick Mathewson o Correct logic on disabling underlying bufferevents when disabling a filter (ac27eb8)
51315be0493SNick Mathewson
51415be0493SNick MathewsonBUGFIXES
51515be0493SNick Mathewson o Obey enabled status when unsuspending (040a019 Simon Perreault)
51615be0493SNick Mathewson 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)
51715be0493SNick Mathewson O Make default signal backend fully threadsafe (95a7d41)
51815be0493SNick Mathewson o Put internal events at highest priority (90651b3)
51915be0493SNick Mathewson o Fix warnings in the main codebase flagged by -Wsigned-compare (9c8db0, 5e4bafb, 5c214a, 6be589a, e06f514)
52015be0493SNick Mathewson o Fix compile in kqueue.c (b395392 Sebastian Hahn)
52115be0493SNick Mathewson o Do not search outside of the system directory for windows DLLs (d49b5e3)
52215be0493SNick Mathewson o Fix a spurious-call bug on epoll.c (0faaee0)
52315be0493SNick Mathewson o Send a shutdown(SHUT_WR) before closing an http connection (e0fd870 Christopher Davis)
52415be0493SNick Mathewson o Fix warnings on mingw with gcc 4.5 (5b7a370)
52515be0493SNick Mathewson o Fix an EINVAL on evbuffer_write_iovec on OpenSolaris. (fdc640b)
52615be0493SNick Mathewson o Fix allocation error for IOCP listeners. Probably harmless, since struct event is big (481ef92)
52715be0493SNick Mathewson o Make iocp/listener/error work; don't accept again if lev is disabled. (62b429a Christopher Davis)
52815be0493SNick Mathewson o Handle rate-limiting for reading on OpenSSL bufferevents correctly. (819b171)
52915be0493SNick Mathewson o Fix serious bugs in per-bufferevent rate-limiting code (34d64f8)
53015be0493SNick Mathewson o Avoid spurious reads from just-created open openssl bufferevents (223ee40)
53115be0493SNick Mathewson o Fix a case where an ssl bufferevent with CLOSE_ON_FREE didn't close its fd (93bb7d8)
53215be0493SNick Mathewson o The corrected bufferevent filter semantics let us fix our openssl tests (34331e4)
53315be0493SNick Mathewson
53415be0493SNick MathewsonTESTING
53515be0493SNick Mathewson o Make SSL tests cover enabling/disabling EV_READ. (a5ce9ad)
53615be0493SNick Mathewson o Bump to the latest version of tinytest (f0bd83e)
53715be0493SNick Mathewson o Unit tests for listener error callbacks (045eef4)
53815be0493SNick Mathewson o New unit test for ssl bufferevents starting with connected SSLs. (02f6259)
53915be0493SNick Mathewson
54015be0493SNick MathewsonDEBUGGABILITY
54115be0493SNick Mathewson o Make debugging output for epoll backend more comprehensive (ec2b05e)
54215be0493SNick Mathewson o Make event.c debugging messages report fds (e119899)
54315be0493SNick Mathewson o Make the --enable-gcc-warnings option include signed comparison warnings (d3b096c)
54415be0493SNick Mathewson
54515be0493SNick MathewsonDEADCODE REMOVAL
54615be0493SNick Mathewson o Remove the now-useless evsig_caught and evsig_process (4858b79)
54715be0493SNick Mathewson o Remove event_base.evsigbase; nothing used it. (38d0960)
5485811d74cSNick Mathewson
5495811d74cSNick Mathewson
5505811d74cSNick Mathewson
55115be0493SNick MathewsonChanges in 2.0.7-rc (9 Sep 2010):
552fe008ed6SNick Mathewson [Autogenerated from the Git log, sorted and cleaned by hand.]
553fe008ed6SNick MathewsonNEW APIS
554fe008ed6SNick Mathewson o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143)
555fe008ed6SNick Mathewson o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis)
556fe008ed6SNick Mathewson
557fe008ed6SNick MathewsonBUGFIXES
558fe008ed6SNick Mathewson o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43)
559fe008ed6SNick Mathewson o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini)
560fe008ed6SNick Mathewson o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini)
561fe008ed6SNick Mathewson o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd)
562fe008ed6SNick Mathewson o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843)
563fe008ed6SNick Mathewson o Fix kqueue correctness test on x84_64 (6123d12)
564fe008ed6SNick Mathewson o Detect events with no ev_base; warn instead of crashing (f1074b7)
565fe008ed6SNick Mathewson o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3)
566fe008ed6SNick Mathewson o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20)
567fe008ed6SNick Mathewson o On windows, make lock/thread function tables static (5de2bcb)
568fe008ed6SNick Mathewson o Close th_notify_fds and open a new pair on reinit (495ed66)
569fe008ed6SNick Mathewson o Declare signal handler function as "__cdecl" on Windows (f0056d0)
570fe008ed6SNick Mathewson o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc)
571fe008ed6SNick Mathewson o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis)
572fe008ed6SNick Mathewson
573fe008ed6SNick MathewsonTHREADING BUGFIXES
574fe008ed6SNick Mathewson o Avoid deadlock when activating signals (970e6ad)
575fe008ed6SNick Mathewson o Add a condition variable backend, with implementations for pthreads and win32 (d4977b5)
576fe008ed6SNick Mathewson o Use conditions instead of current_event_lock to fix a deadlock (e0972c2)
577fe008ed6SNick Mathewson o Fix logic error in win32 TRY_LOCK that caused problems with rate-limiting (4c32b9d)
578fe008ed6SNick Mathewson o Avoid needlessly calling evthread_notify_base() when the loop is not running (c7a06bf)
579fe008ed6SNick Mathewson o Minimize calls to base_notify implementation functions, thereby avoiding needless syscalls (4632b78)
580fe008ed6SNick Mathewson
581fe008ed6SNick MathewsonIOCP BUGFIXES
582fe008ed6SNick Mathewson o IOCP-related evbuffer fixes (03afa20 Christopher Davis)
583fe008ed6SNick Mathewson o Stop IOCP when freeing the event_base (d844242 Christopher Davis)
584fe008ed6SNick Mathewson o Some IOCP bufferevent tweaks (76f7e7a Christopher Davis)
585fe008ed6SNick Mathewson
586fe008ed6SNick MathewsonTESTS
587fe008ed6SNick Mathewson o Make the regress_pthread.c tests work on windows with current test APIs (d74ae38)
588fe008ed6SNick Mathewson o Add a unit test for conditions (5fb1095)
589fe008ed6SNick Mathewson o Allow more than one copy of regression tests to run at once (a97320a)
590fe008ed6SNick Mathewson o Fix event_del(0) instance in bench.c (b0f284c Shuo Chen)
591fe008ed6SNick Mathewson o Fix a few memory leaks in the tests (1115366)
592fe008ed6SNick Mathewson o IOCP-related unit test tweaks (499452f Christopher Davis)
593fe008ed6SNick Mathewson o Improve testing of when thread-notification occurs (ce85280)
594fe008ed6SNick Mathewson
595fe008ed6SNick MathewsonBUILD AND DISTRIBUTION
596fe008ed6SNick Mathewson o Add pkgconfig files for libevent_{openssl,pthreads} (ebcb1f0)
597fe008ed6SNick Mathewson o Change include order in Makefile.nmake (4022b28)
598fe008ed6SNick Mathewson o Make include/event2/event-config.h not included in source dist (a4af9be)
599fe008ed6SNick Mathewson o Honor NDEBUG; build without warnings with NDEBUG; make NDEBUG always-off in unit test code (743f866)
600fe008ed6SNick Mathewson o Declare evkeyvalq and event_list even if event_struct.h comes before sys/queue.h (d3ceca8)
601fe008ed6SNick Mathewson o Move evkeyvalq into a separate header for evhttp_parse_query users (ca9048f)
602fe008ed6SNick Mathewson o Prefer autoreconf -ivf to manual autogen.sh (7ea8e89)
603fe008ed6SNick Mathewson
604fe008ed6SNick MathewsonCLEANUP
605fe008ed6SNick Mathewson o Completely remove the (mostly-removed) obsolete thread functions (3808168)
606fe008ed6SNick Mathewson o Rename regress_pthread.c to regress_thread.c (041989f)
607fe008ed6SNick Mathewson o Make defer-internal.h use lock macros, not direct calls to lock fns (5218d2a)
608fe008ed6SNick Mathewson
609fe008ed6SNick MathewsonDOCUMENTATION
610fe008ed6SNick Mathewson o Document that DNS_NO_SEARCH is an obsolete alias for DNS_QUERY_NO_SEARCH (33200e7)
611fe008ed6SNick Mathewson o Update the whatsnew-2.0.txt document (4991669)
612ff481a8eSNick Mathewson
613ff481a8eSNick Mathewson
61415be0493SNick Mathewson
61515be0493SNick MathewsonChanges in 2.0.6-rc (6 Aug 2010):
616f6582640SNick Mathewson [Autogenerated from the Git log, sorted by hand.]
617f6582640SNick MathewsonDOCUMENTATION
618f6582640SNick Mathewson o Document a change in the semantics of event_get_struct_event_size() (e21f5d1)
619f6582640SNick Mathewson o Add a comment to describe our plan for library versioning (9659ece)
620f6582640SNick Mathewson o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6)
621f6582640SNick Mathewson
622f6582640SNick MathewsonNEW FEATURES AND INTERFACE CHANGES
623f6582640SNick Mathewson o Remove the obsolete evthread interfaces (c5bab56)
624f6582640SNick Mathewson o Let evhttp_send_error infer the right error reasons (3990669)
625f6582640SNick Mathewson o Add a function to retrieve the other side of a bufferevent pair (17a8e2d)
626f6582640SNick Mathewson o Add bufferevent_lock()/bufferevent_unlock() (215e629)
627f6582640SNick Mathewson o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59)
628f6582640SNick Mathewson o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167)
629f6582640SNick Mathewson o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d)
630f6582640SNick Mathewson o Add an interface to expose min_share in ratelimiting groups (6ae53d6)
631f6582640SNick Mathewson
632f6582640SNick MathewsonBUGFIXES
633f6582640SNick Mathewson o Avoid event_del on uninitialized event in event_base_free (6d19510)
634f6582640SNick Mathewson o Add some missing includes to fix Linux build again (75701e8)
635f6582640SNick Mathewson o Avoid close of uninitialized socket in evbuffer unit test (bda21e7)
636f6582640SNick Mathewson o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b)
637f6582640SNick Mathewson o If no evdns request can be launched, return NULL, not a handle (b14f151)
638f6582640SNick Mathewson o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3)
639f6582640SNick Mathewson o Fix the default HTTP error template (06bd056 Felix Nawothnig)
640f6582640SNick Mathewson o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf)
641f6582640SNick Mathewson o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig)
642f6582640SNick Mathewson o never let bufferevent_rlim functions return negative (0859870)
643f6582640SNick Mathewson o Make sample/hello_world work on windows (d89fdba)
644f6582640SNick Mathewson o Fix a deadlock related to event-base notification.  Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2)
645f6582640SNick Mathewson o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie)
646f6582640SNick Mathewson o Don't race when calling event_active/event_add on a running signal event (fc5e0a2)
647f6582640SNick Mathewson o Suppress a spurious EPERM warning in epoll.c (e73cbde)
648f6582640SNick Mathewson o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks)
649f6582640SNick Mathewson o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie)
650f6582640SNick Mathewson o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye)
651f6582640SNick Mathewson o Fix rate-limit calculation on openssl bufferevents. (009f300)
652f6582640SNick Mathewson o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis)
653f6582640SNick Mathewson
654f6582640SNick MathewsonBUILD AND DISTRIBUTION CHANGES
655f6582640SNick Mathewson o Test the unlocked-deferred callback case of bufferevents (dfb75ab)
656f6582640SNick Mathewson o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc)
657f6582640SNick Mathewson o Use -Wlogical-op on gcc 4.5 or higher (d14bb92)
658f6582640SNick Mathewson o Add the libtool-generated /m4/* stuff to .gitignore (c21c663)
659f6582640SNick Mathewson o Remove some automake-generated files from version control. (9b14911)
660f6582640SNick Mathewson o Have autogen.sh pass --force-missing to automake (8a44062)
661f6582640SNick Mathewson o Set library version for libevent_pthreads correctly (b2d7440)
662f6582640SNick Mathewson o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn)
663f6582640SNick Mathewson o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71)
664f6582640SNick Mathewson o Fix unit tests with -DUSE_DEBUG enabled (28f31a4)
665f6582640SNick Mathewson o Fix evdns build with -DUNICODE (5fa30d2)
666f6582640SNick Mathewson o Move event-config.h to include/event2 (ec347b9)
667f6582640SNick Mathewson
668f6582640SNick MathewsonTESTING
669f6582640SNick Mathewson o Add options to test-ratelim.c to check its results (2b44dcc)
670f6582640SNick Mathewson o Make test-ratelim clean up after itself better. (b5bfc44)
671f6582640SNick Mathewson o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7)
672f6582640SNick Mathewson o Remove all non-error prints from test/regress.c (8bc1e3d)
673f6582640SNick Mathewson o Make test.sh exit with nonzero status if tests fail (faf2a04)
674f6582640SNick Mathewson o Have the unit tests report errors from test.sh (3689bd2)
675f6582640SNick Mathewson o Fix logic in correcting high values from FIONREAD (3467f2f)
676f6582640SNick Mathewson o Add test for behavior on remote socket close (44d57ee)
677f6582640SNick Mathewson o Unit test for event_get_struct_event_size() (7510aac)
678f6582640SNick Mathewson o Make test/test.sh call test-changelist (7c92691)
679f6582640SNick Mathewson o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch)
680f6582640SNick Mathewson o Add option to test-ratelim to test min_share (42f6b62)
681f6582640SNick Mathewson o Fix an assertion bug in test-ratelim (b2c6202)
682f6582640SNick Mathewson o Make tests quieter on local dns resolver failure (e996b3d)
683f6582640SNick Mathewson o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2)
684f6582640SNick Mathewson o Use AF_INET socketpair to test sendfile on Solaris (9b60209)
685f6582640SNick Mathewson o Make test-changelist count cpu usage right on win32 (ea1ea3d)
686f6582640SNick Mathewson
687f6582640SNick MathewsonINTERNALS, PERFORMANCE, AND CODE CLEANUPS
688f6582640SNick Mathewson o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed)
689f6582640SNick Mathewson o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3)
690f6582640SNick Mathewson o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4)
691f6582640SNick Mathewson o Remove some dead assignments (47c5dfb)
692f6582640SNick Mathewson o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee)
693f6582640SNick Mathewson o Drain th_notify_fd[0] more bytes at a time. (a5bc15b)
694f6582640SNick Mathewson o Tidy up the code in evthread_make_base_notifiable a little (61e1eee)
695f6582640SNick Mathewson o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1)
696f6582640SNick Mathewson o Remove unused variables in test/test-changelist.c (b00d4c0)
697f6582640SNick Mathewson o Fix whitespace. (cb927a5)
698f6582640SNick Mathewson o Improve error message for failed epoll to make debugging easier. (9e725f7)
699f6582640SNick Mathewson o Turn our socketpair() replacement into its own function (57b30cd)
7009cb5bc86SNick Mathewson
7019cb5bc86SNick Mathewson
70215be0493SNick Mathewson
70315be0493SNick MathewsonChanges in 2.0.5-beta (10 May 2010):
704f6aaf176SNick Mathewson [Autogenerated from the Git log, sorted by hand.]
705f6aaf176SNick MathewsonDOCUMENTATION
706f6aaf176SNick Mathewson o Update all our copyright notices to say "2010" (17efc1c)
707f6aaf176SNick Mathewson o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57)
708f6aaf176SNick Mathewson o Clarify Christopher Clark's status as writer of original ht code. (78772c3)
709f6aaf176SNick Mathewson o Try to comment some of the event code more (cdd4c49)
710f6aaf176SNick Mathewson o Add a few more evmap/changelist comments (c247adc)
711f6aaf176SNick Mathewson o Add a comment to explain why evdns_request is now separte from request (ceefbe8)
712f6aaf176SNick Mathewson o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a)
713f6aaf176SNick Mathewson o Stop distributing and installing manpages: they were too inaccurate (7731ec8)
714f6aaf176SNick Mathewson
715f6aaf176SNick MathewsonNEW FEATURES AND INTERFACE CHANGES
716f6aaf176SNick Mathewson o Remove signal_assign() and signal_new() macros. (2fac0f7)
717f6aaf176SNick Mathewson o Make evdns use the regular logging system by default (b2f2be6)
718f6aaf176SNick Mathewson o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3)
719f6aaf176SNick Mathewson o Functions to manipulate existing rate limiting groups. (ee41aca)
720f6aaf176SNick Mathewson o Functions to track the total bytes sent over a rate limit group. (fb366c1)
721f6aaf176SNick Mathewson o Detect and refuse reentrant event_base_loop() calls (b557b17)
722f6aaf176SNick Mathewson o Limit the maximum number of events on each socket to 65535 (819f949)
723f6aaf176SNick Mathewson o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c)
724f6aaf176SNick Mathewson o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen)
725f6aaf176SNick Mathewson o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen)
726f6aaf176SNick Mathewson o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb)
727f6aaf176SNick Mathewson o Make evutil_secure_rng_init() work even with builtin arc4random (f980716)
728f6aaf176SNick Mathewson o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis)
729f6aaf176SNick Mathewson 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)
730f6aaf176SNick Mathewson o Catch attempts to enable debug_mode too late (9ecf0d4)
731f6aaf176SNick Mathewson o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis)
732f6aaf176SNick Mathewson
733f6aaf176SNick MathewsonBUGFIXES
734f6aaf176SNick Mathewson o Avoid a spurious close(-1) on Linux (70a44b6)
735f6aaf176SNick Mathewson o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3)
736f6aaf176SNick Mathewson o Free evdns_base->req_heads on evdns_base_free (859af67)
737f6aaf176SNick Mathewson o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431)
738f6aaf176SNick Mathewson o Set mem_offset for every bufferevent type (657d1b6)
739f6aaf176SNick Mathewson o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich)
740f6aaf176SNick Mathewson o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith)
741f6aaf176SNick Mathewson o Fix minheap code to use replacement malloc functions (a527618)
742f6aaf176SNick Mathewson o Fix a free(NULL) in minheap-internal.h (6f20492)
743f6aaf176SNick Mathewson o Fix critical bug in evbuffer_write when writev is not available (cda56ab)
744f6aaf176SNick Mathewson o Make the no_iovecs case of write_atmost compile (8e227b0)
745f6aaf176SNick Mathewson o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3)
746f6aaf176SNick Mathewson o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis)
747f6aaf176SNick Mathewson o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis)
748f6aaf176SNick Mathewson o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano)
749f6aaf176SNick Mathewson 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)
750f6aaf176SNick Mathewson o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis)
751f6aaf176SNick Mathewson o Assert for valid requests as necessary. (67072f3 Christopher Davis)
752f6aaf176SNick Mathewson o do not leak the request object on persistent connections (9d8edf2)
753f6aaf176SNick Mathewson o Make evdns logging threadsafe (b1c7950)
754f6aaf176SNick Mathewson o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7)
755f6aaf176SNick Mathewson o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a)
756f6aaf176SNick Mathewson o fix a leak when unpausing evrpc requests (94ee125)
757f6aaf176SNick Mathewson o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2)
758f6aaf176SNick Mathewson o Fix compilation when openssl support is disabled (40c301b)
759f6aaf176SNick Mathewson o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf)
760f6aaf176SNick Mathewson o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn)
761f6aaf176SNick Mathewson o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis)
762f6aaf176SNick Mathewson o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29)
763f6aaf176SNick Mathewson o Fix symbol conflict between mm_*() macros and libmm (99e50e9)
764f6aaf176SNick Mathewson o Fix some crazy macro mistakes in arc4random.c (90d4225)
765f6aaf176SNick Mathewson o Make evbuffer_add_file() work on windows (dcdae6b)
766f6aaf176SNick Mathewson o Fix unused-variable warning when building with threads disabled (ad811cd)
767f6aaf176SNick Mathewson o Numerous opensolaris compilation fixes (c44de06)
768f6aaf176SNick Mathewson o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28)
769f6aaf176SNick Mathewson o Fix another nasty solaris getaddrinfo() behavior (3557071)
770f6aaf176SNick Mathewson o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a)
771f6aaf176SNick Mathewson o Fix some autoconf issues on OpenBSD (7c519df)
772f6aaf176SNick Mathewson
773f6aaf176SNick MathewsonBUILD AND DISTRIBUTION CHANGES
774f6aaf176SNick Mathewson o Distribute libevent.pc.in, not libevent.pc (22aff04)
775f6aaf176SNick Mathewson o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield)
776f6aaf176SNick Mathewson o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield)
777f6aaf176SNick Mathewson o Support the standard 'make check' target in place of 'make verify' (426c8fb)
778f6aaf176SNick Mathewson o Remove redundant stuff from EXTRA_DIST (b660edf)
779f6aaf176SNick Mathewson o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5)
780f6aaf176SNick Mathewson o Remove an orphaned RELEASE flag in Makefile.am (0794b0d)
781f6aaf176SNick Mathewson o Give a better warning for bad automake versions. (77c917d)
782f6aaf176SNick Mathewson o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7)
783f6aaf176SNick Mathewson o Never test for select() on windows (3eb044d Trond Norbye)
784f6aaf176SNick Mathewson o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano)
785f6aaf176SNick Mathewson o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano)
786f6aaf176SNick Mathewson o Add ctags/etags files to .gitignore (0861d17)
787f6aaf176SNick Mathewson o Only specify -no-undefined on mingw (25433b9)
788f6aaf176SNick Mathewson o Only add libevent_core.la to LIBADD on mingw (fdc6297)
789f6aaf176SNick Mathewson
790f6aaf176SNick MathewsonTESTING
791f6aaf176SNick Mathewson o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis)
792f6aaf176SNick Mathewson o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis)
793f6aaf176SNick Mathewson o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3)
794f6aaf176SNick Mathewson o Fix a write of uninitialized RAM in regression tests (68dc742)
795f6aaf176SNick Mathewson o Fix some memory leaks in the unit tests (274a7bd)
796f6aaf176SNick Mathewson o Make 'main/many_events' test 70 fds, not 64. (33874b0)
797f6aaf176SNick Mathewson o Unit-test every evbuffer_add_file() implementation. (06a4443)
798f6aaf176SNick Mathewson o Add more unit tests for evbuffer_expand (8c83e99)
799f6aaf176SNick Mathewson o Test another case of evbuffer_prepend (1234b95)
800f6aaf176SNick Mathewson 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)
801f6aaf176SNick Mathewson o Make http_base_test stop leaking an event_base. (96730d3)
802f6aaf176SNick Mathewson o Detect broken unsetenv at unit-test runtime (f37cd4c)
803f6aaf176SNick Mathewson o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1)
804f6aaf176SNick Mathewson o add more (currently skipped) add_file tests on win32 (05de45d)
805f6aaf176SNick Mathewson o Fix bench_http build on win32. (384d124)
806f6aaf176SNick Mathewson o Make unit test for add_file able to tell "error" from "done" (88a543f)
807f6aaf176SNick Mathewson o Make test for bufferevent_connect_hostname system-neutral (f89168e)
808f6aaf176SNick Mathewson o Make test.sh support mingw/msys on win32 (0ee6f6c)
809f6aaf176SNick Mathewson o Fix test.sh on freebsd (3d9e05b)
810f6aaf176SNick Mathewson
811f6aaf176SNick MathewsonINTERNALS, PERFORMANCE, AND AND CODE CLEANUPS
812f6aaf176SNick Mathewson o Improve the speed of evbuffer_readln() (cc1600a)
813f6aaf176SNick Mathewson o more whitespace normalization (2c2618d)
814f6aaf176SNick Mathewson o Revise evbuffer to add last_with_data (2a6d2a1)
815f6aaf176SNick Mathewson o Use last_with_data in place of previous_to_last (c8ac57f)
816f6aaf176SNick Mathewson o Remove previous_to_last from evbuffer (6f47bd1)
817f6aaf176SNick Mathewson o Fix last_with_data compilation on windows (1e7b986)
818f6aaf176SNick Mathewson o Add some glass-box tests for the last_with_data code. (17da042)
819f6aaf176SNick Mathewson o Improve robustness for refcounting (f1bc125)
820f6aaf176SNick Mathewson o Remove a needless min_heap_shift_up_() call (7204b91)
821f6aaf176SNick Mathewson o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4)
822f6aaf176SNick Mathewson o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3)
823f6aaf176SNick Mathewson o Make evbuffer_prepend handle empty buffers better (c87272b)
824f6aaf176SNick Mathewson o Replace last_with_data with a slightly smarter version (b7442f8)
825f6aaf176SNick Mathewson o Turn the increasingly complex *_CHAIN() macros into functions (96865c4)
826f6aaf176SNick Mathewson o Rewrite evbuffer_expand and its users (d5ebcf3)
827f6aaf176SNick Mathewson o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis)
828f6aaf176SNick Mathewson o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6)
829f6aaf176SNick Mathewson o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg)
830f6aaf176SNick Mathewson o Move domain search state to evdns_request. (beaa14a Christopher Davis)
831f6aaf176SNick Mathewson o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f)
832f6aaf176SNick Mathewson o Rename current_base symbol to event_global_current_base_ (c16e684)
833f6aaf176SNick Mathewson o Fix whitespace in evutil.c (935e150)
834f6aaf176SNick Mathewson o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0)
835f6aaf176SNick Mathewson
8362cffd6c9SNick Mathewson
8372cffd6c9SNick Mathewson
83815be0493SNick MathewsonChanges in 2.0.4-alpha (28 Feb 2010):
8393a5cfb0dSNick Mathewson [Autogenerated from the Git log, sorted by hand.]
8403a5cfb0dSNick MathewsonDOCUMENTATION
8413a5cfb0dSNick Mathewson o Add stub header for 2.0.4-alpha changelog. (94d0065)
8423a5cfb0dSNick Mathewson o Improve the README with more information and links. (0b42726)
8433a5cfb0dSNick Mathewson o Add more people who wrote patches to the acknowledgments (0af10d5)
8443a5cfb0dSNick Mathewson o Add a warning about the use of event_initialized. (f32b575)
8453a5cfb0dSNick Mathewson o Add a LICENSE file so people can find our license easily (7067006)
8463a5cfb0dSNick Mathewson o Add a new "hello world" sample program (becb9f9)
8473a5cfb0dSNick Mathewson o Clarify status of example programs (d60a1bd)
8483a5cfb0dSNick Mathewson o Update time-test.c to use event2 (f4190bf)
8493a5cfb0dSNick Mathewson o Add the arc4random.c license to the LICENSE file. (e15e1e9)
8503a5cfb0dSNick Mathewson
8513a5cfb0dSNick MathewsonNEW FEATURES AND INTERFACE CHANGES
8523a5cfb0dSNick Mathewson o Improved optional lock debugging. (0cd3bb9)
8533a5cfb0dSNick Mathewson o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd)
8543a5cfb0dSNick Mathewson o Testing code for bufferevent rate-limiting. (f0c0124)
8553a5cfb0dSNick Mathewson o Make the initial nameserver probe timeout configurable. (1e56a32)
8563a5cfb0dSNick Mathewson o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f)
8573a5cfb0dSNick Mathewson o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379)
8583a5cfb0dSNick Mathewson o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534)
8593a5cfb0dSNick Mathewson o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich)
8603a5cfb0dSNick Mathewson o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666)
8613a5cfb0dSNick Mathewson o Look at the proper /etc/hosts file on windows. (66c02c7)
8623a5cfb0dSNick Mathewson o Allow http connections to use evdns for hostname looksups. (c698b77)
8633a5cfb0dSNick Mathewson o Changelist code to defer event changes until just before dispatch (27308aa)
8643a5cfb0dSNick Mathewson 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)
8653a5cfb0dSNick Mathewson o Functions to access more fields of struct event. (0683950)
8663a5cfb0dSNick Mathewson o Make kqueue use changelists. (45e5ae3)
8673a5cfb0dSNick Mathewson o Remove kqueue->pend_changes. (3225dfb)
8683a5cfb0dSNick Mathewson o Minimize epoll_ctl calls by using changelist (c8c6a89)
8693a5cfb0dSNick Mathewson o Add support for a "debug mode" to try to catch common errors. (cd17c3a)
8703a5cfb0dSNick Mathewson o Note a missing ratelim function (361da8f)
8713a5cfb0dSNick Mathewson o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81)
8723a5cfb0dSNick Mathewson o const-ify a few more functions in event.h (d38a7a1)
8733a5cfb0dSNick Mathewson o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694)
8743a5cfb0dSNick Mathewson o Remove EVUTIL_CHECK_FMT. (6c21c89)
8753a5cfb0dSNick Mathewson 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)
8763a5cfb0dSNick Mathewson o Add the rest of the integer limits, and add a test for them. (60742d5)
8773a5cfb0dSNick Mathewson o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d)
8783a5cfb0dSNick Mathewson o Add an arc4random implementation for use by evdns (d4de062)
8793a5cfb0dSNick Mathewson o Use off_t for the length parameter of evbuffer_add_file (3fe60fd)
8803a5cfb0dSNick Mathewson o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b)
8813a5cfb0dSNick Mathewson o Expose view of current rate limit as constrained by group limit (162ce8a)
8823a5cfb0dSNick Mathewson o Provide consistent, tested semantics for bufferevent timeouts (d328829)
8833a5cfb0dSNick Mathewson
8843a5cfb0dSNick MathewsonBUGFIXES AND TESTS
8853a5cfb0dSNick Mathewson o Tolerate code that returns from a fatal_cb. (91fe23f)
8863a5cfb0dSNick Mathewson o Parenthesize macro arguments more aggressively (07e9e9b)
8873a5cfb0dSNick Mathewson o Fix memory-leak of signal handler array with kqueue. (e1ffbb8)
8883a5cfb0dSNick Mathewson o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7)
8893a5cfb0dSNick Mathewson o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838)
8903a5cfb0dSNick Mathewson o Fix a locking bug in event_base_loop() (da1718b)
8913a5cfb0dSNick Mathewson o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao)
8923a5cfb0dSNick Mathewson o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern)
8933a5cfb0dSNick Mathewson o Fix up evthread compilation on windows (bd6f1ba Roman Puls)
8943a5cfb0dSNick Mathewson o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown)
8953a5cfb0dSNick Mathewson o Update nmake makefile to build evthread.c (b62d979 unknown)
8963a5cfb0dSNick Mathewson o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko)
8973a5cfb0dSNick Mathewson o Fix a snow leopard compile warning in the unit tests. (7ae9445)
8983a5cfb0dSNick Mathewson o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn)
8993a5cfb0dSNick Mathewson o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch)
9003a5cfb0dSNick Mathewson o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones)
9013a5cfb0dSNick Mathewson o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch)
9023a5cfb0dSNick Mathewson o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch)
9033a5cfb0dSNick Mathewson o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527)
9043a5cfb0dSNick Mathewson o Set all instances of the version number correctly. (5a112d3)
9053a5cfb0dSNick Mathewson o Fix a few locking issues on windows. (c51bb3c unknown)
9063a5cfb0dSNick Mathewson o Use evutil_socket_t, not int, when logging socket errors. (292467c)
9073a5cfb0dSNick Mathewson o Fix up behavior of never-defered callbacks a little (390e056)
9083a5cfb0dSNick Mathewson o Replace some cases of uint32_t with ev_uint32_t. (a47d88d)
9093a5cfb0dSNick Mathewson o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen)
9103a5cfb0dSNick Mathewson o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich)
9113a5cfb0dSNick Mathewson o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich)
9123a5cfb0dSNick Mathewson o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich)
9133a5cfb0dSNick Mathewson o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich)
9143a5cfb0dSNick Mathewson o Fix the code that allowed DNS options to not end with : (ee4953f)
9153a5cfb0dSNick Mathewson o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea)
9163a5cfb0dSNick Mathewson o Fix test-ratelim compilation on Linux. (885b427)
9173a5cfb0dSNick Mathewson o Fix compilation of rate-limiting code on win32. (165d30e)
9183a5cfb0dSNick Mathewson o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich)
9193a5cfb0dSNick Mathewson o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6)
9203a5cfb0dSNick Mathewson 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)
9213a5cfb0dSNick Mathewson o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich)
9223a5cfb0dSNick Mathewson 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)
9233a5cfb0dSNick Mathewson o Don't use a bind address for nameservers on loopback (8d4aaf9)
9243a5cfb0dSNick Mathewson o Fix compilation of rate-limit code when threading support is disabled (97a8c79)
9253a5cfb0dSNick Mathewson o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971)
9263a5cfb0dSNick Mathewson o Check more internal event_add() calls for failure (ff3f6cd)
9273a5cfb0dSNick Mathewson o Fix windows and msvc build (5c7a7bc)
9283a5cfb0dSNick Mathewson o Call event_debug_unassign on internal events (a19b4a0)
9293a5cfb0dSNick Mathewson o Try to fix a warning in hash_debug_entry (137f2c6)
9303a5cfb0dSNick Mathewson o Fix a dumb typo in ev_intptr_t definitions. (27c9a40)
9313a5cfb0dSNick Mathewson o do not fail while sending on http connections the client closed. (93d7369)
9323a5cfb0dSNick Mathewson o make evhttp_send() safe against terminated connections, too (3978180)
9333a5cfb0dSNick Mathewson o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield)
9343a5cfb0dSNick Mathewson o Fix some additional -DUNICODE issues on win32. (a7a9431)
9353a5cfb0dSNick Mathewson o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e)
9363a5cfb0dSNick Mathewson o Always use our own gai_strerror() replacement. (6810bdb)
9373a5cfb0dSNick Mathewson o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea)
9383a5cfb0dSNick Mathewson o validate close cb on server when client connection closes (2f782af)
9393a5cfb0dSNick Mathewson o Fix two unlocked reads in evbuffer. (7116bf2)
9403a5cfb0dSNick Mathewson o When working without a current event base, don't try to use IOCP listeners (cb52838)
9413a5cfb0dSNick Mathewson o Fix getpid() usage on Windows (ff2a134)
9423a5cfb0dSNick Mathewson o Add a unit test for secure rng. (48a29b6)
9433a5cfb0dSNick Mathewson o Add some headers to fix freebsd compilation (b72be50)
9443a5cfb0dSNick Mathewson o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9)
9453a5cfb0dSNick Mathewson o Suspend read/write on bufferevents during hostname lookup (db08f64)
9463a5cfb0dSNick Mathewson o Make bufferevent_free() clear all callbacks immediately. (b2fbeb3)
9473a5cfb0dSNick Mathewson o Fix some race conditions in persistent events and event_reinit (e2642f0)
9483a5cfb0dSNick Mathewson o Fix a bug in resetting timeouts on persistent events when IO triggers. (38ec0a7)
9493a5cfb0dSNick Mathewson o Add a test for timeouts on filtering bufferevents. (c02bfe1)
9503a5cfb0dSNick Mathewson o Add test for periodic timers that get activated for other reasons (8fcb7a1)
9513a5cfb0dSNick Mathewson o Use new timeval diff comparison function in bufferevent test (f3dfe46)
9523a5cfb0dSNick Mathewson o Delete stack-alloced event in new unit test before returning. (7ffd387)
9533a5cfb0dSNick Mathewson o Fix mingw compilation (23170a6)
9543a5cfb0dSNick Mathewson o Try to define a sane _EVENT_SIZEOF_SIZE_T for msvc compilation (1e14f82)
9553a5cfb0dSNick Mathewson o Fix arc4random compilation on MSVC. (98edb89)
9563a5cfb0dSNick Mathewson o deal with connect() failing immediately (7bc48bf)
9573a5cfb0dSNick Mathewson o Small cleanups on freebsd-connect-refused patch. (57b7248)
9583a5cfb0dSNick Mathewson
9593a5cfb0dSNick MathewsonBUILD AND DISTRIBUTION CHANGES
9603a5cfb0dSNick Mathewson o Remove the contents of WIN32-Prj as unmaintained. (c69d5a5)
9613a5cfb0dSNick Mathewson o Allow the user to redirect the verbose output of test/test.sh to a file (c382de6)
9623a5cfb0dSNick Mathewson o Allow test.sh to be run as ./test/test.sh (7dfbe94)
9633a5cfb0dSNick Mathewson o Never believe that we have pthreads on win32, even if gcc thinks we do. (78ed097)
9643a5cfb0dSNick Mathewson o Make it compile under gcc --std=c89. (e2ca403)
9653a5cfb0dSNick Mathewson o Fix a number of warnings from gcc -pedantic (918e9c5)
9663a5cfb0dSNick Mathewson o Add the msvc-generated .lib files to .gitignore. (e244a2e)
9673a5cfb0dSNick Mathewson o Add the "compile" script to gitignore. (1ba6bed)
9683a5cfb0dSNick Mathewson
9693a5cfb0dSNick MathewsonINTERNALS AND CODE CLEANUPS
9703a5cfb0dSNick Mathewson o Add a .gitignore file. (ba34071)
9713a5cfb0dSNick Mathewson o New EVTHREAD_TRY_LOCK function to try to grab a lock. (689fc09)
9723a5cfb0dSNick Mathewson o Add the abilitity to mark some buffer callbacks as never-deferred. (438f9ed)
9733a5cfb0dSNick Mathewson o Refactor our 'suspend operation' logic on bufferevents. (0d744aa)
9743a5cfb0dSNick Mathewson o Simplify the read high-watermark checking. (5846bf6)
9753a5cfb0dSNick Mathewson o Improve readability of evutil_unparse_protoname() (5a43df8 Jardel Weyrich)
9763a5cfb0dSNick Mathewson o Expose our cached gettimeofday value with a new interface (47854a8)
9773a5cfb0dSNick Mathewson o Whitespace fixes in test.sh (0b151a9)
9783a5cfb0dSNick Mathewson o Enable branch-prediction hints with EVUTIL_UNLIKELY. (eaaf27f)
9793a5cfb0dSNick Mathewson o Refactor code from evdns into a new internal "read a file" function. (0f7144f)
9803a5cfb0dSNick Mathewson o Comestic changes in evconnlistener_new(), new_accepting_socket(), accepted_socket_invoke_user_cb() and iocp_listener_enable(). (510ab6b Jardel Weyrich)
9813a5cfb0dSNick Mathewson 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)
9823a5cfb0dSNick Mathewson o Fix test.sh on shells without echo -n (94131e9)
9833a5cfb0dSNick Mathewson o More unit tests for getaddrinfo_async: v4timeout and cancel. (a334b31)
9843a5cfb0dSNick Mathewson o Make http use evconnlistener. (ec34533)
9853a5cfb0dSNick Mathewson o move dns utility functions into a separate file so that we can use them for http testing (b822639)
9863a5cfb0dSNick Mathewson o add a test for evhttp_connection_base_new with a dns_base (26714ca)
9873a5cfb0dSNick Mathewson o forgot to add void to test function (78a50fe)
9883a5cfb0dSNick Mathewson o Add a forgotten header (changelist-internal.h) (4b9f307)
9893a5cfb0dSNick Mathewson o Remove some commented-out code in evutil (26e1b6f)
9903a5cfb0dSNick Mathewson o Remove a needless include of rpc_compat.h (70a4a3e)
9913a5cfb0dSNick Mathewson o Use less memory for each entry in a hashtable (a66e947)
9923a5cfb0dSNick Mathewson o Try to untangle the logic in server_port_flush(). (439aea0)
9933a5cfb0dSNick Mathewson o Use ev_[u]intptr_t types in place of [u]intptr_t (cef61a2)
9943a5cfb0dSNick Mathewson o Reduce windows header includes in our own headers. (da6135e)
9953a5cfb0dSNick Mathewson o clean up terminate_chunked test (e8a9782)
9963a5cfb0dSNick Mathewson o Increment the submicro version number. (63e868e)
9973a5cfb0dSNick Mathewson o Update event-config.h version number to match configure.in (aae7db5)
9983a5cfb0dSNick Mathewson o Clean up formatting: Disallow space-before-tab. (8fdf09c)
9993a5cfb0dSNick Mathewson o Clean up formatting: use tabs, not 8-spaces, to indent. (e5bbd40)
10003a5cfb0dSNick Mathewson o Clean up formatting: remove trailing spaces (e5cf987)
10013a5cfb0dSNick Mathewson o Clean up formatting: function/keyword spacing consistency. (4faeaea)
10023a5cfb0dSNick Mathewson
10033a5cfb0dSNick Mathewson
100494d00651SNick Mathewson
100515be0493SNick MathewsonChanges in 2.0.3-alpha (20 Nov 2009):
1006709c21c4SNick Mathewson o Add a new code to support SSL/TLS on bufferevents, using the OpenSSL library (where available).
1007f8b527e6SNick Mathewson o Fix a bug where we didn't allocate enough memory in event_get_supported_methods().
100812199fa7SNick Mathewson o Avoid segfault during failed allocation of locked evdns_base. (Found by Rocco Carbone.)
100972ea534fSNick Mathewson o Export new evutil_ascii_* functions to perform locale-independent character type operations.
10103c99c79dSNick Mathewson o Try to compile better with MSVC: patches from Brodie Thiesfield
101175fe762eSNick Mathewson o New evconnlistener_get_fd function to expose a listener's associated socket.
10127c20a6aeSNick Mathewson o Expose an ev_socklen_t type for consistent use across platforms.
101325af6954SNick Mathewson o Make bufferevent_socket_connect() work when the original fd was -1.
1014d1a2254bSNick Mathewson o Fix a bug in bufferevent_socket_connect() when the connection succeeds too quickly.
1015621aafd2SNick Mathewson o Export an evutil_sockaddr_cmp() to compare to sockaddr objects for equality.
10167c688dd9SNick Mathewson o Add a bufferevent_get_enabled() to tell what a bufferevent has been configured to do.
1017d4134772SNick Mathewson o Add an evbuffer_search_eol() function to locate the end of a line nondestructively.
10187a55c48dSNick Mathewson o Add an evbuffer_search_range() function to search a bounded range of a buffer.
10197a55c48dSNick Mathewson o Fix a rare crash bug in evdns.
10207a55c48dSNick Mathewson o Have bufferevent_socket_connect() with no arguments put a bufferevent into connecting mode.
102122bd5b42SNick Mathewson o Support sendfile on Solaris: patch from Caitlin Mercer.
10222c1b0e44SNick Mathewson o New functions to explicitly reference a socket used by an evhttp object. Patches from David Reiss.
1023f65b8b09SNick Mathewson 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.
10243b461a6dSNick Mathewson 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.
1025e3f89fa2SNick Mathewson 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.
102685255a63SNick Mathewson 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.
1027c2ead9f1SNick Mathewson 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.
102818fe4008SNick Mathewson o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h
10298e8d94a3SNiels Provos o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec
1030d5b640fcSNick Mathewson 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.
1031633f3fb7SNick Mathewson 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.
1032fc83ca3cSNick Mathewson o Fix some bugs when using the old evdns interfaces to initialize the evdns module.
103325af6954SNick Mathewson o Detect errors during bufferevent_connect().  Patch from Christopher Davis.
1034e1c9b84aSNiels Provos o Fix compilation for listener.h for C++ - missing extern "C".  Patch from Ferenc Szalai.
10356b22e74aSNick Mathewson o Make the event_base_loop() family of functions respect thread-safety better.  This should clear up a few hard-to-debug race conditions.
10366b22e74aSNick Mathewson o Fix a bug when using a specialized memory allocator on win32.
1037d8164d0cSNick Mathewson 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.
1038b73ad7bcSNick Mathewson 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.
1039a8267663SNick Mathewson o Add an API to replace all fatal calls to exit() with a user-provided panic function.
10407f10fac3SNick Mathewson o Replace all assert() calls with a variant that is aware of the user-provided logging and panic functions.
1041e9ee1057SNick Mathewson 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.
1042904b5721SNick Mathewson 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.
10430fd0255fSNick Mathewson 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.
10440b9eb1bfSNick Mathewson o Add a new bufferevent_socket_connect_hostname() to encapsulate the resolve-then-connect operation.
10454d48cf61SNick Mathewson o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian.
1046693c24efSNick Mathewson o Alternative queue-based timeout algorithm for programs that use a large number of timeouts with the same value.
1047ab96b5f3SNick Mathewson o New event_base_config option to disable the timeval cache entirely.
1048e88079a8SNick Mathewson 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.
104937e23f80SNick Mathewson o Allow http.c to handle cases where getaddrinfo returns an IPv6 address.  Patch from Ryan Phillips.
105074871cacSNick Mathewson o Fix a problem with excessive memory allocation when using multiple event priorities.
1051629a6133SNick Mathewson o Default to using arc4random for DNS transaction IDs on systems that have it; from OpenBSD.
1052629a6133SNick Mathewson o Never check the environment when we're running setuid or setgid; from OpenBSD.
105372bafc17SNick Mathewson o Options passed to evdns_set_option() no longer need to end with a colon.
105486f57420SNick Mathewson o Add an evutil_getaddrinfo() function to clone getaddrinfo on platforms that don't have it.
105586f57420SNick Mathewson o Add an evdns_getaddrinfo() function to provide a nonblocking getaddrinfo using evdns, so programs can perform useful hostname lookup.
1056bdfe72f3SNick Mathewson 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.
1057bdfe72f3SNick Mathewson o Numerous other bugfixes.
1058b8f222e0SNiels Provos o On FreeBSD and other OSes, connect can return ECONREFUSED immediately; instead of failing the function call, pretend with faileld in the callback.
1059986500deSNiels Provos o Fix a race condition in the pthreads test case; found by Nick Mathewson
1060f1691539SNiels Provos o Remove most calls to event_err() in http and deal with memory errors instead
1061709c21c4SNick Mathewson
106215be0493SNick Mathewson
106315be0493SNick Mathewson
106415be0493SNick MathewsonChanges in 2.0.2-alpha (25 Jul 2009):
1065a98a512bSNick Mathewson o Add a new flag to bufferevents to make all callbacks automatically deferred.
1066b7907a7bSNick Mathewson o Make evdns functionality locked, and automatically defer dns callbacks.
1067d3fbe7faSNick Mathewson o Fix a possible free(NULL) when freeing an event_base with no signals.
106801bda2b8SNick Mathewson o Add a flag to disable checking environment varibles when making an event_base
1069253151c5SNick Mathewson o Disallow setting less than 1 priority.
10708b7a3b36SNick Mathewson o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen]
1071df0617f2SNick Mathewson o Use signal.h, not sys/signal.h. [Patch from mmadia]
10729516df0eSNick Mathewson o Try harder to build with certain older c99 compilers.
1073faa756c7SNick Mathewson o Make sure that an event_config's flags field is always initialized to 0. [Bug report from Victor Goya]
1074a5897917SNick Mathewson o Avoid data corruption when reading data entirely into the second-to-last chain of an evbuffer. [Bug report from Victor Goya]
10755c4c13d8SNiels Provos o Make sendfile work on FreeBSD
1076b228ff91SNiels Provos 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.
10772ebfd3baSNick Mathewson o Actually define the event_config_set_flag() function.
1078a109d95cSNick Mathewson o Try harder to compile with Visual C++.
1079d5ca0763SNick Mathewson o Move event_set() and its allies to event2/event_compat.h where they belong.
10800e63e72aSNick Mathewson o Remove the event_gotsig code, which has long been deprecated and unused.
10810fd70978SNick Mathewson o Add an event_get_base() function to return the base assigned to an event.
1082659d54d5SNick Mathewson o New function to automate connecting on a socket-based bufferevent.
1083659d54d5SNick Mathewson o New functions to automate listening for incoming TCP connections.
1084f11dff2cSNick Mathewson o Do case-insensitive checks with a locale-independent comparison function.
108583f46e51SNick Mathewson 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.
108683f46e51SNick Mathewson 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.
108783f46e51SNick Mathewson o Move the EVBUFFER_INPUT and EVBUFFER_OUTPUT macros to bufferevent_compat.h
108831d89f27SNick Mathewson o Add a bufferevent_getfd() function to mirror bufferevent_setfd()
108931d89f27SNick Mathewson o Make bufferevent_setfd() return an error code if the operation is not successful.
1090b4886ec8SNick Mathewson 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.
1091b4886ec8SNick Mathewson o Cap the maximum number of priorities at 256.
1092bba69e03SNick Mathewson 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.
1093dc4c7b95SNick Mathewson o Change the interface of evbuffer_add_reference so that the cleanup callback gets more information
109466df9dafSNick Mathewson 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.
109566df9dafSNick Mathewson o Add a new evbuffer_peek() interface to inspect data in an evbuffer without removing it.
109659484297SNick Mathewson o Fix a deadlock when suspending reads in a bufferevent due to a full buffer. (Spotted by Joachim Bauch.)
109759cd4936SNick Mathewson o Fix a memory error when freeing a thread-enabled event base with registered events. (Spotted by Joachim Bauch.)
10988c66eb2eSNick Mathewson o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair.
1099cdaca02cSNick Mathewson 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).
1100342ad355SNick Mathewson o Replace some read()/write() instances with send()/recv() to work properly on win32.
1101342ad355SNick Mathewson o Set truncated flag correctly in evdns server replies.
110237d3e16cSNiels Provos o Raise RpcGenError in event_rpcgen.py; from jmanison and Zack Weinberg
1103bbcc54efSNiels Provos o Fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg.
1104fbb181d1SNiels Provos o Allow specifying the output filename for rpcgen; based on work by jmansion; patch from Zack Weinberg.
11056469598eSNiels Provos o Allow C identifiers as struct names; allow multiple comments in .rpc files; from Zack Weinberg
1106a501d683SNick Mathewson o Mitigate a race condition when using socket bufferevents in multiple threads.
1107d3a8ccb8SNick Mathewson o Use AC_SEARCH_LIBS, not AC_CHECK_LIB to avoid needless library use.
11086b4b77a2SNick Mathewson 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.
11099fcd84d1SNick Mathewson o event_get_supported_methods() now lists methods that have been disabled with the EVENT_NO* environment options.
1110e8400a43SNick Mathewson 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.
1111a98a512bSNick Mathewson
111215be0493SNick Mathewson
111315be0493SNick Mathewson
111415be0493SNick MathewsonChanges in 2.0.1-alpha (17 Apr 2009):
1115d50afbb3SNiels Provos o free minheap on event_base_free(); from Christopher Layne
111656934d5dSNiels Provos o debug cleanups in signal.c; from Christopher Layne
1117f586f428SNiels Provos o provide event_base_new() that does not set the current_base global
1118af6f331aSNiels Provos o bufferevent_write now uses a const source argument; report from Charles Kerr
111970248ca8SNick Mathewson o improve documentation on event_base_loopexit; patch from Scott Lamb
11201c23e219SNick Mathewson 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
1121d1ad9403SNick Mathewson o Check return value of event_add in signal.c
112288897852SNiels Provos o provide event_reinit() to reintialize an event_base after fork
11237eb250e9SNick Mathewson 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.
11242823cb05SNick Mathewson 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.
11252823cb05SNick Mathewson o The kqueue implementation now restores original signal handlers correctly when its signal events are removed.
1126fa95fe46SNick Mathewson o Check return value of event_add in signal.c
1127cbf9cfdfSNick Mathewson 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.
11281120f04fSNick Mathewson o Do not mangle socket handles on 64-bit windows.
1129ce4ee418SNick Mathewson o The configure script now takes an --enable-gcc-warnigns 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.)
11305f3e3159SNiels Provos o move EV_PERSIST handling out of the event backends
1131f175befaSNiels Provos o small improvements to evhttp documentation
113274b3db50SNiels Provos o always generate Date and Content-Length headers for HTTP/1.1 replies
11335482192bSNick Mathewson o set the correct event base for HTTP close events
11343206bbcaSNick Mathewson o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions.
11352e2104f4SNick Mathewson o Rewrite win32.c backend to be O(n lg n) rather than O(n^2).
1136e8b916c3SNiels Provos o Removed obsoleted recalc code
1137ba487199SNiels Provos o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly.
11383b345f3eSNiels Provos 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.
1139ffd606cdSNiels Provos o prefix {encode,decode}_tag functions with evtag to avoid collisions
114085053473SNiels Provos o fix a bug with event_rpcgen for integers
11417ab26a2cSNick Mathewson o Correctly handle DNS replies with no answers set (Fixes bug 1846282)
1142d4bdbca8SNiels Provos o add -Wstrict-aliasing to warnings and more cleanup
1143fdafb66bSNiels Provos o removed linger from http server socket; reported by Ilya Martynov
114468725dc8SNiels Provos o event_rpcgen now allows creating integer arrays
11457e3a7af7SNiels Provos o support string arrays in event_rpcgen
1146819d4a33SNiels Provos 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.
1147955c6abfSNiels Provos o allow an http request callback to take ownership of a request structure
11485a5609c7SNiels Provos o allow association of meta data with RPC requests for hook processing
11492460aa59SNiels Provos o associate more context for hooks to query such as the connection object
11508c66d4e2SNiels Provos o remove pending timeouts on event_base_free()
11516baff522SNiels Provos o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards
1152f38aec8bSNiels Provos o devpoll and evport need reinit; tested by W.C.A Wijngaards
11538ab61891SNiels Provos o event_base_get_method; from Springande Ulv
1154677a9586SNick Mathewson o Send CRLF after each chunk in HTTP output, for compliance with RFC2626.  Patch from "propanbutan".  Fixes bug 1894184.
1155807ab182SNick Mathewson o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values.
1156d47907a7SNick Mathewson o Use a 64-bit field to hold HTTP content-lengths.  Patch from Scott Lamb.
115723ef0d09SNiels Provos o Allow regression code to build even without Python installed
1158506d4dbcSNiels Provos o remove NDEBUG ifdefs from evdns.c
115911230f7eSNick Mathewson o detect integer types properly on platforms without stdint.h
116087bef9e9SNiels Provos o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa.
116167bf29adSNiels Provos o simplify evbuffer by removing orig_buffer
1162bb914ed9SNiels Provos o do not insert event into list when evsel->add fails
1163b14cd655SNiels Provos o add support for PUT/DELETE requests; from Josh Rotenberg
11640b114da2SNiels Provos o introduce evhttp_accept_socket() to accept from an already created socket
1165960be588SNiels Provos o include Content-Length in reply for HTTP/1.0 requests with keep-alive
11667470ce52SNiels Provos 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.
1167e7ad5493SNick Mathewson o Patch from Tani Hosokawa: make some functions in http.c threadsafe.
1168eb9b9580SNiels Provos o test support for PUT/DELETE requests; from Josh Rotenberg
11695c70ea4cSNiels Provos o rewrite of the evbuffer code to reduce memory copies
117069717730SNick Mathewson o Some older Solaris versions demand that _REENTRANT be defined to get strtok_r(); do so.
117119dad166SNiels Provos o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin
1172558de9b3SNiels Provos o Provide OpenSSL style support for multiple threads accessing the same event_base
1173d5c15b2eSNiels Provos o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks.
1174c182bacaSNiels Provos o switch thread support so that locks get allocated as they are needed.
1175ca42671aSNiels Provos o make event methods static so that they are not exported; from Andrei Nigmatulin
11768920ac4dSNiels Provos o make RPC replies use application/octet-stream as mime type
11773ef1f504SNiels Provos o do not delete uninitialized timeout event in evdns
11780c843507SNick Mathewson o Correct the documentation on buffer printf functions.
117944ceb945SNick Mathewson o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select.
1180f9f4d4feSNick Mathewson 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.
1181fc41ffdeSNick Mathewson o Make name_from_addr() threadsafe in http.c
1182e688a88aSNick Mathewson o Add new thread-safe interfaces to evdns functions.
11838d2a6160SNick Mathewson o Make all event_tagging interfaces threadsafe.
118449868b61SNick Mathewson o Rename internal memory management functions.
118594fb4d0aSNick Mathewson 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.
118689f63b20SNiels Provos o introduce bufferevent_read_buffer; allows reading without memory copy.
11873278012fSNiels Provos o expose bufferevent_setwatermark via header files and fix high watermark on read
11883a17aeedSNiels Provos o fix a bug in buffrevent read water marks and add a test for them
1189f6c40173SNiels Provos o fix a bug in which bufferevent_write_buffer would not schedule a write event
1190dd183f7cSNiels Provos o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure
11919485ff9aSNiels Provos o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents
1192e44ef375SNiels Provos o convert evhttp_connection to use bufferevents.
11939626a421SNick Mathewson o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy.
119498dc98c5SNick Mathewson o Remove the never-exported, never-used evhttp_hostportfile function.
1195682adc44SNiels Provos 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.
119685c4904bSNiels Provos o allow connections to be removed from an rpc pool
11975fbc7f0aSNick Mathewson 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
11985fbc7f0aSNick Mathewson o switch internal uses of event_set over to use event_assign.
1199becc89b7SNiels Provos o introduce evbuffer_contiguous_space() api that tells a user how much data is available in the first buffer chain
1200f04497e4SNiels Provos o introduce evbuffer_reserve_space() and evbuffer_commit_space() to make processing in filters more efficient.
120145e6fb0dSNiels Provos o reduce system calls for getting current time by caching it.
12028c750eafSNiels Provos o separate signal events from io events; making the code less complex.
12031d30750bSNiels Provos o support for periodic timeouts
1204f2a81fbcSNiels Provos o support for virtual HTTP hosts.
1205d0c3644eSNick Mathewson 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
120668fecb7aSNick Mathewson o Build test directory correctly with CPPFLAGS set.
12073b2022efSNiels Provos o Provide an API for retrieving the supported event mechanisms.
12083f56e364SNiels Provos o event_base_new_with_config() and corresponding config APIs.
1209de1c4392SNiels Provos o migrate the evhttp header to event2/ but accessors are still missing.
121085ed7133SNiels Provos o deprecate timeout_* event functions by moving them to event_compat.h
1211a26442c5SNick Mathewson o Move	windows gettimeofday replacement into a new evutil_gettimeofday().
121264ce7990SNick Mathewson o Make configure script work on IRIX.
12131080852eSNiels Provos o provide a method for canceling ongoing http requests.
1214c6da86ffSNick Mathewson o Make vsnprintf() returns consistent on win32.
1215ec3956baSNiels Provos o Fix connection keep-alive behavior for HTTP/1.0
1216134344b7SNiels Provos o Fix use of freed memory in event_reinit; pointed out by Peter Postma
12178b66f1bdSNiels Provos o constify struct timeval * where possible
12182deb3ce0SNiels Provos o make event_get_supported_methods obey environment variables
121939400e68SNick Mathewson o support for edge-triggered events on epoll and kqueue backends: patch from Valery Kholodkov
122005965921SNick Mathewson o support for selecting event backends by their features, and for querying the features of a backend.
122105965921SNick Mathewson 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.
1222344c2b56SNiels Provos 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.
1223a6ce520cSNiels Provos o allow min_heap_erase to be called on removed members; from liusifan.
12242baaac7fSNick Mathewson o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT.  Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility.
12254c56ba1cSNiels Provos o Do not use SO_REUSEADDR when connecting
122699a1063eSNiels Provos o Support 64-bit integers in RPC structs
12279998c0cbSNiels Provos o Correct handling of trailing headers in chunked replies; from Scott Lamb.
1228cb7c3bd6SNiels Provos o Support multi-line HTTP headers; based on a patch from Moshe Litvin
1229707f6784SNiels Provos o Reject negative Content-Length headers; anonymous bug report
1230409236a7SNiels Provos o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report
1231df97fca9SNiels Provos o Various HTTP correctness fixes from Scott Lamb
12325512be01SNiels Provos o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail
1233c4af6211SNiels Provos 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.
1234e67a5ea9SNiels Provos o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov.
12351aa6826fSNiels Provos o Fix off-by-one errors in devpoll; from Ian Bell
1236cca2f8faSNiels Provos o Make event_add not change any state if it fails; reported by Ian Bell.
1237c968eb3eSNiels Provos o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me.
1238a710d817SNiels Provos o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov.
1239de069b99SNick Mathewson o Add new utility functions to correctly observe and log winsock errors.
1240b3d6a569SNiels Provos o Do not remove Accept-Encoding header
124131cfe526SNiels Provos o Clear the timer cache on entering the event loop; reported by Victor Chang
124250202d75SNiels Provos o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez
12435792d42fSNiels Provos o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones.
12444fe25cefSNiels Provos o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn
12454fa4a562SNiels Provos o Fix a typo in setting the global event base; reported by lance.
1246dd731685SNick Mathewson 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.
1247f700566cSNiels Provos o Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it.
124802b2b4d1SNiels Provos 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.
12490d9d5cfeSNick Mathewson o Add generic implementations for parsing and emiting IPv6 addresses on platforms that do not have inet_ntop and/or inet_pton.
1250135591aeSNick Mathewson o Allow DNS servers that have IPv6 addresses.
125199db0e7fSNick Mathewson o Add an evbuffer_write_atmost() function to write a limited number of bytes to an fd.
1252a5901991SNick Mathewson o Refactor internal notify-main-thread logic to prefer eventfd to pipe, then pipe to socketpair, and only use socketpairs as a last resort.
1253f6eb1f81SNick Mathewson o Try harder to pack all evbuffer reads into as few chains as possible, using readv/WSARecv as appropriate.
1254309fc7c4SNick Mathewson o New evthread_use_windows_threads() and evthread_use_pthreads() functions to set up the evthread callbacks with reasonable defaults.
125556ea4687SNiels Provos o Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted.
1256fdf69493SNiels Provos o sendfile, mmap and memory reference support for evbuffers.
1257c7b2f8fdSNick Mathewson o New evutil_make_listen_socket_reuseable() to abstract SO_REUSEADDR.
125877c80b8dSNick Mathewson o New bind-to option to allow DNS clients to bind to an arbitrary port for outgoing requests.
1259747331d1SNick Mathewson o evbuffers can now be "frozen" to prevent operations at one or both ends.
126072b6ffe8SNick Mathewson o Bufferevents now notice external attempts to add data to an inbuf or remove it from an outbuf, and stop them.
1261ce146eb1SNiels Provos o Fix parsing of queries where the encoded queries contained \r, \n or +
1262e3d82497SNick Mathewson o Do not allow internal events to starve lower-priority events.
12631aa6826fSNiels Provos
1264d50afbb3SNiels ProvosChanges in 1.4.0:
126511a0a9e4SNiels Provos o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
1266ff9e1af6SNiels Provos o demote most http warnings to debug messages
12679c3ac4e4SNick Mathewson o Fix Solaris compilation; from Magne Mahre
12688d5ef326SNick Mathewson o Add a "Date" header to HTTP responses, as required by HTTP 1.1.
126998f9616bSNiels Provos o Support specifying the local address of an evhttp_connection using set_local_address
1270e2f56411SNiels Provos o Fix a memory leak in which failed HTTP connections whould not free the request object
1271babd622fSNiels Provos o Make adding of array members in event_rpcgen more efficient, but doubling memory allocation
12727c66bf33SNiels Provos o Fix a memory leak in the DNS server
1273c396c767SNick Mathewson o Fix compilation when DNS_USE_OPENSSL_FOR_ID is enabled
12748b392549SNick Mathewson o Fix buffer size and string generation in evdns_resolve_reverse_ipv6().
127582153e6eSNick Mathewson o Respond to nonstandard DNS queries with "NOTIMPL" rather than by ignoring them.
127682153e6eSNick Mathewson o In DNS responses, the CD flag should be preserved, not the TC flag.
1277b835ee08SNiels Provos o Fix http.c to compile properly with USE_DEBUG; from Christopher Layne
1278bfd27f58SNick Mathewson o Handle NULL timeouts correctly on Solaris; from Trond Norbye
1279bfd27f58SNick Mathewson o Recalculate pending events properly when reallocating event array on Solaris; from Trond Norbye
12807135ffb6SNick Mathewson o Add Doxygen documentation to header files; from Mark Heily
1281626cc5f9SNick Mathewson o Add a evdns_set_transaction_id_fn() function to override the default
1282626cc5f9SNick Mathewson   transaction ID generation code.
128325007183SNick Mathewson o Add an evutil module (with header evutil.h) to implement our standard cross-platform hacks, on the theory that somebody else would like to use them too.
12848b256b8eSNick Mathewson o Fix signals implementation on windows.
12858b256b8eSNick Mathewson o Fix http module on windows to close sockets properly.
12865a0d671fSNick Mathewson o Make autogen.sh script run correctly on systems where /bin/sh isn't bash. (Patch from Trond Norbye, rewritten by Hagne Mahre and then Hannah Schroeter.)
1287f4c84e86SNick Mathewson o Skip calling gettime() in timeout_process if we are not in fact waiting for any events. (Patch from Trond Norbye)
12881e1f77c5SNick Mathewson o Make test subdirectory compile under mingw.
1289db43c1e1SNick Mathewson o Fix win32 buffer.c behavior so that it is correct for sockets (which do not like ReadFile and WriteFile).
12904ed48673SNick Mathewson o Make the test.sh script run unit tests for the evpoll method.
12914ed48673SNick Mathewson o Make the entire evdns.h header enclosed in "extern C" as appropriate.
1292bc7b7c24SNick Mathewson o Fix implementation of strsep on platforms that lack it
129349ede3beSNick Mathewson o Fix implementation of getaddrinfo on platforms that lack it; mainly, this will make Windows http.c work better.  Original patch by Lubomir Marinov.
129418ac9248SNiels Provos o Fix evport implementation: port_disassociate called on unassociated events resulting in bogus errors; more efficient memory management; from Trond Norbye and Prakash Sangappa
129565236aa8SNiels Provos o support for hooks on rpc input and output; can be used to implement rpc independent processing such as compression or authentication.
129630ae40ccSNiels Provos o use a min heap instead of a red-black tree for timeouts; as a result finding the min is a O(1) operation now; from Maxim Yegorushkin
12971d3a008aSNiels Provos o associate an event base with an rpc pool
129888173102SNiels Provos o added two additional libraries: libevent_core and libevent_extra in addition to the regular libevent.  libevent_core contains only the event core whereas libevent_extra contains dns, http and rpc support
12991bcb112bSNick Mathewson o Begin using libtool's library versioning support correctly.  If we don't mess up, this will more or less guarantee binaries linked against old versions of libevent continue working when we make changes to libevent that do not break backward compatibility.
1300d7d91461SNick Mathewson o Fix evhttp.h compilation when TAILQ_ENTRY is not defined.
1301bbed0954SNiels Provos o Small code cleanups in epoll_dispatch().
130281802bf9SNick Mathewson o Increase the maximum number of addresses read from a packet in evdns to 32.
1303e9564eceSNick Mathewson o Remove support for the rtsig method: it hasn't compiled for a while, and nobody seems to miss it very much.  Let us know if there's a good reason to put it back in.
13047c507668SNick Mathewson o Rename the "class" field in evdns_server_request to dns_question_class, so that it won't break compilation under C++.  Use a macro so that old code won't break.  Mark the macro as deprecated.
1305bab0e6d4SNick Mathewson o Fix DNS unit tests so that having a DNS server with broken IPv6 support is no longer cause for aborting the unit tests.
1306206d4336SNick Mathewson o Make event_base_free() succeed even if there are pending non-internal events on a base.  This may still leak memory and fds, but at least it no longer crashes.
1307f74e7258SNick Mathewson o Post-process the config.h file into a new, installed event-config.h file that we can install, and whose macros will be safe to include in header files.
1308f74e7258SNick Mathewson o Remove the long-deprecated acconfig.h file.
1309f74e7258SNick Mathewson o Do not require #include <sys/types.h> before #include <event.h>.
1310f74e7258SNick Mathewson o Add new evutil_timer* functions to wrap (or replace) the regular timeval manipulation functions.
131192cd548fSNick Mathewson o Fix many build issues when using the Microsoft C compiler.
1312cabcd62fSNick Mathewson o Remove a bash-ism in autogen.sh
1313321dfd55SNick Mathewson o When calling event_del on a signal, restore the signal handler's previous value rather than setting it to SIG_DFL. Patch from Christopher Layne.
13144a1a2e0dSNiels Provos o Make the logic for active events work better with internal events; patch from Christopher Layne.
13153742868aSNiels Provos o We do not need to specially remove a timeout before calling event_del; patch from Christopher Layne.
1316