1290001SglebiusChanges in version 2.1.5-beta (5 January 2015)
2290001Sglebius
3290001Sglebius Security Fixes (evbuffers)
4290001Sglebius   o Avoid integer overflow bugs in evbuffer_add() and related functions.  See CVE-2014-6272 advisory for more information. (d49bc0e88b81a5812116074dc007f1db0ca1eecd)
5290001Sglebius
6290001Sglebius New APIs (evconnlistener)
7290001Sglebius   o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak)
8290001Sglebius
9290001Sglebius Bugfixes (core)
10290001Sglebius    o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl)
11290001Sglebius    o Fix race caused by event_active (3c7d6fc vjpai)
12290001Sglebius
13290001Sglebius Bugfixes (evbuffer)
14290001Sglebius   o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923)
15290001Sglebius   o Consistently check for failure from evbuffer_pullup() (60f8f72)
16290001Sglebius   o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a)
17290001Sglebius
18290001Sglebius Bugfixes (windows, IOCP)
19290001Sglebius   o be async: avoid double close() (f133b86 Azat Khuzhin)
20290001Sglebius
21290001Sglebius Bugfixes (bufferevents)
22290001Sglebius   o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE (2c82aa0 John Ohl)
23290001Sglebius   o make bufferevent_getwatermark api more robust (a21e510 ufo2243)
24290001Sglebius   o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243)
25290001Sglebius   o bufferevent_openssl: reset fd_is_set when setfd with -1 is called (3da84c2 Azat Khuzhin)
26290001Sglebius   o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg)
27290001Sglebius
28290001Sglebius New APIs (evhttp)
29290001Sglebius   o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests (12c29b0 Azat Khuzhin)
30290001Sglebius   o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl)
31290001Sglebius
32290001Sglebius New APIs (core)
33290001Sglebius   o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard)
34290001Sglebius
35290001Sglebius Bugfixes (evdns)
36290001Sglebius   o Load hosts file on Windows. (a0b247c Vilmos Nebehaj)
37290001Sglebius   o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj)
38290001Sglebius   o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749)
39290001Sglebius   o evdns: avoid read-after-free in evdns_request_timeout_callback() (61262a0 Azat Khuzhin)
40290001Sglebius   o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15)
41290001Sglebius   o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin)
42290001Sglebius   o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin)
43290001Sglebius   o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin)
44290001Sglebius
45290001Sglebius Bugfixes (evhttp)
46290001Sglebius   o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin)
47290001Sglebius
48290001Sglebius
49290001Sglebius Testing
50290001Sglebius   o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin)
51290001Sglebius   o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin)
52290001Sglebius   o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC (42aefeb Azat Khuzhin)
53290001Sglebius   o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin)
54290001Sglebius   o Update to a more recent tinytest_macros. (8da5a18)
55290001Sglebius   o test/regress: add simplestsignal: to track reorder bugs separately (b897bef Azat Khuzhin)
56290001Sglebius   o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin)
57290001Sglebius   o More evbuffer_peek() test cases (154006a)
58290001Sglebius   o use correct tt macro for pointer compare (08c88ea)
59290001Sglebius   o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov)
60290001Sglebius   o Fix a use-after-free in unit tests. CID 752027 (3739057)
61290001Sglebius   o Fix a dead-code warning in unit tests. CID 1193548 (c119f24)
62290001Sglebius   o Use evutil_weakrand() in unit tests. (a677b72, 364c110)
63290001Sglebius   o Use a more precise calculation for max in time-ratelim.c (ca5b5c7)
64290001Sglebius   o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from() (fb57b8b)
65290001Sglebius   o Fix several memory leaks in the unit tests. (89c1a3b)
66290001Sglebius   o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl)
67290001Sglebius   o Fix annoying heisenbug in test-time.c (cb73704)
68290001Sglebius
69290001Sglebius Sample code
70290001Sglebius   o Make http-server.c output into good html5 (6d72bdc)
71290001Sglebius   o Use FindClose for handle from FindFirstFile in http-server.c (6466e88)
72290001Sglebius   o https-client: add -retries argument, for connection retries (d9da844 Azat Khuzhin)
73290001Sglebius
74290001Sglebius Bugfixes (build)
75290001Sglebius   o Add missing headerfile for cmake (15d90cc Trond Norbye)
76290001Sglebius   o ignore one more test binary (b6593aa Michael Richardson)
77290001Sglebius   o ignore config.cache/test-driver files (c83f333 Mike Frysinger)
78290001Sglebius   o add a --disable-samples configure flag (0c492b3 Mike Frysinger)
79290001Sglebius   o Add a few files created by "make verify" to .gitignore. (1a8295a Pierre Phaneuf)
80290001Sglebius   o updates in cmake build (27bd9fa Sergey Nikulov)
81290001Sglebius   o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang)
82290001Sglebius   o Fix CMake shared library build (e69d910 Nobuaki Sukegawa)
83290001Sglebius   o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl)
84290001Sglebius   o Fix mixed declarations and code (forbidden by ISO C90) (8afbdbc Thomas Bernard)
85290001Sglebius
86290001Sglebius Bugfixes (miscellaneous)
87290001Sglebius   o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin)
88290001Sglebius   o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin)
89290001Sglebius   o [Bugfix] fix grammer error (3a4d249 ufo2243)
90290001Sglebius   o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389)
91290001Sglebius   o Fix a c90 warning (76643dd)
92290001Sglebius   o Fix a typo in a doxygen comment. Reported by ������. (be1aeff)
93290001Sglebius   o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet)
94290001Sglebius
95290001Sglebius Bugfixes (FreeBSD)
96290001Sglebius   o Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed. (6fd7394 Adrian Chadd)
97290001Sglebius
98290001Sglebius
99290001Sglebius
100290001SglebiusChanges in version 2.1.4-alpha (21 Mar 2014)
101290001Sglebius
102290001Sglebius Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make
103290001Sglebius Libevent more useful, including support for early close detection with
104290001Sglebius epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more
105290001Sglebius evhttp callbacks, and more. There are also numerous bugfixes, including
106290001Sglebius a number for finalize-related issues from 2.1.3-alpha; and an
107290001Sglebius alternative (non-primary!) cmake-based build mechanism.
108290001Sglebius
109290001Sglebius New APIs (core)
110290001Sglebius   o Added event_base_get_num_events() (0fa107d Mobai Zhang)
111290001Sglebius   o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0)
112290001Sglebius   o Add event_base_active_by_signal by analogy (4865943)
113290001Sglebius   o Add access to max event count stats (5173bef, efbd3dc, 26230a2
114290001Sglebius     Andrew Sweeney)
115290001Sglebius   o Implemented EV_CLOSED event for epoll backend
116290001Sglebius     (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52
117290001Sglebius     Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e)
118290001Sglebius
119290001Sglebius New APIs (evutil_secure_rng)
120290001Sglebius   o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)
121290001Sglebius
122290001Sglebius New APIs (bufferevents)
123290001Sglebius   o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey)
124290001Sglebius   o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb
125290001Sglebius     Mark Ellzey)
126290001Sglebius   o Add watermark introspection (4ce242b Ond��ej Kuzn��k)
127290001Sglebius   o Add an option to trigger bufferevent I/O callbacks (61ee18b Ond��ej Kuzn��k)
128290001Sglebius   o Add an option to trigger bufferevent event callbacks (a7384c7
129290001Sglebius     Ond��ej Kuzn��k)
130290001Sglebius   o Clarifications in response to merge req. comments (bd41947 Ond��ej
131290001Sglebius     Kuzn��k)
132290001Sglebius   o Minor optimizations on bufferevent_trigger options (a3172a4)
133290001Sglebius
134290001Sglebius New APIs (evhttp)
135290001Sglebius   o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion)
136290001Sglebius   o add a http default content type option (5a5acd9 Nicolas Martyanoff)
137290001Sglebius   o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat
138290001Sglebius     Khuzhin)
139290001Sglebius   o Add a variant of evhttp_send_reply_chunk() with a callback on
140290001Sglebius     evhttp_write_buffer() (8d8decf Julien BLACHE)
141290001Sglebius   o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey)
142290001Sglebius   o Provide on request complete callback facility (b083ca0 Andrew Sweeney)
143290001Sglebius   o evhttp_request_set_on_complete_cb to be more specific about what
144290001Sglebius     the function actually does and usage (da86dda Andrew Sweeney)
145290001Sglebius   o Update unit test to make sure that the callback happens after the
146290001Sglebius     output data is written (b85f398 Andrew Sweeney)
147290001Sglebius
148290001Sglebius Features (evdns)
149290001Sglebius   o bug fix for issues #293 evdns_base_load_hosts doesn't remove
150290001Sglebius     outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta)
151290001Sglebius
152290001Sglebius Features: (cmake build support)
153290001Sglebius   o Initial CMake commit. (e415196 Joakim Soderberg)
154290001Sglebius   o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg)
155290001Sglebius   o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg)
156290001Sglebius   o Generate a dummy evconfig-private.h so things build
157290001Sglebius     properly. (ce14def Joakim Soderberg)
158290001Sglebius   o Link libm on unix platforms. (58fcd42 Joakim Soderberg)
159290001Sglebius   o Added some GCC specific options. (19222e5 Joakim Soderberg)
160290001Sglebius   o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg)
161290001Sglebius   o Add copyright and licensing files for CMake modules. (c259d53
162290001Sglebius     Joakim Soderberg)
163290001Sglebius   o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg)
164290001Sglebius   o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg)
165290001Sglebius   o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg)
166290001Sglebius   o Only test the event backends available on the system. (7ea4159
167290001Sglebius     Joakim Soderberg)
168290001Sglebius   o Added a "make verify" target. (e053c4f Joakim Soderberg)
169290001Sglebius   o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg)
170290001Sglebius   o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516
171290001Sglebius     Joakim S��derberg)
172290001Sglebius   o Fix kqueue support. (a831f2f Joakim S��derberg)
173290001Sglebius   o Added a test for testing if kqueue works with pipes. (2799b35
174290001Sglebius     Joakim S��derberg)
175290001Sglebius   o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg)
176290001Sglebius   o Minimum required python version is 2.4. (968e97b Joakim Soderberg)
177290001Sglebius   o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg)
178290001Sglebius   o Add a "make verify_coverage" target generation coverage
179290001Sglebius     info. (f2483f8 Joakim Soderberg)
180290001Sglebius   o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg)
181290001Sglebius   o Only look for ZLib when it is used (if tests are
182290001Sglebius     included). (f780593 Joakim Soderberg)
183290001Sglebius   o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into
184290001Sglebius     errors. (dd413bd Joakim Soderberg)
185290001Sglebius   o Add CMake config and install targets. (f3446ed Joakim Soderberg)
186290001Sglebius   o Fix typo (4b754df Joakim Soderberg)
187290001Sglebius   o Some work on making it possible to simply do add_subdirectory() on
188290001Sglebius     the project. (49ab363 Joakim Soderberg)
189290001Sglebius   o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg)
190290001Sglebius   o Fix so that old nmake project still builds. (24d6466 Joakim
191290001Sglebius     Soderberg)
192290001Sglebius   o Rename README to README.md and use markdown to format. (d2bc39a
193290001Sglebius     Joakim Soderberg)
194290001Sglebius   o Update README with CMake build instructions. (604b8cc Joakim Soderberg)
195290001Sglebius   o Clean up the README some. (8d4cb35 JoakimSoderberg)
196290001Sglebius   o Forgotten headers for old nmake project compatability. (8697b99
197290001Sglebius     Joakim Soderberg)
198290001Sglebius   o Change all uses of WIN32 to _WIN32 (4e14395 Joakim So��derberg)
199290001Sglebius   o Fix include bug. (2024467 Joakim So��derberg)
200290001Sglebius   o Check if we're on OSX before disabling deprecation in le-proxy
201290001Sglebius     (8b40a5b Joakim So��derberg)
202290001Sglebius   o Fix broken autotools build. (ae1bd82 Joakim So��derberg)
203290001Sglebius   o Disclaimerize cmake a little in the README (d03b5bf)
204290001Sglebius   o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim
205290001Sglebius     So��derberg)
206290001Sglebius   o CMake: Get rid of python not found warning when regress tests
207290001Sglebius     turned off. (d38d798 Joakim So��derberg)
208290001Sglebius   o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg)
209290001Sglebius   o Guard against EVENT_NOWIN32 being set during testing. (f1715b4
210290001Sglebius     Joakim Soderberg)
211290001Sglebius   o Check for OSX when checking for clang. (e212c54 Joakim Soderberg)
212290001Sglebius   o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg)
213290001Sglebius   o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye)
214290001Sglebius   o Rename event_extras to event_extra (a0dd5df Trond Norbye)
215290001Sglebius   o Add option to build shared library (4545fa9 Trond Norbye)
216290001Sglebius   o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye)
217290001Sglebius   o Add cmake-related files to .gitignore (e061321 Trond Norbye)
218290001Sglebius   o Export event_extra not event_extras. (2b41bcf Joakim So��derberg)
219290001Sglebius
220290001Sglebius Bugfixes (core)
221290001Sglebius   o If evsel->del() fails, don't leave the evmap in an inconsistent
222290001Sglebius     state (9b5a527 Maxime Henrion)
223290001Sglebius   o Move event_debug_note_teardown_ before mm_free. (69b5c64)
224290001Sglebius   o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3)
225290001Sglebius   o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe)
226290001Sglebius   o Tweaked callbacks to prevent race condition
227290001Sglebius     (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed
228290001Sglebius     John Ohl)
229290001Sglebius   o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE
230290001Sglebius     case (9805972)
231290001Sglebius
232290001Sglebius Bugfixes (evhttp)
233290001Sglebius   o Fix a double close() bug in evhttp when the underlying bufferevent uses
234290001Sglebius     BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion)
235290001Sglebius   o Fix an unlikely but possible error case for http connections (f22049e)
236290001Sglebius   o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)
237290001Sglebius
238290001Sglebius Bugfixes on 2.0 (Windows)
239290001Sglebius   o Use windows vsnprintf fixup logic on all windows environments (e826f19)
240290001Sglebius   o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
241290001Sglebius    (b8f5980 Frank Denis)
242290001Sglebius
243290001Sglebius Bugfixes (evutil_secure_rng)
244290001Sglebius   o When we seed from /proc/sys/kernel/random/uuid, count it as success
245290001Sglebius     (e35b540)
246290001Sglebius   o We should return after arc4random_buf() (1ea1f26 Makoto Kato)
247290001Sglebius   o Avoid other RNG initialization FS reads when urandom file is
248290001Sglebius     specified (9695e9c)
249290001Sglebius   o Really remove RNG seeds from the stack (f5ced88)
250290001Sglebius   o Fix another arc4random_buf-related warning (e64a2b0)
251290001Sglebius
252290001Sglebius Bugfixes (bufferevents)
253290001Sglebius   o Initialize async bufferevent timeout CBs unconditionally (af9b2a7)
254290001Sglebius
255290001Sglebius Bugfixes (evdns)
256290001Sglebius   o Checking request nameserver for NULL, before using it. (5c710c0
257290001Sglebius     Belobrov Andrey)
258290001Sglebius   o Fix SEGFAULT after evdns_base_resume if no nameservers
259290001Sglebius     installed. (14971a8 Azat Khuzhin)
260290001Sglebius   o Actually use the log facility for reporting evdns problems. (e1766a1)
261290001Sglebius   o Fix SEGFAULT after evdns_base_resume if no nameservers
262290001Sglebius     installed. (f8d7df8 Azat Khuzhin)
263290001Sglebius   o fix for ServFail from RIPE Atlas release (62f596b Antony Antony)
264290001Sglebius
265290001Sglebius Bugfixes (compilation)
266290001Sglebius   o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7)
267290001Sglebius   o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e)
268290001Sglebius   o Don't use return since return type is void and build error occurs
269290001Sglebius     using clang (838161d Makoto Kato)
270290001Sglebius   o Use void casts to suppress some "unchecked return value" warns (7080d55)
271290001Sglebius   o rpcgen: Generate regress.gen.[c,h] in build rather than src dir
272290001Sglebius     (243386c Ross Lagerwall)
273290001Sglebius   o Fix a compiler warning when checking for arc4random_buf linker
274290001Sglebius     breakage. (5cb3865)
275290001Sglebius   o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
276290001Sglebius    (239d834)
277290001Sglebius
278290001Sglebius   o Fix a c90 warning (c207682)
279290001Sglebius   o Fix consts in WIN32-Code/getopt*.[ch] (57abb35)
280290001Sglebius
281290001Sglebius Bugfixes (locks, synchronization)
282290001Sglebius   o Missed lock acquire/release in event_base_cancel_single_callback_()
283290001Sglebius     (d3d999a Azat Khuzhin)
284290001Sglebius   o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion)
285290001Sglebius
286290001Sglebius Bugfixes (leaks)
287290001Sglebius   o Avoid leaking segment mappings when offset is not a page multiple (d409514)
288290001Sglebius
289290001Sglebius Testing
290290001Sglebius   o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin)
291290001Sglebius   o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin)
292290001Sglebius   o Add checks for evhttp_connection_get_server() in unit
293290001Sglebius     tests. (fbc323b Maxime Henrion)
294290001Sglebius   o Fix a (failure-only) null dereference in the unit tests (1104d0b)
295290001Sglebius   o Fix a logic error in test_evbuffer_freeze (7765884)
296290001Sglebius   o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506)
297290001Sglebius   o Fix some crash-on-fail cases in DNS regression tests (87cd6f0)
298290001Sglebius   o DNS tests: add a missing check (f314900)
299290001Sglebius   o Finalize tests: add a missing check (82b6956)
300290001Sglebius   o test_evutil_rtrim: add another missing check. (e193c95)
301290001Sglebius   o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
302290001Sglebius     (611e28b Azat Khuzhin)
303290001Sglebius   o regress_http: add tests for evhttp_connection_get_addr() (4dd500c
304290001Sglebius     Azat Khuzhin)
305290001Sglebius   o Update to the latest version of tinytest (7a80476)
306290001Sglebius   o Heap-allocate zlib data structure in regress_zlib tests (4947c18)
307290001Sglebius
308290001Sglebius Performance tweaks (core)
309290001Sglebius   o Avoid redundant syscall to make a nonblocking socket nonblocking
310290001Sglebius     (42c03da Maxime Henrion)
311290001Sglebius   o Avoid redundant syscall if making a socket cloexec twice (1f29b18)
312290001Sglebius   o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)
313290001Sglebius
314290001Sglebius Documentation
315290001Sglebius   o Document that arc4random is not a great cryptographic PRNG. (6e49696)
316290001Sglebius   o Small doxygen tweaks (6e67b51)
317290001Sglebius   o Try another doxygen tweak (ccf432b)
318290001Sglebius   o Clarify event_base_loop exit conditions (031a803)
319290001Sglebius   o Fix a typo (be7bf2c Ond��ej Kuzn��k)
320290001Sglebius   o Document deferred eventcb behaviour (13a9a02 Ond��ej Kuzn��k)
321290001Sglebius   o Typo fixes from Linus Nordberg (cec62cb, 8cd695b)
322290001Sglebius   o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee)
323290001Sglebius
324290001Sglebius Code Improvements (coverity)
325290001Sglebius   o Fix a pile of coverity warnings in the unit tests (867f401)
326290001Sglebius   o Fix coverity warnings in benchmark tools. (ff7f739)
327290001Sglebius   o Whoops; fix compilation in bench.c (544cf88)
328290001Sglebius   o Remove spurious checks in evrpc.c error cases (coverity) (991b362)
329290001Sglebius   o Fix a couple of compilation warnings in regress_http.c (860767e)
330290001Sglebius   o Fix even more coverity warnings. (d240328)
331290001Sglebius   o Stop checking for inet_aton; we don't use it. (f665d5c)
332290001Sglebius   o Add an include to evrpc-internal to fix openbsd compilation warning
333290001Sglebius     (5e161c6)
334290001Sglebius
335290001Sglebius Cleanups
336290001Sglebius   o Remove an unreachable return statement in minheap-internal.h (e639a9e)
337290001Sglebius   o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e)
338290001Sglebius   o Fix needless bufferevent includes in evdns.c (254c04e)
339290001Sglebius   o Fix a couple of "#ifdef WIN32" instances (88ecda3)
340290001Sglebius   o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd)
341290001Sglebius
342290001Sglebius Sample code
343290001Sglebius   o le-proxy: Fail more gracefully if opening listener fails (44b2491)
344290001Sglebius   o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin)
345290001Sglebius   o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky)
346290001Sglebius   o https-client: code cleanup (29af65e Alexey Ozeritsky)
347290001Sglebius   o https-client: Small tweaks to https-client.c (90786eb)
348290001Sglebius   o https-client: Set hostname for SNI extension (by f69m) (d1976f8)
349290001Sglebius   o https-client: add a cast to https-client.c (462e6b6)
350290001Sglebius
351290001Sglebius
352290001Sglebius
353290001SglebiusChanges in version 2.1.3-alpha (1 May 2013)
354290001Sglebius
355290001Sglebius Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans
356290001Sglebius up the code in a couple of places. It has a new callback in evhttp for
357290001Sglebius reporting errors during a request, a new feature for allowing evdns to
358290001Sglebius not keep the event_base looping when there are no requests inflight, and
359290001Sglebius example code for writing an https client.
360290001Sglebius
361290001Sglebius Libevent 2.1.3-alpha also has an important new (experimental) event
362290001Sglebius finalization feature to allow safe event teardown in multithreaded
363290001Sglebius programs. This ought to fix the longstanding bug with deadlocks in
364290001Sglebius multithreaded use of SSL-based bufferevents that some people have been
365290001Sglebius experiencing since Libevent 2.0.
366290001Sglebius
367290001Sglebius
368290001Sglebius Core (event finalization)
369290001Sglebius   o Implement event_finalize() and related functions to avoid certain
370290001Sglebius     deadlocks (8eedeab)
371290001Sglebius   o Use finalization feature so bufferevents can avoid deadlocks (02fbf68)
372290001Sglebius   o Always run pending finalizers when event_base_free() is called (e9ebef8)
373290001Sglebius   o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a)
374290001Sglebius   o More documentation for finalization feature (a800b91)
375290001Sglebius   o Make the event_finalize* functions return an error code (5d11f4f)
376290001Sglebius   o Mark the finalize stuff as experiemental in case it needs to
377290001Sglebius     change (23e2e29)
378290001Sglebius
379290001Sglebius Evdns
380290001Sglebius   o evdns: New flag to make evdns not prevent the event loop from
381290001Sglebius     exiting (6b7fa62 Azat Khuzhin)
382290001Sglebius
383290001Sglebius Bugfixes (Core)
384290001Sglebius   o Make event_remove_timer behave correctly with persistent timers (5623e80)
385290001Sglebius   o Unit test for event_remove_timer with EV_PERSIST. (96150dd)
386290001Sglebius   o Double-check next timeout when adding events (9443868 Nate Rosenblum)
387290001Sglebius   o event_base_update_cache_time should be a no-op if the loop isn't
388290001Sglebius     running (5e6fa2a)
389290001Sglebius
390290001Sglebius Bugfixes (evhttp, crash fix, from 2.0)
391290001Sglebius   o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel)
392290001Sglebius
393290001Sglebius Bugfixes (compilation and portability, from 2.0)
394290001Sglebius   o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
395290001Sglebius   o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
396290001Sglebius   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
397290001Sglebius     (74d4c44 Kevin Bowling)
398290001Sglebius   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake
399290001Sglebius     1.13 compat (817ea36)
400290001Sglebius   o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
401290001Sglebius   o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
402290001Sglebius
403290001Sglebius Bugfixes (resource leaks/lock errors on error, from 2.0)
404290001Sglebius   o Avoid leaking fds on evconnlistener with no callback set (69db261)
405290001Sglebius   o Avoid double-close on getsockname error in evutil_ersatz_socketpair
406290001Sglebius     (0a822a6)
407290001Sglebius   o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
408290001Sglebius
409290001Sglebius Documentation Fixes (from 2.0)
410290001Sglebius   o Fix a mistake in evbuffer_remove() arguments in example http server code
411290001Sglebius     (c322c20 Gyepi Sam)
412290001Sglebius   o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
413290001Sglebius
414290001Sglebius Documentation Fixes
415290001Sglebius   o minor documentation typos (809586a Patrick Pelletier)
416290001Sglebius   o Fix cut-and-paste err in whatsnew-2.1 (49905ac)
417290001Sglebius   o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian
418290001Sglebius     Hahn)
419290001Sglebius   o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke)
420290001Sglebius   o fix some hinky indentation in evhttp_make_request (80e220e Patrick
421290001Sglebius     Pelletier)
422290001Sglebius   o "buffer" spelling (a452811 Patrick Pelletier)
423290001Sglebius   o Specify return behavior in header for evbuffer_pullup() in corner case
424290001Sglebius     (cf8d1cd Dan Petro)
425290001Sglebius   o Clarify an important point about event_base_foreach_event() (920a5e6)
426290001Sglebius
427290001Sglebius Compilation Fixes/Tool Support
428290001Sglebius   o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick
429290001Sglebius     Pelletier)
430290001Sglebius   o Fix harmless clang enum warning (b452a43 Sebastian Hahn)
431290001Sglebius   o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick
432290001Sglebius     Pelletier)
433290001Sglebius   o Make --disable-libevent-regress work again (787fd74)
434290001Sglebius   o Do not build strlcpy.c when it will have no code. (4914620)
435290001Sglebius
436290001Sglebius Portability Fixes
437290001Sglebius   o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff)
438290001Sglebius   o Preliminary changes for Minix3. (0dda56a Nicholas Heath)
439290001Sglebius   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13
440290001Sglebius     compat (bf278b)
441290001Sglebius   o Avoid using $(top_srcdir) in TESTS. (2863c83)
442290001Sglebius   o build test/test-script.sh on systems with a less-featureful $< (f935e21)
443290001Sglebius   o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d)
444290001Sglebius
445290001Sglebius Evhttp changes:
446290001Sglebius   o Fix ipv6 support for http. When URL contain domain, not IP
447290001Sglebius     address. (71e709c Azat Khuzhin)
448290001Sglebius   o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat
449290001Sglebius     Khuzhin)
450290001Sglebius   o uri decode: changed the test for the existence of the next character
451290001Sglebius     (e1903e3 Azat Khuzhin)
452290001Sglebius   o Move prototype of evhttp_decode_uri_internal() to http-internal.h
453290001Sglebius     (de8101a Azat Khuzhin)
454290001Sglebius   o Test: decoding just part of string with evhttp_decode_uri_internal()
455290001Sglebius     (1367653 Azat Khuzhin)
456290001Sglebius   o Add new error_cb for actual reporting of HTTP request errors. (7b07719
457290001Sglebius     Azat Khuzhin)
458290001Sglebius   o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217
459290001Sglebius     Azat Khuzhin)
460290001Sglebius   o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin)
461290001Sglebius
462290001Sglebius Testing
463290001Sglebius   o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin)
464290001Sglebius   o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug
465290001Sglebius     mode (2fad0f3)
466290001Sglebius   o Add a test with an active_later event at event_base_free time. (1c3147f)
467290001Sglebius   o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f)
468290001Sglebius   o Add some verbose notes to bufferevent unit tests (9d893c9)
469290001Sglebius   o New test for active_later->active transition on event_active (a153874)
470290001Sglebius   o New tests for event_base_foreach_event() (0b096ef)
471290001Sglebius   o Unit tests for event_base_gettimeofday_cached() and
472290001Sglebius     event_base_update_cache_time() (30ea291)
473290001Sglebius   o A test for event_get_assignment() (f09629e)
474290001Sglebius   o More unit tests for initializing common timeouts. (d596739)
475290001Sglebius   o Fix a bug in the new main/event_foreach test (702c9aa)
476290001Sglebius
477290001Sglebius Windows:
478290001Sglebius   o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af
479290001Sglebius     Patrick Pelletier)
480290001Sglebius   o a program to print out the error strings for winsock errors (7296512
481290001Sglebius     Patrick Pelletier)
482290001Sglebius   o Fix a warning introduced in 0c6ec5d8 (eeb700c)
483290001Sglebius   o Fix another warning introduced in 0c6ec5d8 (ed26561)
484290001Sglebius
485290001Sglebius Examples (http)
486290001Sglebius   o Add sample/https-client.c, an example of stacking evhttp as a client on
487290001Sglebius     top of bufferevent_ssl. (be46c99 Catalin Patulea)
488290001Sglebius   o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier)
489290001Sglebius   o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick
490290001Sglebius     Pelletier)
491290001Sglebius   o better handling of OpenSSL errors (5754d96 Patrick Pelletier)
492290001Sglebius   o use Debian's default root certificate location (aacd674 Patrick Pelletier)
493290001Sglebius   o use iSECPartners code to validate hostname in certificate (64d9f16
494290001Sglebius     Patrick Pelletier)
495290001Sglebius   o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5
496290001Sglebius     Patrick Pelletier)
497290001Sglebius   o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier)
498290001Sglebius   o Another tweak to https-client.c (95acdaa)
499290001Sglebius   o Remove http_struct.h usage in sample/https-client.c (8a90a85)
500290001Sglebius
501290001Sglebius
502290001Sglebius
503290001SglebiusChanges in version 2.1.2-alpha (18 Nov 2012)
504290001Sglebius
505290001Sglebius Libevent 2.1.2-alpha includes more portable for monotonic timers,
506290001Sglebius refactors much of Libevent's internal and external infrastructure,
507290001Sglebius closes some longstanding gaps in the interface, makde other
508290001Sglebius improvements.  Ths log below tries to organize features by rough area of
509290001Sglebius effect.  It omits a few commits which were pure bugfixes on other commits
510290001Sglebius listed below.  For more detail, see the git changelogs.  For more
511290001Sglebius insight, see the "whatsnew-2.1.txt" document included in the Libevent
512290001Sglebius 2.1.2-alpha distribution.
513290001Sglebius
514290001Sglebius Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable
515290001Sglebius through 2.0.21-stable inclusive.
516290001Sglebius
517290001Sglebius Performance (core):
518290001Sglebius   o Replace pipe-based notification with EVFILT_USER where possible. This
519290001Sglebius     should make multithreaded programs on OSX and *BSD alert the main thread a
520290001Sglebius     little faster. (53a07fe)
521290001Sglebius   o Make th_base_lock nonrecursive. (9cd5acb)
522290001Sglebius
523290001Sglebius New/Changed API Functions:
524290001Sglebius   o New event_get_priority() function to return an event's priority (f90e255)
525290001Sglebius   o Add a bufferevent_get_priority() function (bd39554)
526290001Sglebius   o Add an event_base_loopcontinue() to tell Libevent to rescan for more
527290001Sglebius     events right away (7d6aa5e)
528290001Sglebius   o Add a new callback to get called on evbuffer_file_segment free
529290001Sglebius     (e9f8feb yangacer, 64051b9)
530290001Sglebius   o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman
531290001Sglebius      Puls, 232055e, ffe1643)
532290001Sglebius   o Add an event_remove_timer() to remove timer on an event without
533290001Sglebius     deleting it (e3b2e08)
534290001Sglebius   o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible
535290001Sglebius     semantics (9dee36b)
536290001Sglebius   o Rename event_enable_lock_debuging() to ..._debugging(). (The old name
537290001Sglebius     should still work.) (07e132e)
538290001Sglebius   o Add missing implementation for event_enable_debug_logging (3b3e21d)
539290001Sglebius
540290001Sglebius PORTABLE MONOTONIC TIMERS:
541290001Sglebius
542290001Sglebius   Libevent 2.1.2 includes internal support for monotonic timers on
543290001Sglebius   (nearly) all supported platforms, including Windows, and OSX.  Libevent
544290001Sglebius   applications should now be more resilient to jumps forwards or backwards
545290001Sglebius   in the system clock.  Also, on Linux systems with epoll, we now
546290001Sglebius   optionally support microsecond-level timeouts (whereas epoll only
547290001Sglebius   supports millisecond-precision timeouts).
548290001Sglebius
549290001Sglebius   o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9)
550290001Sglebius   o Do not track use_monotonic field when is no monotonic clock (cb653a0)
551290001Sglebius   o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
552290001Sglebius     (ddd69d3)
553290001Sglebius   o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7)
554290001Sglebius   o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a)
555290001Sglebius   o Refactor monotonic timer handling into a new type and set of
556290001Sglebius     functions; add a gettimeofday-based ratcheting implementation (f5e4eb0)
557290001Sglebius   o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow
558290001Sglebius     timer (a2598ec)
559290001Sglebius   o Implement fast/precise monotonic clocks on Windows (2c47045)
560290001Sglebius   o Simple unit tests for monotonic timers (630f077)
561290001Sglebius   o Improve the monotonic-time unit test: make it check the step size (7428c78)
562290001Sglebius   o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond
563290001Sglebius     precision (26c7582)
564290001Sglebius   o Split out time-related evutil functions into a new evutil_time.c (c419485)
565290001Sglebius   o Split out time-related prototypes into time-internal.h (71bca50)
566290001Sglebius   o Add evutil_time.obj to Makefile.nmake (0ba0683)
567290001Sglebius   o Avoid giving a spurious warning when timerfd support is unavailable
568290001Sglebius     (1aaf9f0 Dave Hart)
569290001Sglebius   o Make test_evutil_monotonic a little more tolerant (def3b83)
570290001Sglebius   o Avoid unused-var warning on systems with clock_gettime but without
571290001Sglebius     CLOCK_MONOTONIC_COARSE (9be5468)
572290001Sglebius
573290001SglebiusEVENT_BASE_ONCE LEAKS:
574290001Sglebius   If a callback added by event_base_once() is never invoked, Libevent no
575290001Sglebius   longer leaks internal memory.
576290001Sglebius
577290001Sglebius   o Free dangling event_once objects on event_base_free() (c17dd59)
578290001Sglebius   o Add a unit test in which an event is created with event_base_once()
579290001Sglebius     but never fires (4343edf)
580290001Sglebius
581290001SglebiusTESTING SUPPORT, FIXES AND IMPROVEMENTS:
582290001Sglebius
583290001Sglebius   Libevent now disables by default its unit tests that would touch the
584290001Sglebius   network, or that tend to fail on heavily-loaded systems.  To re-enable
585290001Sglebius   them, invoke the ./test/regress program with the @all alias.
586290001Sglebius
587290001Sglebius   o Simplify test.sh code significantly. (9b856fd Ross Lagerwall)
588290001Sglebius   o Make all tests that hit the network disabled by default (f2cea87)
589290001Sglebius   o Avoid a resource leak on error in http client benchmark (ea92fba)
590290001Sglebius   o Update to latest tinytest (911b4f0349377) (ef7c4f7)
591290001Sglebius   o Avoid (unlikely) overflow in bench_httpclient.c (5671033)
592290001Sglebius   o Shave 700 msec off the persistent_timeout_jump test (21205b8)
593290001Sglebius   o Check return value of write() in regress.c (c8009d2)
594290001Sglebius   o Make load-dependent monotonic timer tests off-by-default (2b6fe8b)
595290001Sglebius   o Add deferred_cb_skew to list of timing-dependent tests (34c8f31)
596290001Sglebius   o Avoid test -e; older shs don't have one. (f1bd938)
597290001Sglebius   o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
598290001Sglebius   o Fix a couple of compile warnings in the unit tests (5a9a014)
599290001Sglebius
600290001SglebiusMISC:
601290001Sglebius   o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas
602290001Sglebius     Marriott, 3aa4415)
603290001Sglebius
604290001SglebiusINFRASTRUCTURE (Active-later events):
605290001Sglebius   As a simplification and optimization to Libevent's "deferred callback"
606290001Sglebius   logic (introduced in 2.0 to avoid callback recursion), Libevent now
607290001Sglebius   treats all of its deferrable callback types using the same logic it uses
608290001Sglebius   for active events.  Now deferred events no longer cause priority
609290001Sglebius   inversion, no longer require special code to cancel them, and so on.
610290001Sglebius
611290001Sglebius   o Refactor the callback part of an event into its own event_callback
612290001Sglebius     type (cba59e5)
613290001Sglebius   o Add "active later" event_callbacks to supersede deferred (745a63d)
614290001Sglebius   o event_base_assert_ok: check value of event_active_count for
615290001Sglebius     correctness (fec8bae)
616290001Sglebius   o Replace deferred_cbs with event_callback-based implementation. (ae2b84b)
617290001Sglebius   o Replace more deferred_cb names with event_callback (a4079aa)
618290001Sglebius   o Give event_base_process_active a single exit path (581b5be)
619290001Sglebius   o Restore our priority-inversion-prevention code with deferreds (c0e425a)
620290001Sglebius   o Refactor event_persist_closure: raise and extract some common logic
621290001Sglebius     (bec22b4)
622290001Sglebius   o Remove the unused bits from EVLIST_ALL (9889a3d)
623290001Sglebius||||||| merged common ancestors
624290001SglebiusChanges in version 2.0.22-stable (?? Dec 2013)
625290001Sglebius
626290001Sglebius (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.)
627290001Sglebius
628290001SglebiusBUGFIXES (evhttp)
629290001Sglebius o fix #73 and fix http_connection_fail_test to catch it (crash fix) (b618204 Greg Hazel)
630290001Sglebius o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)
631290001Sglebius
632290001SglebiusBUGFIXES (compilation and portability)
633290001Sglebius o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
634290001Sglebius o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
635290001Sglebius o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (74d4c44 Kevin Bowling)
636290001Sglebius o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (817ea36)
637290001Sglebius o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
638290001Sglebius o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
639290001Sglebius o Use windows vsnprintf fixup logic on all windows environments (e826f19)
640290001Sglebius o Fix a compiler warning when checking for arc4random_buf linker breakage. (5cb3865)
641290001Sglebius o Fix another arc4random_buf-related warning (e64a2b0)
642290001Sglebius
643290001SglebiusBUGFIXES (resource leaks/lock errors on error)
644290001Sglebius o Avoid leaking fds on evconnlistener with no callback set (69db261)
645290001Sglebius o Avoid double-close on getsockname error in evutil_ersatz_socketpair (0a822a6)
646290001Sglebius o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
647290001Sglebius o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis)
648290001Sglebius
649290001SglebiusBUGFIXES (miscellaneous)
650290001Sglebius o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471)
651290001Sglebius o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)
652290001Sglebius
653290001SglebiusBUFGIXES (evdns)
654290001Sglebius o Checking request nameserver for NULL, before using it. (5c710c0 Belobrov Andrey)
655290001Sglebius o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (f8d7df8 Azat Khuzhin)
656290001Sglebius
657290001SglebiusBUGFIXES (evutil_secure_random)
658290001Sglebius o When we seed from /proc/sys/kernel/random/uuid, count it as success (e35b540)
659290001Sglebius o Document that arc4random is not a great cryptographic PRNG. (6e49696)
660290001Sglebius o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)
661290001Sglebius o Really remove RNG seeds from the stack (f5ced88)
662290001Sglebius
663290001Sglebius
664290001SglebiusDOCUMENTATION FIXES
665290001Sglebius o Fix a mistake in evbuffer_remove() arguments in example http server code (c322c20 Gyepi Sam)
666290001Sglebius o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
667290001Sglebius
668290001Sglebius
669290001Sglebius
670290001SglebiusChanges in version 2.0.21-stable (18 Nov 2012)
671290001SglebiusBUGFIXES:
672290001Sglebius o ssl: Don't discard SSL read event when timeout and read come close together (576b29f)
673290001Sglebius o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch)
674290001Sglebius o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch)
675290001Sglebius o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev)
676290001Sglebius o build: Use python2 rather than python (0eb0109 Ross Lagerwall)
677290001Sglebius o build: Compile without warnings on mingw64 (94866c2)
678290001Sglebius o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4)
679290001Sglebius o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4)
680290001Sglebius o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez)
681290001Sglebius o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3)
682290001Sglebius o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier)
683290001Sglebius o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
684290001Sglebius o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9)
685290001Sglebius
686290001Sglebius
687290001SglebiusChanges in version 2.0.20-stable (23 Aug 2012)
688290001SglebiusBUGFIXES:
689290001Sglebius o core: Make event_pending() threadsafe. (be7a95c Simon Liu)
690290001Sglebius o win32: avoid crash when waiting forever on zero fds. (160e58b)
691290001Sglebius o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31)
692290001Sglebius o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c)
693290001Sglebius o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67)
694290001Sglebius o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3)
695290001Sglebius o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel)
696290001Sglebius o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43)
697290001Sglebius
698290001Sglebius
699290001SglebiusPORTABILITY FIXES:
700290001Sglebius o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel)
701290001Sglebius o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn)
702290001Sglebius o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6)
703290001Sglebius
704290001SglebiusBUILD FIXES:
705290001Sglebius o Add GCC annotations so that the vsprintf functions get checked properly (117e327)
706290001Sglebius o Fix an unused variable warning on *BSD. (c0720c1)
707290001Sglebius
708290001SglebiusUNIT TEST FIXES:
709290001Sglebius o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall)
710290001Sglebius o Remove deadcode in http regression tests. Found by coverity. (5553346)
711290001Sglebius o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777)
712290001Sglebius o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d)
713290001Sglebius o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d)
714290001Sglebius o Fix resource leaks in the unit tests; found by coverity (270f279)
715290001Sglebius o Add some missing null checks to unit tests; found by coverity (f021c3d)
716290001Sglebius o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf)
717290001Sglebius o Remove unused variable; spotted by coverity (6355b2a)
718290001Sglebius o Add checks to various return values in unit tests. Found by coverity (b9e7329)
719290001Sglebius o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0)
720290001Sglebius
721290001Sglebius
722290001Sglebius
723290001SglebiusChanges in version 2.0.19-stable (3 May 2012)
724290001SglebiusBUGFIXES (CORE):
725290001Sglebius o Refactor event_persist_closure: raise and extract some common logic (bec22b4)
726290001Sglebius o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c)
727290001Sglebius o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40)
728290001Sglebius
729290001SglebiusBUGFIXES (SSL):
730290001Sglebius o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey)
731290001Sglebius
732290001SglebiusBUGFIXES (DNS):
733290001Sglebius o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel)
734290001Sglebius o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel)
735290001Sglebius o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a)
736290001Sglebius
737290001SglebiusDOCUMENTATION FIXES:
738290001Sglebius o Fix a typo in the bufferevent documentation (98e9119)
739290001Sglebius o Add missing ) to changelog; spotted by rransom (4c7ee6b)
740290001Sglebius o Fix the website URL in the readme (f775521)
741290001Sglebius
742290001SglebiusCOMPILATION FIXES:
743290001Sglebius o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae)
744290001Sglebius o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn)
745290001Sglebius o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg)
746290001Sglebius
747290001SglebiusFORWARD-COMPATIBILITY:
748290001Sglebius o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2)
749290001Sglebius
750290001SglebiusTESTING/DEBUGGING SUPPORT:
751290001Sglebius o dns-example.c can now take a resolv.conf file on the commandline (6610fa5)
752290001Sglebius o Make some evdns.c debug logs more verbose (d873d67)
753290001Sglebius o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd)
754290001Sglebius
755290001Sglebius
756290001Sglebius
757290001SglebiusChanges in version 2.0.18-stable (22 Mar 2012)
758290001SglebiusBUGFIXES (core):
759290001Sglebius o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42)
760290001Sglebius
761290001SglebiusBUGFIXES (kqueue):
762290001Sglebius o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn)
763290001Sglebius
764290001SglebiusBUILD FIXES:
765290001Sglebius o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey)
766290001Sglebius o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey)
767290001Sglebius o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn)
768290001Sglebius
769290001SglebiusBUGFIXES (dns):
770290001Sglebius o Stop crashing in evdns when nameserver probes give a weird error (bec5068)
771290001Sglebius
772290001Sglebius
773290001SglebiusChanges in version 2.0.17-stable (10 Feb 2012)
774290001Sglebius
775290001SglebiusBUGFIXES (core):
776290001Sglebius o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5)
777290001Sglebius o check for sysctl before we use it (358c745 Mike Frysinger)
778290001Sglebius o Remove bogus casts of socket to int before calling ev_callback (f032516)
779290001Sglebius o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720)
780290001Sglebius o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc)
781290001Sglebius o Fix a fd leak in event_reinit() (3f18ad1)
782290001Sglebius o Do a memberwise comparison of threading function tables (c94a5f2 Nate R)
783290001Sglebius o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill)
784290001Sglebius o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6)
785290001Sglebius o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott)
786290001Sglebius
787290001SglebiusBUGFIXES (evbuffer and bufferevents):
788290001Sglebius o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg)
789290001Sglebius o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812)
790290001Sglebius
791290001SglebiusBUGFIXES (evhttp):
792290001Sglebius o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea)
793290001Sglebius
794290001SglebiusBUGFIXES (evdns):
795290001Sglebius o evdns: fix a bug in circular-queue implementation (d6094b1)
796290001Sglebius
797290001SglebiusBUILD FIXES:
798290001Sglebius o Fix a silly compilation error with the sun compiler (1927776 Colin Watt)
799290001Sglebius o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c)
800290001Sglebius
801290001SglebiusDOCUMENTATION FIXES:
802290001Sglebius o Slightly clarify evbuffer_peek documentation (7bbf6ca)
803290001Sglebius o Update copyright notices to 2012 (e49e289)
804290001Sglebius
805290001SglebiusNEW APIS:
806290001Sglebius o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker)
807290001Sglebius
808290001SglebiusTESTS AND TEST FIXES:
809290001Sglebius o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7)
810290001Sglebius o Add function to check referential integrity of an event_base (27737d5)
811290001Sglebius o Check event_base correctness at end of each unit test (3312b02)
812290001Sglebius o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187)
813290001Sglebius o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259)
814290001Sglebius
815290001SglebiusChanges in version 2.0.16-stable (18 Nov 2011)
816290001SglebiusBUGFIXES (core):
817290001Sglebius o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov)
818290001Sglebius o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles)
819290001Sglebius o Fix compile warning from saying event2/*.h inside a comment (447b0ba)
820290001Sglebius o Warn when unable to construct base because of failing make_base_notifiable (4e797f3)
821290001Sglebius o Don't try to make notifiable event_base when no threading fns are configured (e787413)
822290001Sglebius
823290001SglebiusBUGFIXES (evbuffer):
824290001Sglebius o unit test for remove_buffer bug (90bd620 Greg Hazel)
825290001Sglebius o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c)
826290001Sglebius
827290001SglebiusBUGFIXES (bufferevent_openssl):
828290001Sglebius o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey)
829290001Sglebius o Move SSL rate-limit enforcement into bytes_to_read() (96c562f)
830290001Sglebius o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey)
831290001Sglebius
832290001SglebiusBUGFIXES (dns)
833290001Sglebius o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov)
834290001Sglebius
835290001SglebiusTESTING:
836290001Sglebius o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov)
837290001Sglebius o Test for commit aff6ba1 (f7841bf Leonid Evdokimov)
838290001Sglebius o Style and comment tweaks for dns/leak* tests (5e42202)
839290001Sglebius o improve test to remove at least one buffer from src (7eb52eb Greg Hazel)
840290001Sglebius
841290001SglebiusDOCUMENTATION:
842290001Sglebius o Add note about evhttp_send_reply_end to its doxygen (724bfb5)
843290001Sglebius o Update copyright dates to 2011. (3c824bd)
844290001Sglebius o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid)
845290001Sglebius o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem)
846290001Sglebius
847290001Sglebius
848290001Sglebius
849290001SglebiusChanges in version 2.0.15-stable (12 Oct 2011)
850290001SglebiusBUGFIXES (DNS):
851290001Sglebius o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov)
852290001Sglebius o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov)
853290001Sglebius
854290001SglebiusBUFGIXES (bufferevents and evbuffers):
855290001Sglebius o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex)
856290001Sglebius o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9)
857290001Sglebius
858290001SglebiusBUGFIXES (event loop):
859290001Sglebius o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a)
860290001Sglebius
861290001SglebiusDOCUMENTATION FIXES:
862290001Sglebius o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov)
863290001Sglebius o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel)
864290001Sglebius
865290001SglebiusBUILD AND TESTING FIXES:
866290001Sglebius o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev)
867290001Sglebius o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382)
868290001Sglebius o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey)
869290001Sglebius o Make write-checking fixes use tt_fail_perror (2b76847)
870290001Sglebius o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7)
871290001Sglebius
872290001Sglebius
873290001Sglebius
874290001SglebiusChanges in version 2.0.14-stable (31 Aug 2011)
875290001SglebiusBUGFIXES (bufferevents and evbuffers):
876290001Sglebius o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch)
877290001Sglebius o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn)
878290001Sglebius o Fix handling of group rate limits under 64 bytes of burst (6d5440e)
879290001Sglebius o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf)
880290001Sglebius o Make rate limiting work with common_timeout logic (5b18f13)
881290001Sglebius o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch)
882290001Sglebius
883290001SglebiusBUGFIXES (IOCP):
884290001Sglebius o IOCP: don't launch reads or writes on an unconnected socket (495c227)
885290001Sglebius o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b)
886290001Sglebius o Have test-ratelim.c support IOCP (0ff2c5a)
887290001Sglebius o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd)
888290001Sglebius o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d)
889290001Sglebius
890290001SglebiusBUGFIXES (other):
891290001Sglebius o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov)
892290001Sglebius o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov)
893290001Sglebius
894290001SglebiusBUILD AND TESTING FIXES:
895290001Sglebius o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston)
896290001Sglebius o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart)
897290001Sglebius o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn)
898290001Sglebius
899290001Sglebius
900290001SglebiusChanges in version 2.0.13-stable (18 Jul 2011)
901290001SglebiusBUGFIXES
902290001Sglebius o Avoid race-condition when initializing global locks (b683cae)
903290001Sglebius o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch)
904290001Sglebius o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey)
905290001Sglebius o Avoid a segfault when all methods are disabled or broken (27ce38b)
906290001Sglebius o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a)
907290001Sglebius o Add some missing checks for mm_calloc failures (89d5e09)
908290001Sglebius o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d)
909290001Sglebius o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab)
910290001Sglebius o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid)
911290001Sglebius o Use the correct printf args when formatting size_t (3203f88)
912290001Sglebius o Complain if the caller tries to change threading cbs after setting them (cb6ecee)
913290001Sglebius
914290001SglebiusDOCUMENTATION FIXES AND IMPROVEMENTS
915290001Sglebius o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac)
916290001Sglebius o Update Doxyfile to produce more useful output (aea0555)
917290001Sglebius
918290001SglebiusTEST FIXES
919290001Sglebius o Fix up test_evutil_snprintf (caf695a)
920290001Sglebius o Fix tinytest invocation from windows shell (57def34 Ed Day)
921290001Sglebius
922290001SglebiusBUILD FIXES
923290001Sglebius o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d)
924290001Sglebius o Fix select.c compilation on systems with no NFDBITS (49d1136)
925290001Sglebius o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott)
926290001Sglebius o Don't break when building tests from git without python installed (b031adf)
927290001Sglebius o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn)
928290001Sglebius o Fix AIX build issue with TAILQ_FOREACH definition (e934096)
929290001Sglebius
930290001Sglebius
931290001SglebiusChanges in version 2.0.12-stable (4 Jun 2011)
932290001SglebiusBUGFIXES
933290001Sglebius o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0)
934290001Sglebius o Fix an assert-inducing fencepost bug in the select backend (d90149d)
935290001Sglebius o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko)
936290001Sglebius o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1)
937290001Sglebius o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid)
938290001Sglebius o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey)
939290001Sglebius o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey)
940290001Sglebius
941290001SglebiusDOCUMENTATION:
942290001Sglebius o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d)
943290001Sglebius
944290001SglebiusBUILD FIXES
945290001Sglebius o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin)
946290001Sglebius o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin)
947290001Sglebius o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn)
948290001Sglebius o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn)
949290001Sglebius o Correctly detect openssl on windows (6619385 Sebastian Hahn)
950290001Sglebius o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn)
951290001Sglebius o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart)
952290001Sglebius o Fix new warnings from GCC 4.6 (06a714f)
953290001Sglebius o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin)
954290001Sglebius o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin)
955290001Sglebius o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin)
956290001Sglebius o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin)
957290001Sglebius o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin)
958290001Sglebius o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin)
959290001Sglebius o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin)
960290001Sglebius o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin)
961290001Sglebius o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn)
962290001Sglebius o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin)
963290001Sglebius o cygwin: make it possible to build DLLs (d54d3fc)
964290001Sglebius
965290001Sglebius
966290001Sglebius
967290001SglebiusChanges in version 2.0.11-stable (27 Apr 2011)
968290001Sglebius  [Autogenerated from the Git log, sorted and cleaned by hand.]
969290001SglebiusBUGFIXES:
970290001Sglebius o Fix evport handling of POLLHUP and POLLERR (b42ce4b)
971290001Sglebius o Fix compilation on Windows with NDEBUG (cb8059d)
972290001Sglebius o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye)
973290001Sglebius o Detect and handle more allocation failures. (666b096 Jardel Weyrich)
974290001Sglebius o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich)
975290001Sglebius o Handle resize failures in the select backend better. (83e805a)
976290001Sglebius o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b)
977290001Sglebius o Make --enable-gcc-warnings a no-op if not using gcc (3267703)
978290001Sglebius o Fix a type error in our (unused) arc4random_stir() (f736198)
979290001Sglebius o Correctly detect and stop non-chunked http requests when the body is too long (63a715e)
980290001Sglebius o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7)
981290001Sglebius o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko)
982290001Sglebius o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot)
983290001Sglebius o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko)
984290001Sglebius o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko)
985290001Sglebius o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko)
986290001Sglebius o Fix a crash bug in evdns server circular list code (00e91b3)
987290001Sglebius o Handle calloc failure in evdns. (Found by Dave Hart) (364291e)
988290001Sglebius o Fix a memory leak on win32 socket->event map. (b4f89f0)
989290001Sglebius o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn)
990290001Sglebius o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn)
991290001Sglebius
992290001SglebiusPORTABILITY:
993290001Sglebius o Fall back to sscanf if we have no other way to implement strtoll (453317b)
994290001Sglebius o Build correctly on platforms without sockaddr_storage (9184563)
995290001Sglebius o Try to build correctly on platforms with no IPv6 support (713c254)
996290001Sglebius o Build on systems without AI_PASSIVE (cb92113)
997290001Sglebius o Fix http unit test on non-windows platforms without getaddrinfo (6092f12)
998290001Sglebius o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0)
999290001Sglebius o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn)
1000290001Sglebius o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn)
1001290001Sglebius o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn)
1002290001Sglebius o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn)
1003290001Sglebius o Check for allocation failures in apply_socktype_protocol_hack (637d17a)
1004290001Sglebius o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b)
1005290001Sglebius o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68)
1006290001Sglebius
1007290001SglebiusDEFENSIVE PROGRAMMING:
1008290001Sglebius o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7)
1009290001Sglebius
1010290001SglebiusBUGS IN TESTS:
1011290001Sglebius o Fix test.sh output on solaris (b4f89b6 Dave Hart)
1012290001Sglebius o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn)
1013290001Sglebius o Use %s with printf in test.sh (039b9bd)
1014290001Sglebius o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn)
1015290001Sglebius o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn)
1016290001Sglebius o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn)
1017290001Sglebius o add some (void) casts for unused variables (65707d7 Sebastian Hahn)
1018290001Sglebius o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn)
1019290001Sglebius o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn)
1020290001Sglebius o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn)
1021290001Sglebius o Remote some dead code from dns-example.c (744c745 Sebastian Hahn)
1022290001Sglebius o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn)
1023290001Sglebius
1024290001SglebiusBUILD FIXES:
1025290001Sglebius o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn)
1026290001Sglebius o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn)
1027290001Sglebius o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn)
1028290001Sglebius o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart)
1029290001Sglebius o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart)
1030290001Sglebius o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn)
1031290001Sglebius
1032290001SglebiusFEATURES:
1033290001Sglebius o Make URI parser able to tolerate nonconformant URIs. (95060b5)
1034290001Sglebius
1035290001SglebiusDOCUMENTATION:
1036290001Sglebius o Clarify event_set_mem_functions doc (926f816)
1037290001Sglebius o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924)
1038290001Sglebius o fix spelling mistake in whatsnew-2.0.txt (deb2f73)
1039290001Sglebius o Fix sample/http-server ipv6 fixes (eb692be)
1040290001Sglebius o Comment internal headers used in sample code. (4eb281c)
1041290001Sglebius o Be explicit about how long event loops run in event.h documentation (f95bafb)
1042290001Sglebius o Add comment to configure.in to explain gc-sections test logic (c621359)
1043290001Sglebius o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665)
1044290001Sglebius
1045290001Sglebius
1046290001Sglebius
1047290001SglebiusBUILD IMPROVEMENTS:
1048290001Sglebius Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes
1049290001Sglebius numerous other build system. Parallel builds should be faster, and all
1050290001Sglebius builds should be quieter.
1051290001Sglebius
1052290001Sglebius   o Split long lists in Makefile.am into one-item-per-line (2711cda)
1053290001Sglebius   o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall)
1054290001Sglebius   o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier)
1055290001Sglebius   o Use newer syntax for autoconf/automake init (7d60ba8)
1056290001Sglebius   o Enable silent build rules by default. Override with V=1 (7b18e5c)
1057290001Sglebius   o Switch to non-recursive makefiles (7092f3b)
1058290001Sglebius   o Rename subordinate Makefile.ams to include.am (6cdfeeb)
1059290001Sglebius   o Make quiet build even quieter (371a123)
1060290001Sglebius   o New --quiet option for event_rpcgen.py (aa59c1e)
1061290001Sglebius   o Be quiet when making regress.gen.[ch] (607a8ff)
1062290001Sglebius   o Fix handling of no-python case for nonrecursive make (1e3123d)
1063290001Sglebius   o We now require automake 1.9 or later. Modernize! (b7f6e89)
1064290001Sglebius   o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall)
1065290001Sglebius   o Use correct openssl libs and includes in pkgconfig file (d70af27)
1066290001Sglebius   o Use the same CFLAGS for openssl when building unit tests as with
1067290001Sglebius     libevent (1d9d511)
1068290001Sglebius
1069290001SglebiusDOCUMENTATION
1070290001Sglebius   o Note that make_base_notifiable should not be necessary (26ee5f9)
1071290001Sglebius   o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb)
1072290001Sglebius   o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee)
1073290001Sglebius   o Make it more clear that NOLOCK means "I promise, no multithreading"
1074290001Sglebius    (9444524)
1075290001Sglebius   o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall)
1076290001Sglebius   o Make the Makefile.nmake warning slightly less dire (e7bf4c8)
1077290001Sglebius   o Fix typo : events instead of evets (05f1aca Azat Khuzhin)
1078290001Sglebius   o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
1079290001Sglebius     (6bde2ef Patrick Pelletier)
1080290001Sglebius
1081290001SglebiusEVHTTP:
1082290001Sglebius   o ignore LWS after field-content in headers (370a2c0 Artem Germanov)
1083290001Sglebius   o Clean up rtrim implementation (aa59d80)
1084290001Sglebius   o Remove trailing tabs in HTTP headers as well. (ac42519)
1085290001Sglebius   o Remove internal ws from multiline http headers correctly (c6ff381)
1086290001Sglebius   o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af)
1087290001Sglebius   o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren)
1088290001Sglebius   o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in
1089290001Sglebius     evhttp_connection_fail_ (7afbd60)
1090290001Sglebius   o preserve errno in evhttp_connection_fail_ for inspection by the
1091290001Sglebius     callback (36d0ee5 Patrick Pelletier)
1092290001Sglebius
1093290001SglebiusBUGFIXES:
1094290001Sglebius   o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b)
1095290001Sglebius   o Avoid double-free on error in evbuffer_add_file. Found by
1096290001Sglebius     coverity. (6a81b1f)
1097290001Sglebius   o Fix another possible uninitialized read in dns regression tests. Found
1098290001Sglebius     by coverity. (13525c5)
1099290001Sglebius   o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1)
1100290001Sglebius   o Avoid memory leak in test_event_calloc unit test; found by coverity
1101290001Sglebius     (92817a1)
1102290001Sglebius   o Fix a shadowed variable in addfile_test_readcb; found by coverity
1103290001Sglebius     (225344c)
1104290001Sglebius   o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by
1105290001Sglebius     coverity (6487f63)
1106290001Sglebius   o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786
1107290001Sglebius     Joachim Bauch)
1108290001Sglebius   o Make event_base_getnpriorities work with old "implicit base" code
1109290001Sglebius     (c46cb9c)
1110290001Sglebius   o Simplify and correct evutil_open_closeonexec_ (0de587f)
1111290001Sglebius   o Fix event_dlist definition when sys/queue not included (81b6209
1112290001Sglebius     Derrick Pallas)
1113290001Sglebius
1114290001Sglebius
1115290001Sglebius
1116290001SglebiusChanges in version 2.1.1-alpha (4 Apr 2012)
1117290001Sglebius
1118290001Sglebius Libevent 2.1.1-alpha includes a number of new features and performance
1119290001Sglebius improvements.  The log below tries to organize them by rough area of
1120290001Sglebius effect.  It omits some commits which were pure bugfixes on other commits
1121290001Sglebius listed below.  For more detail, see the git changelogs.  For more
1122290001Sglebius insight, see the "whatsnew-2.1.txt" document included in the Libevent
1123290001Sglebius 2.1.1-alpha distribution.
1124290001Sglebius
1125290001Sglebius Performance: Core
1126290001Sglebius   o Replace several TAILQ users with LIST. LIST can be a little faster than
1127290001Sglebius     TAILQ for cases where we don't need queue-like behavior. (f9db33d,
1128290001Sglebius     6494772, d313c29, 974d004)
1129290001Sglebius   o Disabled code to optimize the case where we reinsert an existing
1130290001Sglebius     timeout (e47042f, 09cbc3d)
1131290001Sglebius   o Remove a needless base-notify when rescheduling the first timeout (77a96fd)
1132290001Sglebius   o Save a needless comparison when removing/adjusting timeouts (dd5189b)
1133290001Sglebius   o Possible optimization: split event_queue_insert/remove into
1134290001Sglebius     separate functions. needs testing (efc4dc5)
1135290001Sglebius   o Make event_count maintenance branchless at the expense of an
1136290001Sglebius     extra shift. Needs benchmarking (d1cee3b)
1137290001Sglebius   o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime
1138290001Sglebius     comparison (2a83ecc)
1139290001Sglebius   o Optimization in event_process_active(): ignore maxcb & endtime
1140290001Sglebius     for highest priority events. (a9866aa Alexander Drozdov)
1141290001Sglebius   o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95)
1142290001Sglebius   o Remove the eventqueue list and the ev_next pointers. (604569b 066775e)
1143290001Sglebius
1144290001Sglebius Performance: Evbuffers
1145290001Sglebius   o Roughly 20% speed increase when line-draining a buffer using
1146290001Sglebius     EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib)
1147290001Sglebius   o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139)
1148290001Sglebius   o Fix a bug in the improved EOL_CRLF code (d927965)
1149290001Sglebius   o Remove a needless branch in evbuffer_drain() (d19a326)
1150290001Sglebius
1151290001Sglebius Performance: Linux
1152290001Sglebius   o Infrastructure for using faster/fewer syscalls when creating
1153290001Sglebius     sockets (a1c042b)
1154290001Sglebius   o Minimize syscalls during socket creation in listener.c (7e9e289)
1155290001Sglebius   o Use a wrapper function to create the notification
1156290001Sglebius     pipe/socketpair/eventfd (ca76cd9)
1157290001Sglebius   o Use pipes for telling signals to main thread when possible (a35f396)
1158290001Sglebius   o Save syscalls when constructing listener sockets for evhttp (af6c9d8)
1159290001Sglebius   o Save some syscalls when creating evdns sockets (713e570)
1160290001Sglebius   o Save some syscalls when constructing a socket for a bufferevent (33fca62)
1161290001Sglebius   o Prefer epoll_create1 on Linuxen that have it (bac906c)
1162290001Sglebius
1163290001Sglebius Performance: Epoll backend
1164290001Sglebius   o Use current event set rather than current pending change when
1165290001Sglebius     deciding whether to no-op a del (04ba27e Mike Smellie)
1166290001Sglebius   o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6)
1167290001Sglebius   o Clean up error handling in epoll_apply_one_change() a little (2d55a19)
1168290001Sglebius
1169290001Sglebius Performance: Evport backend
1170290001Sglebius   o evport: use evmap_io to track fdinfo status. Should save time and
1171290001Sglebius     RAM. (4687ce4)
1172290001Sglebius   o evport: Remove a linear search over recent events when
1173290001Sglebius     reactivating them (0f77efe)
1174290001Sglebius   o evport: Use portev_user to remember fdinfo struct (276ec0e)
1175290001Sglebius   o evport: don't scan more events in ed_pending than needed (849a5cf)
1176290001Sglebius   o evport: Remove artificial low limit on max events per getn call (c04d927)
1177290001Sglebius   o Reenable main/many_events_slow_add for evport in 2.1 (e903db3)
1178290001Sglebius
1179290001Sglebius Performance: Windows
1180290001Sglebius   o Use GetSystemTimeAsFileTime to implement gettimeofday on
1181290001Sglebius     win32. It's faster and more accurate than our old
1182290001Sglebius     approach. (b8b8aa5)
1183290001Sglebius
1184290001Sglebius New functions and features: debugging
1185290001Sglebius   o Add event_enable_debug_logging() to control use of debug logs (e30a82f)
1186290001Sglebius
1187290001Sglebius New functions and features: core
1188290001Sglebius   o Add event_config function to limit time/callbacks between calls
1189290001Sglebius     to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd)
1190290001Sglebius   o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no
1191290001Sglebius     events are pending (084e68f)
1192290001Sglebius   o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov)
1193290001Sglebius   o Make evbase_priority_init() and evbase_get_npriorities()
1194290001Sglebius     threadsafe (3c55b5e)
1195290001Sglebius   o New event_base_update_cache_time() to set cached_tv to current
1196290001Sglebius     time (212533e Abel Mathew)
1197290001Sglebius   o Add event_self_cbarg() to be used in conjunction with
1198290001Sglebius     event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c,
1199290001Sglebius     33e43ef)
1200290001Sglebius   o Add a new libevent_global_shutdown() to free all globals before
1201290001Sglebius     exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b)
1202290001Sglebius   o Use getifaddrs to detect our interfaces if possible (7085a45)
1203290001Sglebius   o Add event_base_get_running_event() to get the event* whose cb we
1204290001Sglebius     are in (c5732fd, 13dad99)
1205290001Sglebius
1206290001Sglebius New functions and features: building
1207290001Sglebius   o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn)
1208290001Sglebius
1209290001Sglebius New functions and features: evbuffers
1210290001Sglebius   o Add evbuffer_add_file_segment() so one fd can be used efficiently
1211290001Sglebius     in more than one evbuffer_add_file at a time (e72afae, c2d9884,
1212290001Sglebius     3f405d2, 0aad014)
1213290001Sglebius   o Fix windows file segment mappings (8254de7)
1214290001Sglebius   o Allow evbuffer_ptr_set to yield a point just after the end of the
1215290001Sglebius     buffer. (e6fe1da)
1216290001Sglebius   o Allow evbuffer_ptr to point to position 0 in an empty evbuffer
1217290001Sglebius     (7aeb2fd Nir Soffer)
1218290001Sglebius   o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer)
1219290001Sglebius   o support adding buffers to other buffers non-destructively
1220290001Sglebius     (9d7368a Joachim Bauch)
1221290001Sglebius   o prevent nested multicast references, reworked locking (26041a8
1222290001Sglebius     Joachim Bauch)
1223290001Sglebius   o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an
1224290001Sglebius     evbuffer (d7a8b36 Andrea Montefusco, 54142c9)
1225290001Sglebius   o Make evbuffer_file_segment_types adaptable (c6bbbf1)
1226290001Sglebius   o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398)
1227290001Sglebius   o Add evbuffer_copyout_from to copy data from the middle of a
1228290001Sglebius     buffer (27e2225)
1229290001Sglebius
1230290001Sglebius New functions and features: bufferevents
1231290001Sglebius   o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea)
1232290001Sglebius   o Tweak allow_dirty_shutdown documentation (a44cd2b)
1233290001Sglebius   o Fix two issues in the allow_dirty_shutdown code. (f3b89de)
1234290001Sglebius   o Add a bufferevent_getcb() to find a bufferevent's current
1235290001Sglebius     callbacks (a650394)
1236290001Sglebius   o bufferevent: Add functions to set/get max_single_read/write
1237290001Sglebius     values. (998c813 Alexander Drozdov)
1238290001Sglebius   o bev_ssl: Be more specific in event callbacks. evhttp in particular gets
1239290001Sglebius     confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a
1240290001Sglebius     Catalin Patulea)
1241290001Sglebius
1242290001Sglebius New functions and features: evconnlisteners
1243290001Sglebius   o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey,
1244290001Sglebius     a270728)
1245290001Sglebius   o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728)
1246290001Sglebius   o Allow evconnlistener to be created in disabled state. (9593a33
1247290001Sglebius     Alexander Drozdov)
1248290001Sglebius   o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener
1249290001Sglebius     sockets too (4970329)
1250290001Sglebius
1251290001Sglebius Evhttp:
1252290001Sglebius   o Add new evhttp_{connection_}set_timeout_tv() functions to set
1253290001Sglebius     finger-grained http timeouts (6350e6c Constantine Verutin)
1254290001Sglebius   o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey)
1255290001Sglebius   o Add missing break to evhttp_parse_request_line (0fcc536)
1256290001Sglebius   o Add evhttp callback for bufferevent creation; this lets evhttp
1257290001Sglebius     support SSL. (8d3a850)
1258290001Sglebius   o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758)
1259290001Sglebius   o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra)
1260290001Sglebius
1261290001Sglebius Build improvements:
1262290001Sglebius   o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on
1263290001Sglebius     patches for correctness and robustness. (1fa7dbe Kevin Bowling)
1264290001Sglebius   o Filter '# define' statements from autoconf and generate
1265290001Sglebius     event-private.h (321b558 Kevin Bowling)
1266290001Sglebius   o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling)
1267290001Sglebius   o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93
1268290001Sglebius     Kevin Bowling)
1269290001Sglebius   o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling)
1270290001Sglebius   o Use a Configuration Header Template for evconfig-private.h (868f888
1271290001Sglebius     Kevin Bowling)
1272290001Sglebius   o Fix a comment warning and add evconfig-private.h to .gitignore
1273290001Sglebius     (f6d66bc Kevin Bowling)
1274290001Sglebius   o Include evconfig-private.h in internal files for great good. (0915ca0
1275290001Sglebius     Kevin Bowling)
1276290001Sglebius   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
1277290001Sglebius     (ad03952 Kevin Bowling)
1278290001Sglebius   o Prefer the ./configure evconfig-private.h in MinGW, just in
1279290001Sglebius     case. (f964b72 Kevin Bowling)
1280290001Sglebius   o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling)
1281290001Sglebius   o Add evconfig-private to remaining files (ded0a09 Kevin Bowling)
1282290001Sglebius   o Allow use of --enable-silent-rules for quieter compilation with
1283290001Sglebius     automake 1.11 (f1f8514 Dave Hart)
1284290001Sglebius   o Use "_WIN32", not WIN32: it's standard and we don't need to fake it
1285290001Sglebius     (9f560b)
1286290001Sglebius   o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin)
1287290001Sglebius   o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin)
1288290001Sglebius   o Provide the autoconf m4 macros for the new OpenSSL via pkg-config
1289290001Sglebius     stuff. (674dc3d Harlan Stenn)
1290290001Sglebius   o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn)
1291290001Sglebius   o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b
1292290001Sglebius     Harlan Stenn)
1293290001Sglebius   o Fix OSX build: $(OPENSSL_INCS) needs to be after
1294290001Sglebius     $(AM_CPPFLAGS). (46f1769 Zack Weinberg)
1295290001Sglebius   o Make gcc warnings on by default, and --enable-gcc-warnings only add
1296290001Sglebius     -Werror (d46517e Sebastian Hahn)
1297290001Sglebius   o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad)
1298290001Sglebius   o Move libevent 1.x headers to include/, to put all public headers in
1299290001Sglebius     one place. (bbea8d6)
1300290001Sglebius   o Put #ifdef around some files to support alternate build
1301290001Sglebius     systems. (76d4c92 Ross Lagerwall)
1302290001Sglebius   o Also make win32select.c conditional for IDE users (bf2c5a7)
1303290001Sglebius
1304290001Sglebius Debugging:
1305290001Sglebius   o Add a magic number to debug_locks to better catch lock-coding
1306290001Sglebius     errors. (b4a29c0 Dave Hart)
1307290001Sglebius   o munge the debug_lock signature before freeing it: it might help us
1308290001Sglebius     catch use-after-free (f28084d)
1309290001Sglebius   o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey)
1310290001Sglebius   o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey)
1311290001Sglebius   o Added usec debug in another area for debug (3baab0d Mark Ellzey)
1312290001Sglebius   o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey)
1313290001Sglebius   o more event dbg updates (6727543 Mark Ellzey)
1314290001Sglebius   o Clarify event_enable_debug_logging a little (6207826)
1315290001Sglebius   o Make --enable-verbose-debug option match its help text (10c3450)
1316290001Sglebius   o Add argument checks to some memory functions in `event.c'. (c8953d1
1317290001Sglebius     Mansour Moufid)
1318290001Sglebius
1319290001Sglebius Testing:
1320290001Sglebius   o More abstraction in test.sh (cd74c4e)
1321290001Sglebius   o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer)
1322290001Sglebius   o Tweaks to return types with end-of-buf ptrs (9ab8ab8)
1323290001Sglebius   o Add an (internal) usleep function for use by unit tests (f25d9d3)
1324290001Sglebius   o Synchronize with upstream tinytest (6c81be7)
1325290001Sglebius   o Make test-changelist faster (7622d26)
1326290001Sglebius   o Reduce the timeout in the main/fork test. (ab14f7c)
1327290001Sglebius   o New evhttp function to adjust initial retry timeout (350a3c4)
1328290001Sglebius   o Make regression tests run over 3x faster. (67a1763)
1329290001Sglebius   o Use test_timeval_diff_eq more consistently (b77b43f)
1330290001Sglebius   o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f)
1331290001Sglebius   o When including an -internal.h header outside the main tree, do so
1332290001Sglebius     early (95e2455)
1333290001Sglebius   o Add a new test: test-fdleak which tests for fd leaks by creating many
1334290001Sglebius     sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc)
1335290001Sglebius   o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce)
1336290001Sglebius   o Test more bufferevent_ratelim features (c24f91a)
1337290001Sglebius
1338290001Sglebius Documentation:
1339290001Sglebius   o Improve evbuffer_ptr documentation (261ba63)
1340290001Sglebius   o added comments to describe refcounting of multicast chains (ba24f61
1341290001Sglebius     Joachim Bauch)
1342290001Sglebius   o Add doxygen for event_base_dump_events (cad5753)
1343290001Sglebius
1344290001Sglebius OSX:
1345290001Sglebius   o Use "unlimited select" on OSX so that we can have more than
1346290001Sglebius     FD_SETSIZE fds (1fb5cc6)
1347290001Sglebius
1348290001Sglebius KQueue:
1349290001Sglebius   o Use SIG_IGN instead of a do-nothing handler for signal events with
1350290001Sglebius     kqueue (148458e Zack Weinberg)
1351290001Sglebius
1352290001Sglebius evprc:
1353290001Sglebius   o event_rpcgen.py now prints status information to stdout and errors to
1354290001Sglebius     stderr. (ffb0ba0 Ross Lagerwall)
1355290001Sglebius
1356290001Sglebius Code improvement and refactoring:
1357290001Sglebius   o Make event_reinit() more robust and maintainable (272033e)
1358290001Sglebius   o Restore fast-path event_reinit() for slower backends (2c4b5de)
1359290001Sglebius   o Check changelist as part of checking representational integrity (39b3f38)
1360290001Sglebius   o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn)
1361290001Sglebius   o Refactor the functions that run over every event. (c89b4e6)
1362290001Sglebius   o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90)
1363290001Sglebius   o Make event-config.h depend on Makefile.am (2958a5c)
1364290001Sglebius
1365290001Sglebius Build fixes:
1366290001Sglebius   o Don't do clang version detection when disabling some flags (083296b
1367290001Sglebius     Sebastian Hahn)
1368290001Sglebius
1369290001Sglebius C standards conformance:
1370290001Sglebius   o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69)
1371290001Sglebius   o Convert event-config.h macros to avoid reserved identifiers (68120d9)
1372290001Sglebius   o Generate event-config.h using the correct macros. (f82c57e)
1373290001Sglebius   o Convert include-guard macro convention to avoid reserved identifiers
1374290001Sglebius     (3f8c7cd)
1375290001Sglebius   o Make event_rpcgen.py output conform to identifier conventions (372bff1)
1376290001Sglebius   o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0)
1377290001Sglebius   o Make the generated event-config.h use correct include guards (639383a)
1378290001Sglebius   o Fix all identifiers with names beginning with underscore. (cb9da0b)
1379290001Sglebius   o Make event_rpcgen.py output conform to identifier conventions, more
1380290001Sglebius     (bcefd24)
1381290001Sglebius   o Fix some problems introduced by automated identifier cleanup script
1382290001Sglebius     (c963534)
1383290001Sglebius   o Have all visible internal function names end with an underscore. (8ac3c4c)
1384290001Sglebius   o Apply the naming convention to our EVUTIL_IS* functions (c7848fa)
1385290001Sglebius   o Clean up lingering _identifiers. (946b584)
1386290001Sglebius   o Fix doxygen to use new macro conventions (da455e9)
1387290001Sglebius
1388290001Sglebius Bugfixes:
1389290001Sglebius   o Do not use system EAI/AI values if we are not using the system
1390290001Sglebius     getaddrinfo. (7bcac07)
1391290001Sglebius
1392290001Sglebius Sample Code:
1393290001Sglebius   o Fix up sample/event-test.c to use newer interfaces and make it
1394290001Sglebius     actually work. (19bab4f Ross Lagerwall)
1395290001Sglebius   o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross
1396290001Sglebius     Lagerwall)
1397290001Sglebius   o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall)
1398290001Sglebius   o event-read-fifo: Use EV_PERSIST appropriately (24dab0b)
1399290001Sglebius
1400290001Sglebius
1401290001Sglebius
1402290001Sglebius
1403