xref: /libevent-2.1.12/ChangeLog (revision 57cbfcd6)
1*57cbfcd6SNick MathewsonChanges in version 2.1.3-alpha (1 May 2013)
2e6cdd17bSNick Mathewson
3e6cdd17bSNick Mathewson Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans
4e6cdd17bSNick Mathewson up the code in a couple of places. It has a new callback in evhttp for
5e6cdd17bSNick Mathewson reporting errors during a request, a new feature for allowing evdns to
6e6cdd17bSNick Mathewson not keep the event_base looping when there are no requests inflight, and
7e6cdd17bSNick Mathewson example code for writing an https client.
8e6cdd17bSNick Mathewson
9e6cdd17bSNick Mathewson Libevent 2.1.3-alpha also has an important new (experimental) event
10e6cdd17bSNick Mathewson finalization feature to allow safe event teardown in multithreaded
11e6cdd17bSNick Mathewson programs. This ought to fix the longstanding bug with deadlocks in
12e6cdd17bSNick Mathewson multithreaded use of SSL-based bufferevents that some people have been
13e6cdd17bSNick Mathewson experiencing since Libevent 2.0.
14e6cdd17bSNick Mathewson
15e6cdd17bSNick Mathewson
16e6cdd17bSNick Mathewson Core (event finalization)
17e6cdd17bSNick Mathewson   o Implement event_finalize() and related functions to avoid certain
18e6cdd17bSNick Mathewson     deadlocks (8eedeab)
19e6cdd17bSNick Mathewson   o Use finalization feature so bufferevents can avoid deadlocks (02fbf68)
20e6cdd17bSNick Mathewson   o Always run pending finalizers when event_base_free() is called (e9ebef8)
21e6cdd17bSNick Mathewson   o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a)
22e6cdd17bSNick Mathewson   o More documentation for finalization feature (a800b91)
23e6cdd17bSNick Mathewson   o Make the event_finalize* functions return an error code (5d11f4f)
24e6cdd17bSNick Mathewson   o Mark the finalize stuff as experiemental in case it needs to
25e6cdd17bSNick Mathewson     change (23e2e29)
26e6cdd17bSNick Mathewson
27e6cdd17bSNick Mathewson Evdns
28e6cdd17bSNick Mathewson   o evdns: New flag to make evdns not prevent the event loop from
29e6cdd17bSNick Mathewson     exiting (6b7fa62 Azat Khuzhin)
30e6cdd17bSNick Mathewson
31e6cdd17bSNick Mathewson Bugfixes (Core)
32e6cdd17bSNick Mathewson   o Make event_remove_timer behave correctly with persistent timers (5623e80)
33e6cdd17bSNick Mathewson   o Unit test for event_remove_timer with EV_PERSIST. (96150dd)
34e6cdd17bSNick Mathewson   o Double-check next timeout when adding events (9443868 Nate Rosenblum)
35e6cdd17bSNick Mathewson   o event_base_update_cache_time should be a no-op if the loop isn't
36e6cdd17bSNick Mathewson     running (5e6fa2a)
37e6cdd17bSNick Mathewson
38e6cdd17bSNick Mathewson Bugfixes (evhttp, crash fix, from 2.0)
39e6cdd17bSNick Mathewson   o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel)
40e6cdd17bSNick Mathewson
41e6cdd17bSNick Mathewson Bugfixes (compilation and portability, from 2.0)
42e6cdd17bSNick Mathewson   o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
43e6cdd17bSNick Mathewson   o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
44e6cdd17bSNick Mathewson   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
45e6cdd17bSNick Mathewson     (74d4c44 Kevin Bowling)
46e6cdd17bSNick Mathewson   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake
47e6cdd17bSNick Mathewson     1.13 compat (817ea36)
48e6cdd17bSNick Mathewson   o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
49e6cdd17bSNick Mathewson   o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
50e6cdd17bSNick Mathewson
51e6cdd17bSNick Mathewson Bugfixes (resource leaks/lock errors on error, from 2.0)
52e6cdd17bSNick Mathewson   o Avoid leaking fds on evconnlistener with no callback set (69db261)
53e6cdd17bSNick Mathewson   o Avoid double-close on getsockname error in evutil_ersatz_socketpair
54e6cdd17bSNick Mathewson     (0a822a6)
55e6cdd17bSNick Mathewson   o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
56e6cdd17bSNick Mathewson
57e6cdd17bSNick Mathewson Documentation Fixes (from 2.0)
58e6cdd17bSNick Mathewson   o Fix a mistake in evbuffer_remove() arguments in example http server code
59e6cdd17bSNick Mathewson     (c322c20 Gyepi Sam)
60e6cdd17bSNick Mathewson   o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
61e6cdd17bSNick Mathewson
62e6cdd17bSNick Mathewson Documentation Fixes
63e6cdd17bSNick Mathewson   o minor documentation typos (809586a Patrick Pelletier)
64e6cdd17bSNick Mathewson   o Fix cut-and-paste err in whatsnew-2.1 (49905ac)
65e6cdd17bSNick Mathewson   o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian
66e6cdd17bSNick Mathewson     Hahn)
67e6cdd17bSNick Mathewson   o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke)
68e6cdd17bSNick Mathewson   o fix some hinky indentation in evhttp_make_request (80e220e Patrick
69e6cdd17bSNick Mathewson     Pelletier)
70e6cdd17bSNick Mathewson   o "buffer" spelling (a452811 Patrick Pelletier)
71e6cdd17bSNick Mathewson   o Specify return behavior in header for evbuffer_pullup() in corner case
72e6cdd17bSNick Mathewson     (cf8d1cd Dan Petro)
73e6cdd17bSNick Mathewson   o Clarify an important point about event_base_foreach_event() (920a5e6)
74e6cdd17bSNick Mathewson
75e6cdd17bSNick Mathewson Compilation Fixes/Tool Support
76e6cdd17bSNick Mathewson   o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick
77e6cdd17bSNick Mathewson     Pelletier)
78e6cdd17bSNick Mathewson   o Fix harmless clang enum warning (b452a43 Sebastian Hahn)
79e6cdd17bSNick Mathewson   o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick
80e6cdd17bSNick Mathewson     Pelletier)
81e6cdd17bSNick Mathewson   o Make --disable-libevent-regress work again (787fd74)
82e6cdd17bSNick Mathewson   o Do not build strlcpy.c when it will have no code. (4914620)
83e6cdd17bSNick Mathewson
84e6cdd17bSNick Mathewson Portability Fixes
85e6cdd17bSNick Mathewson   o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff)
86e6cdd17bSNick Mathewson   o Preliminary changes for Minix3. (0dda56a Nicholas Heath)
87e6cdd17bSNick Mathewson   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13
88e6cdd17bSNick Mathewson     compat (bf278b)
89e6cdd17bSNick Mathewson   o Avoid using $(top_srcdir) in TESTS. (2863c83)
90e6cdd17bSNick Mathewson   o build test/test-script.sh on systems with a less-featureful $< (f935e21)
91e6cdd17bSNick Mathewson   o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d)
92e6cdd17bSNick Mathewson
93e6cdd17bSNick Mathewson Evhttp changes:
94e6cdd17bSNick Mathewson   o Fix ipv6 support for http. When URL contain domain, not IP
95e6cdd17bSNick Mathewson     address. (71e709c Azat Khuzhin)
96e6cdd17bSNick Mathewson   o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat
97e6cdd17bSNick Mathewson     Khuzhin)
98e6cdd17bSNick Mathewson   o uri decode: changed the test for the existence of the next character
99e6cdd17bSNick Mathewson     (e1903e3 Azat Khuzhin)
100e6cdd17bSNick Mathewson   o Move prototype of evhttp_decode_uri_internal() to http-internal.h
101e6cdd17bSNick Mathewson     (de8101a Azat Khuzhin)
102e6cdd17bSNick Mathewson   o Test: decoding just part of string with evhttp_decode_uri_internal()
103e6cdd17bSNick Mathewson     (1367653 Azat Khuzhin)
104e6cdd17bSNick Mathewson   o Add new error_cb for actual reporting of HTTP request errors. (7b07719
105e6cdd17bSNick Mathewson     Azat Khuzhin)
106e6cdd17bSNick Mathewson   o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217
107e6cdd17bSNick Mathewson     Azat Khuzhin)
108e6cdd17bSNick Mathewson   o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin)
109e6cdd17bSNick Mathewson
110e6cdd17bSNick Mathewson Testing
111e6cdd17bSNick Mathewson   o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin)
112e6cdd17bSNick Mathewson   o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug
113e6cdd17bSNick Mathewson     mode (2fad0f3)
114e6cdd17bSNick Mathewson   o Add a test with an active_later event at event_base_free time. (1c3147f)
115e6cdd17bSNick Mathewson   o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f)
116e6cdd17bSNick Mathewson   o Add some verbose notes to bufferevent unit tests (9d893c9)
117e6cdd17bSNick Mathewson   o New test for active_later->active transition on event_active (a153874)
118e6cdd17bSNick Mathewson   o New tests for event_base_foreach_event() (0b096ef)
119e6cdd17bSNick Mathewson   o Unit tests for event_base_gettimeofday_cached() and
120e6cdd17bSNick Mathewson     event_base_update_cache_time() (30ea291)
121e6cdd17bSNick Mathewson   o A test for event_get_assignment() (f09629e)
122e6cdd17bSNick Mathewson   o More unit tests for initializing common timeouts. (d596739)
123e6cdd17bSNick Mathewson   o Fix a bug in the new main/event_foreach test (702c9aa)
124e6cdd17bSNick Mathewson
125e6cdd17bSNick Mathewson Windows:
126e6cdd17bSNick Mathewson   o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af
127e6cdd17bSNick Mathewson     Patrick Pelletier)
128e6cdd17bSNick Mathewson   o a program to print out the error strings for winsock errors (7296512
129e6cdd17bSNick Mathewson     Patrick Pelletier)
130e6cdd17bSNick Mathewson   o Fix a warning introduced in 0c6ec5d8 (eeb700c)
131e6cdd17bSNick Mathewson   o Fix another warning introduced in 0c6ec5d8 (ed26561)
132e6cdd17bSNick Mathewson
133e6cdd17bSNick Mathewson Examples (http)
134e6cdd17bSNick Mathewson   o Add sample/https-client.c, an example of stacking evhttp as a client on
135e6cdd17bSNick Mathewson     top of bufferevent_ssl. (be46c99 Catalin Patulea)
136e6cdd17bSNick Mathewson   o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier)
137e6cdd17bSNick Mathewson   o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick
138e6cdd17bSNick Mathewson     Pelletier)
139e6cdd17bSNick Mathewson   o better handling of OpenSSL errors (5754d96 Patrick Pelletier)
140e6cdd17bSNick Mathewson   o use Debian's default root certificate location (aacd674 Patrick Pelletier)
141e6cdd17bSNick Mathewson   o use iSECPartners code to validate hostname in certificate (64d9f16
142e6cdd17bSNick Mathewson     Patrick Pelletier)
143e6cdd17bSNick Mathewson   o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5
144e6cdd17bSNick Mathewson     Patrick Pelletier)
145e6cdd17bSNick Mathewson   o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier)
146e6cdd17bSNick Mathewson   o Another tweak to https-client.c (95acdaa)
147e6cdd17bSNick Mathewson   o Remove http_struct.h usage in sample/https-client.c (8a90a85)
148e6cdd17bSNick Mathewson
14940b95ae2SNick Mathewson
15040b95ae2SNick Mathewson
151143cb613SNick MathewsonChanges in version 2.1.2-alpha (18 Nov 2012)
152143cb613SNick Mathewson
153143cb613SNick Mathewson Libevent 2.1.2-alpha includes more portable for monotonic timers,
154143cb613SNick Mathewson refactors much of Libevent's internal and external infrastructure,
155143cb613SNick Mathewson closes some longstanding gaps in the interface, makde other
156143cb613SNick Mathewson improvements.  Ths log below tries to organize features by rough area of
157143cb613SNick Mathewson effect.  It omits a few commits which were pure bugfixes on other commits
158143cb613SNick Mathewson listed below.  For more detail, see the git changelogs.  For more
159143cb613SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent
160143cb613SNick Mathewson 2.1.2-alpha distribution.
161143cb613SNick Mathewson
162143cb613SNick Mathewson Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable
163143cb613SNick Mathewson through 2.0.21-stable inclusive.
164143cb613SNick Mathewson
165143cb613SNick Mathewson Performance (core):
166143cb613SNick Mathewson   o Replace pipe-based notification with EVFILT_USER where possible. This
167143cb613SNick Mathewson     should make multithreaded programs on OSX and *BSD alert the main thread a
168143cb613SNick Mathewson     little faster. (53a07fe)
169143cb613SNick Mathewson   o Make th_base_lock nonrecursive. (9cd5acb)
170143cb613SNick Mathewson
171143cb613SNick Mathewson New/Changed API Functions:
172143cb613SNick Mathewson   o New event_get_priority() function to return an event's priority (f90e255)
173143cb613SNick Mathewson   o Add a bufferevent_get_priority() function (bd39554)
174143cb613SNick Mathewson   o Add an event_base_loopcontinue() to tell Libevent to rescan for more
175143cb613SNick Mathewson     events right away (7d6aa5e)
176143cb613SNick Mathewson   o Add a new callback to get called on evbuffer_file_segment free
177143cb613SNick Mathewson     (e9f8feb yangacer, 64051b9)
178143cb613SNick Mathewson   o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman
179143cb613SNick Mathewson      Puls, 232055e, ffe1643)
180143cb613SNick Mathewson   o Add an event_remove_timer() to remove timer on an event without
181143cb613SNick Mathewson     deleting it (e3b2e08)
182143cb613SNick Mathewson   o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible
183143cb613SNick Mathewson     semantics (9dee36b)
184143cb613SNick Mathewson   o Rename event_enable_lock_debuging() to ..._debugging(). (The old name
185143cb613SNick Mathewson     should still work.) (07e132e)
186143cb613SNick Mathewson   o Add missing implementation for event_enable_debug_logging (3b3e21d)
187143cb613SNick Mathewson
188143cb613SNick Mathewson PORTABLE MONOTONIC TIMERS:
189143cb613SNick Mathewson
190143cb613SNick Mathewson   Libevent 2.1.2 includes internal support for monotonic timers on
191143cb613SNick Mathewson   (nearly) all supported platforms, including Windows, and OSX.  Libevent
192143cb613SNick Mathewson   applications should now be more resilient to jumps forwards or backwards
193143cb613SNick Mathewson   in the system clock.  Also, on Linux systems with epoll, we now
194143cb613SNick Mathewson   optionally support microsecond-level timeouts (whereas epoll only
195143cb613SNick Mathewson   supports millisecond-precision timeouts).
196143cb613SNick Mathewson
197143cb613SNick Mathewson   o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9)
198143cb613SNick Mathewson   o Do not track use_monotonic field when is no monotonic clock (cb653a0)
199143cb613SNick Mathewson   o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
200143cb613SNick Mathewson     (ddd69d3)
201143cb613SNick Mathewson   o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7)
202143cb613SNick Mathewson   o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a)
203143cb613SNick Mathewson   o Refactor monotonic timer handling into a new type and set of
204143cb613SNick Mathewson     functions; add a gettimeofday-based ratcheting implementation (f5e4eb0)
205143cb613SNick Mathewson   o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow
206143cb613SNick Mathewson     timer (a2598ec)
207143cb613SNick Mathewson   o Implement fast/precise monotonic clocks on Windows (2c47045)
208143cb613SNick Mathewson   o Simple unit tests for monotonic timers (630f077)
209143cb613SNick Mathewson   o Improve the monotonic-time unit test: make it check the step size (7428c78)
210143cb613SNick Mathewson   o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond
211143cb613SNick Mathewson     precision (26c7582)
212143cb613SNick Mathewson   o Split out time-related evutil functions into a new evutil_time.c (c419485)
213143cb613SNick Mathewson   o Split out time-related prototypes into time-internal.h (71bca50)
214143cb613SNick Mathewson   o Add evutil_time.obj to Makefile.nmake (0ba0683)
215143cb613SNick Mathewson   o Avoid giving a spurious warning when timerfd support is unavailable
216143cb613SNick Mathewson     (1aaf9f0 Dave Hart)
217143cb613SNick Mathewson   o Make test_evutil_monotonic a little more tolerant (def3b83)
218143cb613SNick Mathewson   o Avoid unused-var warning on systems with clock_gettime but without
219143cb613SNick Mathewson     CLOCK_MONOTONIC_COARSE (9be5468)
220143cb613SNick Mathewson
221143cb613SNick MathewsonEVENT_BASE_ONCE LEAKS:
222143cb613SNick Mathewson   If a callback added by event_base_once() is never invoked, Libevent no
223143cb613SNick Mathewson   longer leaks internal memory.
224143cb613SNick Mathewson
225143cb613SNick Mathewson   o Free dangling event_once objects on event_base_free() (c17dd59)
226143cb613SNick Mathewson   o Add a unit test in which an event is created with event_base_once()
227143cb613SNick Mathewson     but never fires (4343edf)
228143cb613SNick Mathewson
229143cb613SNick MathewsonTESTING SUPPORT, FIXES AND IMPROVEMENTS:
230143cb613SNick Mathewson
231143cb613SNick Mathewson   Libevent now disables by default its unit tests that would touch the
232143cb613SNick Mathewson   network, or that tend to fail on heavily-loaded systems.  To re-enable
233143cb613SNick Mathewson   them, invoke the ./test/regress program with the @all alias.
234143cb613SNick Mathewson
235143cb613SNick Mathewson   o Simplify test.sh code significantly. (9b856fd Ross Lagerwall)
236143cb613SNick Mathewson   o Make all tests that hit the network disabled by default (f2cea87)
237143cb613SNick Mathewson   o Avoid a resource leak on error in http client benchmark (ea92fba)
238143cb613SNick Mathewson   o Update to latest tinytest (911b4f0349377) (ef7c4f7)
239143cb613SNick Mathewson   o Avoid (unlikely) overflow in bench_httpclient.c (5671033)
240143cb613SNick Mathewson   o Shave 700 msec off the persistent_timeout_jump test (21205b8)
241143cb613SNick Mathewson   o Check return value of write() in regress.c (c8009d2)
242143cb613SNick Mathewson   o Make load-dependent monotonic timer tests off-by-default (2b6fe8b)
243143cb613SNick Mathewson   o Add deferred_cb_skew to list of timing-dependent tests (34c8f31)
244143cb613SNick Mathewson   o Avoid test -e; older shs don't have one. (f1bd938)
245143cb613SNick Mathewson   o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
246143cb613SNick Mathewson   o Fix a couple of compile warnings in the unit tests (5a9a014)
247143cb613SNick Mathewson
248143cb613SNick MathewsonMISC:
249143cb613SNick Mathewson   o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas
250143cb613SNick Mathewson     Marriott, 3aa4415)
251143cb613SNick Mathewson
252143cb613SNick MathewsonINFRASTRUCTURE (Active-later events):
253143cb613SNick Mathewson   As a simplification and optimization to Libevent's "deferred callback"
254143cb613SNick Mathewson   logic (introduced in 2.0 to avoid callback recursion), Libevent now
255143cb613SNick Mathewson   treats all of its deferrable callback types using the same logic it uses
256143cb613SNick Mathewson   for active events.  Now deferred events no longer cause priority
257143cb613SNick Mathewson   inversion, no longer require special code to cancel them, and so on.
258143cb613SNick Mathewson
259143cb613SNick Mathewson   o Refactor the callback part of an event into its own event_callback
260143cb613SNick Mathewson     type (cba59e5)
261143cb613SNick Mathewson   o Add "active later" event_callbacks to supersede deferred (745a63d)
262143cb613SNick Mathewson   o event_base_assert_ok: check value of event_active_count for
263143cb613SNick Mathewson     correctness (fec8bae)
264143cb613SNick Mathewson   o Replace deferred_cbs with event_callback-based implementation. (ae2b84b)
265143cb613SNick Mathewson   o Replace more deferred_cb names with event_callback (a4079aa)
266143cb613SNick Mathewson   o Give event_base_process_active a single exit path (581b5be)
267143cb613SNick Mathewson   o Restore our priority-inversion-prevention code with deferreds (c0e425a)
268143cb613SNick Mathewson   o Refactor event_persist_closure: raise and extract some common logic
269143cb613SNick Mathewson     (bec22b4)
270143cb613SNick Mathewson   o Remove the unused bits from EVLIST_ALL (9889a3d)
271143cb613SNick Mathewson
272143cb613SNick MathewsonBUILD IMPROVEMENTS:
273143cb613SNick Mathewson Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes
274143cb613SNick Mathewson numerous other build system. Parallel builds should be faster, and all
275143cb613SNick Mathewson builds should be quieter.
276143cb613SNick Mathewson
277143cb613SNick Mathewson   o Split long lists in Makefile.am into one-item-per-line (2711cda)
278143cb613SNick Mathewson   o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall)
279143cb613SNick Mathewson   o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier)
280143cb613SNick Mathewson   o Use newer syntax for autoconf/automake init (7d60ba8)
281143cb613SNick Mathewson   o Enable silent build rules by default. Override with V=1 (7b18e5c)
282143cb613SNick Mathewson   o Switch to non-recursive makefiles (7092f3b)
283143cb613SNick Mathewson   o Rename subordinate Makefile.ams to include.am (6cdfeeb)
284143cb613SNick Mathewson   o Make quiet build even quieter (371a123)
285143cb613SNick Mathewson   o New --quiet option for event_rpcgen.py (aa59c1e)
286143cb613SNick Mathewson   o Be quiet when making regress.gen.[ch] (607a8ff)
287143cb613SNick Mathewson   o Fix handling of no-python case for nonrecursive make (1e3123d)
288143cb613SNick Mathewson   o We now require automake 1.9 or later. Modernize! (b7f6e89)
289143cb613SNick Mathewson   o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall)
290143cb613SNick Mathewson   o Use correct openssl libs and includes in pkgconfig file (d70af27)
291143cb613SNick Mathewson   o Use the same CFLAGS for openssl when building unit tests as with
292143cb613SNick Mathewson     libevent (1d9d511)
293143cb613SNick Mathewson
294143cb613SNick MathewsonDOCUMENTATION
295143cb613SNick Mathewson   o Note that make_base_notifiable should not be necessary (26ee5f9)
296143cb613SNick Mathewson   o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb)
297143cb613SNick Mathewson   o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee)
298143cb613SNick Mathewson   o Make it more clear that NOLOCK means "I promise, no multithreading"
299143cb613SNick Mathewson    (9444524)
300143cb613SNick Mathewson   o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall)
301143cb613SNick Mathewson   o Make the Makefile.nmake warning slightly less dire (e7bf4c8)
302143cb613SNick Mathewson   o Fix typo : events instead of evets (05f1aca Azat Khuzhin)
303143cb613SNick Mathewson   o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
304143cb613SNick Mathewson     (6bde2ef Patrick Pelletier)
305143cb613SNick Mathewson
306143cb613SNick MathewsonEVHTTP:
307143cb613SNick Mathewson   o ignore LWS after field-content in headers (370a2c0 Artem Germanov)
308143cb613SNick Mathewson   o Clean up rtrim implementation (aa59d80)
309143cb613SNick Mathewson   o Remove trailing tabs in HTTP headers as well. (ac42519)
310143cb613SNick Mathewson   o Remove internal ws from multiline http headers correctly (c6ff381)
311143cb613SNick Mathewson   o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af)
312143cb613SNick Mathewson   o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren)
313143cb613SNick Mathewson   o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in
314143cb613SNick Mathewson     evhttp_connection_fail_ (7afbd60)
315143cb613SNick Mathewson   o preserve errno in evhttp_connection_fail_ for inspection by the
316143cb613SNick Mathewson     callback (36d0ee5 Patrick Pelletier)
317143cb613SNick Mathewson
318143cb613SNick MathewsonBUGFIXES:
319143cb613SNick Mathewson   o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b)
320143cb613SNick Mathewson   o Avoid double-free on error in evbuffer_add_file. Found by
321143cb613SNick Mathewson     coverity. (6a81b1f)
322143cb613SNick Mathewson   o Fix another possible uninitialized read in dns regression tests. Found
323143cb613SNick Mathewson     by coverity. (13525c5)
324143cb613SNick Mathewson   o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1)
325143cb613SNick Mathewson   o Avoid memory leak in test_event_calloc unit test; found by coverity
326143cb613SNick Mathewson     (92817a1)
327143cb613SNick Mathewson   o Fix a shadowed variable in addfile_test_readcb; found by coverity
328143cb613SNick Mathewson     (225344c)
329143cb613SNick Mathewson   o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by
330143cb613SNick Mathewson     coverity (6487f63)
331143cb613SNick Mathewson   o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786
332143cb613SNick Mathewson     Joachim Bauch)
333143cb613SNick Mathewson   o Make event_base_getnpriorities work with old "implicit base" code
334143cb613SNick Mathewson     (c46cb9c)
335143cb613SNick Mathewson   o Simplify and correct evutil_open_closeonexec_ (0de587f)
336143cb613SNick Mathewson   o Fix event_dlist definition when sys/queue not included (81b6209
337143cb613SNick Mathewson     Derrick Pallas)
338143cb613SNick Mathewson
339143cb613SNick Mathewson
340d9a55153SNick Mathewson
3412dedff36SNick MathewsonChanges in version 2.1.1-alpha (4 Apr 2012)
34225a424fbSNick Mathewson
3432dedff36SNick Mathewson Libevent 2.1.1-alpha includes a number of new features and performance
3442dedff36SNick Mathewson improvements.  The log below tries to organize them by rough area of
3452dedff36SNick Mathewson effect.  It omits some commits which were pure bugfixes on other commits
3462dedff36SNick Mathewson listed below.  For more detail, see the git changelogs.  For more
3472dedff36SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent
3482dedff36SNick Mathewson 2.1.1-alpha distribution.
34925a424fbSNick Mathewson
3502dedff36SNick Mathewson Performance: Core
3512dedff36SNick Mathewson   o Replace several TAILQ users with LIST. LIST can be a little faster than
3522dedff36SNick Mathewson     TAILQ for cases where we don't need queue-like behavior. (f9db33d,
3532dedff36SNick Mathewson     6494772, d313c29, 974d004)
3542dedff36SNick Mathewson   o Disabled code to optimize the case where we reinsert an existing
3552dedff36SNick Mathewson     timeout (e47042f, 09cbc3d)
3562dedff36SNick Mathewson   o Remove a needless base-notify when rescheduling the first timeout (77a96fd)
3572dedff36SNick Mathewson   o Save a needless comparison when removing/adjusting timeouts (dd5189b)
3582dedff36SNick Mathewson   o Possible optimization: split event_queue_insert/remove into
3592dedff36SNick Mathewson     separate functions. needs testing (efc4dc5)
36088b4f0bbSNick Mathewson   o Make event_count maintenance branchless at the expense of an
3612dedff36SNick Mathewson     extra shift. Needs benchmarking (d1cee3b)
3622dedff36SNick Mathewson   o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime
3632dedff36SNick Mathewson     comparison (2a83ecc)
3642dedff36SNick Mathewson   o Optimization in event_process_active(): ignore maxcb & endtime
3652dedff36SNick Mathewson     for highest priority events. (a9866aa Alexander Drozdov)
3662dedff36SNick Mathewson   o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95)
3672dedff36SNick Mathewson   o Remove the eventqueue list and the ev_next pointers. (604569b 066775e)
36877342926SNick Mathewson
3692dedff36SNick Mathewson Performance: Evbuffers
3702dedff36SNick Mathewson   o Roughly 20% speed increase when line-draining a buffer using
3712dedff36SNick Mathewson     EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib)
3722dedff36SNick Mathewson   o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139)
3732dedff36SNick Mathewson   o Fix a bug in the improved EOL_CRLF code (d927965)
3742dedff36SNick Mathewson   o Remove a needless branch in evbuffer_drain() (d19a326)
37577342926SNick Mathewson
3762dedff36SNick Mathewson Performance: Linux
3772dedff36SNick Mathewson   o Infrastructure for using faster/fewer syscalls when creating
3782dedff36SNick Mathewson     sockets (a1c042b)
3792dedff36SNick Mathewson   o Minimize syscalls during socket creation in listener.c (7e9e289)
3802dedff36SNick Mathewson   o Use a wrapper function to create the notification
3812dedff36SNick Mathewson     pipe/socketpair/eventfd (ca76cd9)
3822dedff36SNick Mathewson   o Use pipes for telling signals to main thread when possible (a35f396)
3832dedff36SNick Mathewson   o Save syscalls when constructing listener sockets for evhttp (af6c9d8)
3842dedff36SNick Mathewson   o Save some syscalls when creating evdns sockets (713e570)
3852dedff36SNick Mathewson   o Save some syscalls when constructing a socket for a bufferevent (33fca62)
3862dedff36SNick Mathewson   o Prefer epoll_create1 on Linuxen that have it (bac906c)
38777342926SNick Mathewson
3882dedff36SNick Mathewson Performance: Epoll backend
3892dedff36SNick Mathewson   o Use current event set rather than current pending change when
3902dedff36SNick Mathewson     deciding whether to no-op a del (04ba27e Mike Smellie)
3912dedff36SNick Mathewson   o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6)
3922dedff36SNick Mathewson   o Clean up error handling in epoll_apply_one_change() a little (2d55a19)
39377342926SNick Mathewson
3942dedff36SNick Mathewson Performance: Evport backend
3952dedff36SNick Mathewson   o evport: use evmap_io to track fdinfo status. Should save time and
3962dedff36SNick Mathewson     RAM. (4687ce4)
3972dedff36SNick Mathewson   o evport: Remove a linear search over recent events when
3982dedff36SNick Mathewson     reactivating them (0f77efe)
3992dedff36SNick Mathewson   o evport: Use portev_user to remember fdinfo struct (276ec0e)
4002dedff36SNick Mathewson   o evport: don't scan more events in ed_pending than needed (849a5cf)
4012dedff36SNick Mathewson   o evport: Remove artificial low limit on max events per getn call (c04d927)
4022dedff36SNick Mathewson   o Reenable main/many_events_slow_add for evport in 2.1 (e903db3)
4030c483170SNick Mathewson
4042dedff36SNick Mathewson Performance: Windows
4052dedff36SNick Mathewson   o Use GetSystemTimeAsFileTime to implement gettimeofday on
4062dedff36SNick Mathewson     win32. It's faster and more accurate than our old
4072dedff36SNick Mathewson     approach. (b8b8aa5)
408edc6d7d7SNick Mathewson
4092dedff36SNick Mathewson New functions and features: debugging
4102dedff36SNick Mathewson   o Add event_enable_debug_logging() to control use of debug logs (e30a82f)
411edc6d7d7SNick Mathewson
4122dedff36SNick Mathewson New functions and features: core
4132dedff36SNick Mathewson   o Add event_config function to limit time/callbacks between calls
4142dedff36SNick Mathewson     to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd)
4152dedff36SNick Mathewson   o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no
4162dedff36SNick Mathewson     events are pending (084e68f)
4172dedff36SNick Mathewson   o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov)
4182dedff36SNick Mathewson   o Make evbase_priority_init() and evbase_get_npriorities()
4192dedff36SNick Mathewson     threadsafe (3c55b5e)
4202dedff36SNick Mathewson   o New event_base_update_cache_time() to set cached_tv to current
4212dedff36SNick Mathewson     time (212533e Abel Mathew)
4222dedff36SNick Mathewson   o Add event_self_cbarg() to be used in conjunction with
4232dedff36SNick Mathewson     event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c,
4242dedff36SNick Mathewson     33e43ef)
4252dedff36SNick Mathewson   o Add a new libevent_global_shutdown() to free all globals before
4262dedff36SNick Mathewson     exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b)
4272dedff36SNick Mathewson   o Use getifaddrs to detect our interfaces if possible (7085a45)
4282dedff36SNick Mathewson   o Add event_base_get_running_event() to get the event* whose cb we
4292dedff36SNick Mathewson     are in (c5732fd, 13dad99)
430edc6d7d7SNick Mathewson
4312dedff36SNick Mathewson New functions and features: building
4322dedff36SNick Mathewson   o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn)
433edc6d7d7SNick Mathewson
4342dedff36SNick Mathewson New functions and features: evbuffers
4352dedff36SNick Mathewson   o Add evbuffer_add_file_segment() so one fd can be used efficiently
4362dedff36SNick Mathewson     in more than one evbuffer_add_file at a time (e72afae, c2d9884,
4372dedff36SNick Mathewson     3f405d2, 0aad014)
4382dedff36SNick Mathewson   o Fix windows file segment mappings (8254de7)
4392dedff36SNick Mathewson   o Allow evbuffer_ptr_set to yield a point just after the end of the
4402dedff36SNick Mathewson     buffer. (e6fe1da)
4412dedff36SNick Mathewson   o Allow evbuffer_ptr to point to position 0 in an empty evbuffer
4422dedff36SNick Mathewson     (7aeb2fd Nir Soffer)
44388b4f0bbSNick Mathewson   o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer)
4442dedff36SNick Mathewson   o support adding buffers to other buffers non-destructively
4452dedff36SNick Mathewson     (9d7368a Joachim Bauch)
4462dedff36SNick Mathewson   o prevent nested multicast references, reworked locking (26041a8
4472dedff36SNick Mathewson     Joachim Bauch)
4482dedff36SNick Mathewson   o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an
4492dedff36SNick Mathewson     evbuffer (d7a8b36 Andrea Montefusco, 54142c9)
4502dedff36SNick Mathewson   o Make evbuffer_file_segment_types adaptable (c6bbbf1)
4512dedff36SNick Mathewson   o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398)
4522dedff36SNick Mathewson   o Add evbuffer_copyout_from to copy data from the middle of a
4532dedff36SNick Mathewson     buffer (27e2225)
4546f6cebe3SNick Mathewson
4552dedff36SNick Mathewson New functions and features: bufferevents
4562dedff36SNick Mathewson   o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea)
4572dedff36SNick Mathewson   o Tweak allow_dirty_shutdown documentation (a44cd2b)
4582dedff36SNick Mathewson   o Fix two issues in the allow_dirty_shutdown code. (f3b89de)
4592dedff36SNick Mathewson   o Add a bufferevent_getcb() to find a bufferevent's current
4602dedff36SNick Mathewson     callbacks (a650394)
4612dedff36SNick Mathewson   o bufferevent: Add functions to set/get max_single_read/write
4622dedff36SNick Mathewson     values. (998c813 Alexander Drozdov)
4632dedff36SNick Mathewson   o bev_ssl: Be more specific in event callbacks. evhttp in particular gets
4642dedff36SNick Mathewson     confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a
4652dedff36SNick Mathewson     Catalin Patulea)
466edc6d7d7SNick Mathewson
4672dedff36SNick Mathewson New functions and features: evconnlisteners
4682dedff36SNick Mathewson   o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey,
4692dedff36SNick Mathewson     a270728)
4702dedff36SNick Mathewson   o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728)
4712dedff36SNick Mathewson   o Allow evconnlistener to be created in disabled state. (9593a33
4722dedff36SNick Mathewson     Alexander Drozdov)
4732dedff36SNick Mathewson   o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener
4742dedff36SNick Mathewson     sockets too (4970329)
475edc6d7d7SNick Mathewson
4762dedff36SNick Mathewson Evhttp:
4772dedff36SNick Mathewson   o Add new evhttp_{connection_}set_timeout_tv() functions to set
4782dedff36SNick Mathewson     finger-grained http timeouts (6350e6c Constantine Verutin)
4792dedff36SNick Mathewson   o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey)
4802dedff36SNick Mathewson   o Add missing break to evhttp_parse_request_line (0fcc536)
4812dedff36SNick Mathewson   o Add evhttp callback for bufferevent creation; this lets evhttp
4822dedff36SNick Mathewson     support SSL. (8d3a850)
4832dedff36SNick Mathewson   o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758)
4842dedff36SNick Mathewson   o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra)
485edc6d7d7SNick Mathewson
4862dedff36SNick Mathewson Build improvements:
4872dedff36SNick Mathewson   o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on
4882dedff36SNick Mathewson     patches for correctness and robustness. (1fa7dbe Kevin Bowling)
4892dedff36SNick Mathewson   o Filter '# define' statements from autoconf and generate
4902dedff36SNick Mathewson     event-private.h (321b558 Kevin Bowling)
4912dedff36SNick Mathewson   o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling)
4922dedff36SNick Mathewson   o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93
4932dedff36SNick Mathewson     Kevin Bowling)
4942dedff36SNick Mathewson   o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling)
4952dedff36SNick Mathewson   o Use a Configuration Header Template for evconfig-private.h (868f888
4962dedff36SNick Mathewson     Kevin Bowling)
4972dedff36SNick Mathewson   o Fix a comment warning and add evconfig-private.h to .gitignore
4982dedff36SNick Mathewson     (f6d66bc Kevin Bowling)
4992dedff36SNick Mathewson   o Include evconfig-private.h in internal files for great good. (0915ca0
5002dedff36SNick Mathewson     Kevin Bowling)
5012dedff36SNick Mathewson   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
5022dedff36SNick Mathewson     (ad03952 Kevin Bowling)
5032dedff36SNick Mathewson   o Prefer the ./configure evconfig-private.h in MinGW, just in
5042dedff36SNick Mathewson     case. (f964b72 Kevin Bowling)
5052dedff36SNick Mathewson   o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling)
5062dedff36SNick Mathewson   o Add evconfig-private to remaining files (ded0a09 Kevin Bowling)
5072dedff36SNick Mathewson   o Allow use of --enable-silent-rules for quieter compilation with
5082dedff36SNick Mathewson     automake 1.11 (f1f8514 Dave Hart)
5092dedff36SNick Mathewson   o Use "_WIN32", not WIN32: it's standard and we don't need to fake it
5102dedff36SNick Mathewson     (9f560b)
5112dedff36SNick Mathewson   o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin)
5122dedff36SNick Mathewson   o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin)
5132dedff36SNick Mathewson   o Provide the autoconf m4 macros for the new OpenSSL via pkg-config
5142dedff36SNick Mathewson     stuff. (674dc3d Harlan Stenn)
5152dedff36SNick Mathewson   o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn)
5162dedff36SNick Mathewson   o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b
5172dedff36SNick Mathewson     Harlan Stenn)
5182dedff36SNick Mathewson   o Fix OSX build: $(OPENSSL_INCS) needs to be after
5192dedff36SNick Mathewson     $(AM_CPPFLAGS). (46f1769 Zack Weinberg)
5202dedff36SNick Mathewson   o Make gcc warnings on by default, and --enable-gcc-warnings only add
5212dedff36SNick Mathewson     -Werror (d46517e Sebastian Hahn)
5222dedff36SNick Mathewson   o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad)
5232dedff36SNick Mathewson   o Move libevent 1.x headers to include/, to put all public headers in
5242dedff36SNick Mathewson     one place. (bbea8d6)
5252dedff36SNick Mathewson   o Put #ifdef around some files to support alternate build
5262dedff36SNick Mathewson     systems. (76d4c92 Ross Lagerwall)
5272dedff36SNick Mathewson   o Also make win32select.c conditional for IDE users (bf2c5a7)
528edc6d7d7SNick Mathewson
5292dedff36SNick Mathewson Debugging:
5302dedff36SNick Mathewson   o Add a magic number to debug_locks to better catch lock-coding
5312dedff36SNick Mathewson     errors. (b4a29c0 Dave Hart)
5322dedff36SNick Mathewson   o munge the debug_lock signature before freeing it: it might help us
5332dedff36SNick Mathewson     catch use-after-free (f28084d)
5342dedff36SNick Mathewson   o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey)
5352dedff36SNick Mathewson   o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey)
5362dedff36SNick Mathewson   o Added usec debug in another area for debug (3baab0d Mark Ellzey)
5372dedff36SNick Mathewson   o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey)
5382dedff36SNick Mathewson   o more event dbg updates (6727543 Mark Ellzey)
5392dedff36SNick Mathewson   o Clarify event_enable_debug_logging a little (6207826)
5402dedff36SNick Mathewson   o Make --enable-verbose-debug option match its help text (10c3450)
5412dedff36SNick Mathewson   o Add argument checks to some memory functions in `event.c'. (c8953d1
5422dedff36SNick Mathewson     Mansour Moufid)
54334045c8fSNick Mathewson
5442dedff36SNick Mathewson Testing:
5452dedff36SNick Mathewson   o More abstraction in test.sh (cd74c4e)
5462dedff36SNick Mathewson   o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer)
5472dedff36SNick Mathewson   o Tweaks to return types with end-of-buf ptrs (9ab8ab8)
5482dedff36SNick Mathewson   o Add an (internal) usleep function for use by unit tests (f25d9d3)
5492dedff36SNick Mathewson   o Synchronize with upstream tinytest (6c81be7)
5502dedff36SNick Mathewson   o Make test-changelist faster (7622d26)
5512dedff36SNick Mathewson   o Reduce the timeout in the main/fork test. (ab14f7c)
5522dedff36SNick Mathewson   o New evhttp function to adjust initial retry timeout (350a3c4)
5532dedff36SNick Mathewson   o Make regression tests run over 3x faster. (67a1763)
5542dedff36SNick Mathewson   o Use test_timeval_diff_eq more consistently (b77b43f)
5552dedff36SNick Mathewson   o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f)
5562dedff36SNick Mathewson   o When including an -internal.h header outside the main tree, do so
5572dedff36SNick Mathewson     early (95e2455)
5582dedff36SNick Mathewson   o Add a new test: test-fdleak which tests for fd leaks by creating many
5592dedff36SNick Mathewson     sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc)
5602dedff36SNick Mathewson   o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce)
5612dedff36SNick Mathewson   o Test more bufferevent_ratelim features (c24f91a)
56234045c8fSNick Mathewson
5632dedff36SNick Mathewson Documentation:
5642dedff36SNick Mathewson   o Improve evbuffer_ptr documentation (261ba63)
56588b4f0bbSNick Mathewson   o added comments to describe refcounting of multicast chains (ba24f61
5662dedff36SNick Mathewson     Joachim Bauch)
5672dedff36SNick Mathewson   o Add doxygen for event_base_dump_events (cad5753)
56831c99bd2SNick Mathewson
5692dedff36SNick Mathewson OSX:
5702dedff36SNick Mathewson   o Use "unlimited select" on OSX so that we can have more than
5712dedff36SNick Mathewson     FD_SETSIZE fds (1fb5cc6)
57234045c8fSNick Mathewson
5732dedff36SNick Mathewson KQueue:
5742dedff36SNick Mathewson   o Use SIG_IGN instead of a do-nothing handler for signal events with
5752dedff36SNick Mathewson     kqueue (148458e Zack Weinberg)
57634045c8fSNick Mathewson
5772dedff36SNick Mathewson evprc:
5782dedff36SNick Mathewson   o event_rpcgen.py now prints status information to stdout and errors to
5792dedff36SNick Mathewson     stderr. (ffb0ba0 Ross Lagerwall)
58034045c8fSNick Mathewson
5812dedff36SNick Mathewson Code improvement and refactoring:
5822dedff36SNick Mathewson   o Make event_reinit() more robust and maintainable (272033e)
5832dedff36SNick Mathewson   o Restore fast-path event_reinit() for slower backends (2c4b5de)
5842dedff36SNick Mathewson   o Check changelist as part of checking representational integrity (39b3f38)
5852dedff36SNick Mathewson   o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn)
5862dedff36SNick Mathewson   o Refactor the functions that run over every event. (c89b4e6)
5872dedff36SNick Mathewson   o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90)
5882dedff36SNick Mathewson   o Make event-config.h depend on Makefile.am (2958a5c)
58934045c8fSNick Mathewson
5902dedff36SNick Mathewson Build fixes:
5912dedff36SNick Mathewson   o Don't do clang version detection when disabling some flags (083296b
5922dedff36SNick Mathewson     Sebastian Hahn)
59334045c8fSNick Mathewson
5942dedff36SNick Mathewson C standards conformance:
5952dedff36SNick Mathewson   o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69)
5962dedff36SNick Mathewson   o Convert event-config.h macros to avoid reserved identifiers (68120d9)
5972dedff36SNick Mathewson   o Generate event-config.h using the correct macros. (f82c57e)
5982dedff36SNick Mathewson   o Convert include-guard macro convention to avoid reserved identifiers
5992dedff36SNick Mathewson     (3f8c7cd)
60088b4f0bbSNick Mathewson   o Make event_rpcgen.py output conform to identifier conventions (372bff1)
6012dedff36SNick Mathewson   o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0)
6022dedff36SNick Mathewson   o Make the generated event-config.h use correct include guards (639383a)
6032dedff36SNick Mathewson   o Fix all identifiers with names beginning with underscore. (cb9da0b)
60488b4f0bbSNick Mathewson   o Make event_rpcgen.py output conform to identifier conventions, more
6052dedff36SNick Mathewson     (bcefd24)
6062dedff36SNick Mathewson   o Fix some problems introduced by automated identifier cleanup script
6072dedff36SNick Mathewson     (c963534)
6082dedff36SNick Mathewson   o Have all visible internal function names end with an underscore. (8ac3c4c)
6092dedff36SNick Mathewson   o Apply the naming convention to our EVUTIL_IS* functions (c7848fa)
6102dedff36SNick Mathewson   o Clean up lingering _identifiers. (946b584)
6112dedff36SNick Mathewson   o Fix doxygen to use new macro conventions (da455e9)
6127c3e0612SNick Mathewson
6132dedff36SNick Mathewson Bugfixes:
6142dedff36SNick Mathewson   o Do not use system EAI/AI values if we are not using the system
6152dedff36SNick Mathewson     getaddrinfo. (7bcac07)
6167c3e0612SNick Mathewson
6172dedff36SNick Mathewson Sample Code:
6182dedff36SNick Mathewson   o Fix up sample/event-test.c to use newer interfaces and make it
6192dedff36SNick Mathewson     actually work. (19bab4f Ross Lagerwall)
6202dedff36SNick Mathewson   o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross
6212dedff36SNick Mathewson     Lagerwall)
6222dedff36SNick Mathewson   o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall)
6232dedff36SNick Mathewson   o event-read-fifo: Use EV_PERSIST appropriately (24dab0b)
62415be0493SNick Mathewson
6251aa6826fSNiels Provos
62687bef9e9SNiels Provos
62711a0a9e4SNiels Provos
628