xref: /libevent-2.1.12/ChangeLog (revision ff481a8e)
1*ff481a8eSNick MathewsonChanges in 2.0.7-??:
2*ff481a8eSNick Mathewson [See the git log for now]
3*ff481a8eSNick Mathewson
4*ff481a8eSNick Mathewson
59cb5bc86SNick MathewsonChanges in 2.0.6-rc:
6f6582640SNick Mathewson [Autogenerated from the Git log, sorted by hand.]
7f6582640SNick MathewsonDOCUMENTATION
8f6582640SNick Mathewson o Document a change in the semantics of event_get_struct_event_size() (e21f5d1)
9f6582640SNick Mathewson o Add a comment to describe our plan for library versioning (9659ece)
10f6582640SNick Mathewson o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6)
11f6582640SNick Mathewson
12f6582640SNick MathewsonNEW FEATURES AND INTERFACE CHANGES
13f6582640SNick Mathewson o Remove the obsolete evthread interfaces (c5bab56)
14f6582640SNick Mathewson o Let evhttp_send_error infer the right error reasons (3990669)
15f6582640SNick Mathewson o Add a function to retrieve the other side of a bufferevent pair (17a8e2d)
16f6582640SNick Mathewson o Add bufferevent_lock()/bufferevent_unlock() (215e629)
17f6582640SNick Mathewson o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59)
18f6582640SNick Mathewson o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167)
19f6582640SNick Mathewson o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d)
20f6582640SNick Mathewson o Add an interface to expose min_share in ratelimiting groups (6ae53d6)
21f6582640SNick Mathewson
22f6582640SNick MathewsonBUGFIXES
23f6582640SNick Mathewson o Avoid event_del on uninitialized event in event_base_free (6d19510)
24f6582640SNick Mathewson o Add some missing includes to fix Linux build again (75701e8)
25f6582640SNick Mathewson o Avoid close of uninitialized socket in evbuffer unit test (bda21e7)
26f6582640SNick Mathewson o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b)
27f6582640SNick Mathewson o If no evdns request can be launched, return NULL, not a handle (b14f151)
28f6582640SNick Mathewson o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3)
29f6582640SNick Mathewson o Fix the default HTTP error template (06bd056 Felix Nawothnig)
30f6582640SNick Mathewson o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf)
31f6582640SNick Mathewson o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig)
32f6582640SNick Mathewson o never let bufferevent_rlim functions return negative (0859870)
33f6582640SNick Mathewson o Make sample/hello_world work on windows (d89fdba)
34f6582640SNick Mathewson o Fix a deadlock related to event-base notification.  Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2)
35f6582640SNick Mathewson o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie)
36f6582640SNick Mathewson o Don't race when calling event_active/event_add on a running signal event (fc5e0a2)
37f6582640SNick Mathewson o Suppress a spurious EPERM warning in epoll.c (e73cbde)
38f6582640SNick Mathewson o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks)
39f6582640SNick Mathewson o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie)
40f6582640SNick Mathewson o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye)
41f6582640SNick Mathewson o Fix rate-limit calculation on openssl bufferevents. (009f300)
42f6582640SNick Mathewson o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis)
43f6582640SNick Mathewson
44f6582640SNick MathewsonBUILD AND DISTRIBUTION CHANGES
45f6582640SNick Mathewson o Test the unlocked-deferred callback case of bufferevents (dfb75ab)
46f6582640SNick Mathewson o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc)
47f6582640SNick Mathewson o Use -Wlogical-op on gcc 4.5 or higher (d14bb92)
48f6582640SNick Mathewson o Add the libtool-generated /m4/* stuff to .gitignore (c21c663)
49f6582640SNick Mathewson o Remove some automake-generated files from version control. (9b14911)
50f6582640SNick Mathewson o Have autogen.sh pass --force-missing to automake (8a44062)
51f6582640SNick Mathewson o Set library version for libevent_pthreads correctly (b2d7440)
52f6582640SNick Mathewson o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn)
53f6582640SNick Mathewson o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71)
54f6582640SNick Mathewson o Fix unit tests with -DUSE_DEBUG enabled (28f31a4)
55f6582640SNick Mathewson o Fix evdns build with -DUNICODE (5fa30d2)
56f6582640SNick Mathewson o Move event-config.h to include/event2 (ec347b9)
57f6582640SNick Mathewson
58f6582640SNick MathewsonTESTING
59f6582640SNick Mathewson o Add options to test-ratelim.c to check its results (2b44dcc)
60f6582640SNick Mathewson o Make test-ratelim clean up after itself better. (b5bfc44)
61f6582640SNick Mathewson o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7)
62f6582640SNick Mathewson o Remove all non-error prints from test/regress.c (8bc1e3d)
63f6582640SNick Mathewson o Make test.sh exit with nonzero status if tests fail (faf2a04)
64f6582640SNick Mathewson o Have the unit tests report errors from test.sh (3689bd2)
65f6582640SNick Mathewson o Fix logic in correcting high values from FIONREAD (3467f2f)
66f6582640SNick Mathewson o Add test for behavior on remote socket close (44d57ee)
67f6582640SNick Mathewson o Unit test for event_get_struct_event_size() (7510aac)
68f6582640SNick Mathewson o Make test/test.sh call test-changelist (7c92691)
69f6582640SNick Mathewson o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch)
70f6582640SNick Mathewson o Add option to test-ratelim to test min_share (42f6b62)
71f6582640SNick Mathewson o Fix an assertion bug in test-ratelim (b2c6202)
72f6582640SNick Mathewson o Make tests quieter on local dns resolver failure (e996b3d)
73f6582640SNick Mathewson o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2)
74f6582640SNick Mathewson o Use AF_INET socketpair to test sendfile on Solaris (9b60209)
75f6582640SNick Mathewson o Make test-changelist count cpu usage right on win32 (ea1ea3d)
76f6582640SNick Mathewson
77f6582640SNick MathewsonINTERNALS, PERFORMANCE, AND CODE CLEANUPS
78f6582640SNick Mathewson o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed)
79f6582640SNick Mathewson o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3)
80f6582640SNick Mathewson o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4)
81f6582640SNick Mathewson o Remove some dead assignments (47c5dfb)
82f6582640SNick Mathewson o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee)
83f6582640SNick Mathewson o Drain th_notify_fd[0] more bytes at a time. (a5bc15b)
84f6582640SNick Mathewson o Tidy up the code in evthread_make_base_notifiable a little (61e1eee)
85f6582640SNick Mathewson o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1)
86f6582640SNick Mathewson o Remove unused variables in test/test-changelist.c (b00d4c0)
87f6582640SNick Mathewson o Fix whitespace. (cb927a5)
88f6582640SNick Mathewson o Improve error message for failed epoll to make debugging easier. (9e725f7)
89f6582640SNick Mathewson o Turn our socketpair() replacement into its own function (57b30cd)
909cb5bc86SNick Mathewson
919cb5bc86SNick Mathewson
92f6aaf176SNick MathewsonChanges in 2.0.5-beta:
93f6aaf176SNick Mathewson [Autogenerated from the Git log, sorted by hand.]
94f6aaf176SNick MathewsonDOCUMENTATION
95f6aaf176SNick Mathewson o Update all our copyright notices to say "2010" (17efc1c)
96f6aaf176SNick Mathewson o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57)
97f6aaf176SNick Mathewson o Clarify Christopher Clark's status as writer of original ht code. (78772c3)
98f6aaf176SNick Mathewson o Try to comment some of the event code more (cdd4c49)
99f6aaf176SNick Mathewson o Add a few more evmap/changelist comments (c247adc)
100f6aaf176SNick Mathewson o Add a comment to explain why evdns_request is now separte from request (ceefbe8)
101f6aaf176SNick Mathewson o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a)
102f6aaf176SNick Mathewson o Stop distributing and installing manpages: they were too inaccurate (7731ec8)
103f6aaf176SNick Mathewson
104f6aaf176SNick MathewsonNEW FEATURES AND INTERFACE CHANGES
105f6aaf176SNick Mathewson o Remove signal_assign() and signal_new() macros. (2fac0f7)
106f6aaf176SNick Mathewson o Make evdns use the regular logging system by default (b2f2be6)
107f6aaf176SNick Mathewson o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3)
108f6aaf176SNick Mathewson o Functions to manipulate existing rate limiting groups. (ee41aca)
109f6aaf176SNick Mathewson o Functions to track the total bytes sent over a rate limit group. (fb366c1)
110f6aaf176SNick Mathewson o Detect and refuse reentrant event_base_loop() calls (b557b17)
111f6aaf176SNick Mathewson o Limit the maximum number of events on each socket to 65535 (819f949)
112f6aaf176SNick Mathewson o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c)
113f6aaf176SNick Mathewson o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen)
114f6aaf176SNick Mathewson o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen)
115f6aaf176SNick Mathewson o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb)
116f6aaf176SNick Mathewson o Make evutil_secure_rng_init() work even with builtin arc4random (f980716)
117f6aaf176SNick Mathewson o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis)
118f6aaf176SNick Mathewson o Release locks on bufferevents while executing callbacks (a5208fe Joachim Bauch) o Make debug mode catch mixed ET and non-ET events on an fd (cb67074)
119f6aaf176SNick Mathewson o Catch attempts to enable debug_mode too late (9ecf0d4)
120f6aaf176SNick Mathewson o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis)
121f6aaf176SNick Mathewson
122f6aaf176SNick MathewsonBUGFIXES
123f6aaf176SNick Mathewson o Avoid a spurious close(-1) on Linux (70a44b6)
124f6aaf176SNick Mathewson o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3)
125f6aaf176SNick Mathewson o Free evdns_base->req_heads on evdns_base_free (859af67)
126f6aaf176SNick Mathewson o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431)
127f6aaf176SNick Mathewson o Set mem_offset for every bufferevent type (657d1b6)
128f6aaf176SNick Mathewson o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich)
129f6aaf176SNick Mathewson o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith)
130f6aaf176SNick Mathewson o Fix minheap code to use replacement malloc functions (a527618)
131f6aaf176SNick Mathewson o Fix a free(NULL) in minheap-internal.h (6f20492)
132f6aaf176SNick Mathewson o Fix critical bug in evbuffer_write when writev is not available (cda56ab)
133f6aaf176SNick Mathewson o Make the no_iovecs case of write_atmost compile (8e227b0)
134f6aaf176SNick Mathewson o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3)
135f6aaf176SNick Mathewson o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis)
136f6aaf176SNick Mathewson o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis)
137f6aaf176SNick Mathewson o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano)
138f6aaf176SNick Mathewson o Clean up properly when adding a signal handler fails. (b84b598 Gilad Benjamini) o Ensure that evdns_request is a persistent handle. (15bb82d Christopher Davis)
139f6aaf176SNick Mathewson o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis)
140f6aaf176SNick Mathewson o Assert for valid requests as necessary. (67072f3 Christopher Davis)
141f6aaf176SNick Mathewson o do not leak the request object on persistent connections (9d8edf2)
142f6aaf176SNick Mathewson o Make evdns logging threadsafe (b1c7950)
143f6aaf176SNick Mathewson o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7)
144f6aaf176SNick Mathewson o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a)
145f6aaf176SNick Mathewson o fix a leak when unpausing evrpc requests (94ee125)
146f6aaf176SNick Mathewson o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2)
147f6aaf176SNick Mathewson o Fix compilation when openssl support is disabled (40c301b)
148f6aaf176SNick Mathewson o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf)
149f6aaf176SNick Mathewson o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn)
150f6aaf176SNick Mathewson o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis)
151f6aaf176SNick Mathewson o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29)
152f6aaf176SNick Mathewson o Fix symbol conflict between mm_*() macros and libmm (99e50e9)
153f6aaf176SNick Mathewson o Fix some crazy macro mistakes in arc4random.c (90d4225)
154f6aaf176SNick Mathewson o Make evbuffer_add_file() work on windows (dcdae6b)
155f6aaf176SNick Mathewson o Fix unused-variable warning when building with threads disabled (ad811cd)
156f6aaf176SNick Mathewson o Numerous opensolaris compilation fixes (c44de06)
157f6aaf176SNick Mathewson o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28)
158f6aaf176SNick Mathewson o Fix another nasty solaris getaddrinfo() behavior (3557071)
159f6aaf176SNick Mathewson o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a)
160f6aaf176SNick Mathewson o Fix some autoconf issues on OpenBSD (7c519df)
161f6aaf176SNick Mathewson
162f6aaf176SNick MathewsonBUILD AND DISTRIBUTION CHANGES
163f6aaf176SNick Mathewson o Distribute libevent.pc.in, not libevent.pc (22aff04)
164f6aaf176SNick Mathewson o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield)
165f6aaf176SNick Mathewson o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield)
166f6aaf176SNick Mathewson o Support the standard 'make check' target in place of 'make verify' (426c8fb)
167f6aaf176SNick Mathewson o Remove redundant stuff from EXTRA_DIST (b660edf)
168f6aaf176SNick Mathewson o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5)
169f6aaf176SNick Mathewson o Remove an orphaned RELEASE flag in Makefile.am (0794b0d)
170f6aaf176SNick Mathewson o Give a better warning for bad automake versions. (77c917d)
171f6aaf176SNick Mathewson o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7)
172f6aaf176SNick Mathewson o Never test for select() on windows (3eb044d Trond Norbye)
173f6aaf176SNick Mathewson o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano)
174f6aaf176SNick Mathewson o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano)
175f6aaf176SNick Mathewson o Add ctags/etags files to .gitignore (0861d17)
176f6aaf176SNick Mathewson o Only specify -no-undefined on mingw (25433b9)
177f6aaf176SNick Mathewson o Only add libevent_core.la to LIBADD on mingw (fdc6297)
178f6aaf176SNick Mathewson
179f6aaf176SNick MathewsonTESTING
180f6aaf176SNick Mathewson o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis)
181f6aaf176SNick Mathewson o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis)
182f6aaf176SNick Mathewson o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3)
183f6aaf176SNick Mathewson o Fix a write of uninitialized RAM in regression tests (68dc742)
184f6aaf176SNick Mathewson o Fix some memory leaks in the unit tests (274a7bd)
185f6aaf176SNick Mathewson o Make 'main/many_events' test 70 fds, not 64. (33874b0)
186f6aaf176SNick Mathewson o Unit-test every evbuffer_add_file() implementation. (06a4443)
187f6aaf176SNick Mathewson o Add more unit tests for evbuffer_expand (8c83e99)
188f6aaf176SNick Mathewson o Test another case of evbuffer_prepend (1234b95)
189f6aaf176SNick Mathewson o Fix a possible double-free bug in SSL bufferevents with CLOSE_ON_FREE (7501895) o Add dns/search_cancel unit test. (39b870b Christopher Davis)
190f6aaf176SNick Mathewson o Make http_base_test stop leaking an event_base. (96730d3)
191f6aaf176SNick Mathewson o Detect broken unsetenv at unit-test runtime (f37cd4c)
192f6aaf176SNick Mathewson o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1)
193f6aaf176SNick Mathewson o add more (currently skipped) add_file tests on win32 (05de45d)
194f6aaf176SNick Mathewson o Fix bench_http build on win32. (384d124)
195f6aaf176SNick Mathewson o Make unit test for add_file able to tell "error" from "done" (88a543f)
196f6aaf176SNick Mathewson o Make test for bufferevent_connect_hostname system-neutral (f89168e)
197f6aaf176SNick Mathewson o Make test.sh support mingw/msys on win32 (0ee6f6c)
198f6aaf176SNick Mathewson o Fix test.sh on freebsd (3d9e05b)
199f6aaf176SNick Mathewson
200f6aaf176SNick MathewsonINTERNALS, PERFORMANCE, AND AND CODE CLEANUPS
201f6aaf176SNick Mathewson o Improve the speed of evbuffer_readln() (cc1600a)
202f6aaf176SNick Mathewson o more whitespace normalization (2c2618d)
203f6aaf176SNick Mathewson o Revise evbuffer to add last_with_data (2a6d2a1)
204f6aaf176SNick Mathewson o Use last_with_data in place of previous_to_last (c8ac57f)
205f6aaf176SNick Mathewson o Remove previous_to_last from evbuffer (6f47bd1)
206f6aaf176SNick Mathewson o Fix last_with_data compilation on windows (1e7b986)
207f6aaf176SNick Mathewson o Add some glass-box tests for the last_with_data code. (17da042)
208f6aaf176SNick Mathewson o Improve robustness for refcounting (f1bc125)
209f6aaf176SNick Mathewson o Remove a needless min_heap_shift_up_() call (7204b91)
210f6aaf176SNick Mathewson o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4)
211f6aaf176SNick Mathewson o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3)
212f6aaf176SNick Mathewson o Make evbuffer_prepend handle empty buffers better (c87272b)
213f6aaf176SNick Mathewson o Replace last_with_data with a slightly smarter version (b7442f8)
214f6aaf176SNick Mathewson o Turn the increasingly complex *_CHAIN() macros into functions (96865c4)
215f6aaf176SNick Mathewson o Rewrite evbuffer_expand and its users (d5ebcf3)
216f6aaf176SNick Mathewson o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis)
217f6aaf176SNick Mathewson o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6)
218f6aaf176SNick Mathewson o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg)
219f6aaf176SNick Mathewson o Move domain search state to evdns_request. (beaa14a Christopher Davis)
220f6aaf176SNick Mathewson o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f)
221f6aaf176SNick Mathewson o Rename current_base symbol to event_global_current_base_ (c16e684)
222f6aaf176SNick Mathewson o Fix whitespace in evutil.c (935e150)
223f6aaf176SNick Mathewson o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0)
224f6aaf176SNick Mathewson
2252cffd6c9SNick Mathewson
2262cffd6c9SNick Mathewson
22794d00651SNick MathewsonChanges in 2.0.4-alpha:
2283a5cfb0dSNick Mathewson [Autogenerated from the Git log, sorted by hand.]
2293a5cfb0dSNick MathewsonDOCUMENTATION
2303a5cfb0dSNick Mathewson o Add stub header for 2.0.4-alpha changelog. (94d0065)
2313a5cfb0dSNick Mathewson o Improve the README with more information and links. (0b42726)
2323a5cfb0dSNick Mathewson o Add more people who wrote patches to the acknowledgments (0af10d5)
2333a5cfb0dSNick Mathewson o Add a warning about the use of event_initialized. (f32b575)
2343a5cfb0dSNick Mathewson o Add a LICENSE file so people can find our license easily (7067006)
2353a5cfb0dSNick Mathewson o Add a new "hello world" sample program (becb9f9)
2363a5cfb0dSNick Mathewson o Clarify status of example programs (d60a1bd)
2373a5cfb0dSNick Mathewson o Update time-test.c to use event2 (f4190bf)
2383a5cfb0dSNick Mathewson o Add the arc4random.c license to the LICENSE file. (e15e1e9)
2393a5cfb0dSNick Mathewson
2403a5cfb0dSNick MathewsonNEW FEATURES AND INTERFACE CHANGES
2413a5cfb0dSNick Mathewson o Improved optional lock debugging. (0cd3bb9)
2423a5cfb0dSNick Mathewson o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd)
2433a5cfb0dSNick Mathewson o Testing code for bufferevent rate-limiting. (f0c0124)
2443a5cfb0dSNick Mathewson o Make the initial nameserver probe timeout configurable. (1e56a32)
2453a5cfb0dSNick Mathewson o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f)
2463a5cfb0dSNick Mathewson o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379)
2473a5cfb0dSNick Mathewson o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534)
2483a5cfb0dSNick Mathewson o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich)
2493a5cfb0dSNick Mathewson o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666)
2503a5cfb0dSNick Mathewson o Look at the proper /etc/hosts file on windows. (66c02c7)
2513a5cfb0dSNick Mathewson o Allow http connections to use evdns for hostname looksups. (c698b77)
2523a5cfb0dSNick Mathewson o Changelist code to defer event changes until just before dispatch (27308aa)
2533a5cfb0dSNick Mathewson o do not use a function to assign the evdns base; instead assign it via evhttp_connection_base_new() which is a new function introduced in 2.0 (5032e52)
2543a5cfb0dSNick Mathewson o Functions to access more fields of struct event. (0683950)
2553a5cfb0dSNick Mathewson o Make kqueue use changelists. (45e5ae3)
2563a5cfb0dSNick Mathewson o Remove kqueue->pend_changes. (3225dfb)
2573a5cfb0dSNick Mathewson o Minimize epoll_ctl calls by using changelist (c8c6a89)
2583a5cfb0dSNick Mathewson o Add support for a "debug mode" to try to catch common errors. (cd17c3a)
2593a5cfb0dSNick Mathewson o Note a missing ratelim function (361da8f)
2603a5cfb0dSNick Mathewson o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81)
2613a5cfb0dSNick Mathewson o const-ify a few more functions in event.h (d38a7a1)
2623a5cfb0dSNick Mathewson o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694)
2633a5cfb0dSNick Mathewson o Remove EVUTIL_CHECK_FMT. (6c21c89)
2643a5cfb0dSNick Mathewson o Add EV_*_MAX macros to event2/util.h to expose limits for ev_* types. (aba1fff) o Functions to view and manipulate rate-limiting buckets. (85047a6)
2653a5cfb0dSNick Mathewson o Add the rest of the integer limits, and add a test for them. (60742d5)
2663a5cfb0dSNick Mathewson o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d)
2673a5cfb0dSNick Mathewson o Add an arc4random implementation for use by evdns (d4de062)
2683a5cfb0dSNick Mathewson o Use off_t for the length parameter of evbuffer_add_file (3fe60fd)
2693a5cfb0dSNick Mathewson o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b)
2703a5cfb0dSNick Mathewson o Expose view of current rate limit as constrained by group limit (162ce8a)
2713a5cfb0dSNick Mathewson o Provide consistent, tested semantics for bufferevent timeouts (d328829)
2723a5cfb0dSNick Mathewson
2733a5cfb0dSNick MathewsonBUGFIXES AND TESTS
2743a5cfb0dSNick Mathewson o Tolerate code that returns from a fatal_cb. (91fe23f)
2753a5cfb0dSNick Mathewson o Parenthesize macro arguments more aggressively (07e9e9b)
2763a5cfb0dSNick Mathewson o Fix memory-leak of signal handler array with kqueue. (e1ffbb8)
2773a5cfb0dSNick Mathewson o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7)
2783a5cfb0dSNick Mathewson o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838)
2793a5cfb0dSNick Mathewson o Fix a locking bug in event_base_loop() (da1718b)
2803a5cfb0dSNick Mathewson o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao)
2813a5cfb0dSNick Mathewson o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern)
2823a5cfb0dSNick Mathewson o Fix up evthread compilation on windows (bd6f1ba Roman Puls)
2833a5cfb0dSNick Mathewson o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown)
2843a5cfb0dSNick Mathewson o Update nmake makefile to build evthread.c (b62d979 unknown)
2853a5cfb0dSNick Mathewson o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko)
2863a5cfb0dSNick Mathewson o Fix a snow leopard compile warning in the unit tests. (7ae9445)
2873a5cfb0dSNick Mathewson o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn)
2883a5cfb0dSNick Mathewson o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch)
2893a5cfb0dSNick Mathewson o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones)
2903a5cfb0dSNick Mathewson o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch)
2913a5cfb0dSNick Mathewson o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch)
2923a5cfb0dSNick Mathewson o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527)
2933a5cfb0dSNick Mathewson o Set all instances of the version number correctly. (5a112d3)
2943a5cfb0dSNick Mathewson o Fix a few locking issues on windows. (c51bb3c unknown)
2953a5cfb0dSNick Mathewson o Use evutil_socket_t, not int, when logging socket errors. (292467c)
2963a5cfb0dSNick Mathewson o Fix up behavior of never-defered callbacks a little (390e056)
2973a5cfb0dSNick Mathewson o Replace some cases of uint32_t with ev_uint32_t. (a47d88d)
2983a5cfb0dSNick Mathewson o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen)
2993a5cfb0dSNick Mathewson o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich)
3003a5cfb0dSNick Mathewson o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich)
3013a5cfb0dSNick Mathewson o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich)
3023a5cfb0dSNick Mathewson o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich)
3033a5cfb0dSNick Mathewson o Fix the code that allowed DNS options to not end with : (ee4953f)
3043a5cfb0dSNick Mathewson o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea)
3053a5cfb0dSNick Mathewson o Fix test-ratelim compilation on Linux. (885b427)
3063a5cfb0dSNick Mathewson o Fix compilation of rate-limiting code on win32. (165d30e)
3073a5cfb0dSNick Mathewson o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich)
3083a5cfb0dSNick Mathewson o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6)
3093a5cfb0dSNick Mathewson o Fixed a memory leak on windows threads implementation. The CRITICAL_SECTION was not being free'd in evthread_win32_lock_free(). (2f33e00 Jardel Weyrich)
3103a5cfb0dSNick Mathewson o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich)
3113a5cfb0dSNick Mathewson o Improved error handling in evconnlistener_new_async(). Also keeping the fd open because it is not opened by this function, so the caller is responsible for closing it. Additionally, since evconnlistener_new_bind() creates a socket and passes it to the function above, it required error checking to close the same socket. (fec66f9 Jardel Weyrich)
3123a5cfb0dSNick Mathewson o Don't use a bind address for nameservers on loopback (8d4aaf9)
3133a5cfb0dSNick Mathewson o Fix compilation of rate-limit code when threading support is disabled (97a8c79)
3143a5cfb0dSNick Mathewson o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971)
3153a5cfb0dSNick Mathewson o Check more internal event_add() calls for failure (ff3f6cd)
3163a5cfb0dSNick Mathewson o Fix windows and msvc build (5c7a7bc)
3173a5cfb0dSNick Mathewson o Call event_debug_unassign on internal events (a19b4a0)
3183a5cfb0dSNick Mathewson o Try to fix a warning in hash_debug_entry (137f2c6)
3193a5cfb0dSNick Mathewson o Fix a dumb typo in ev_intptr_t definitions. (27c9a40)
3203a5cfb0dSNick Mathewson o do not fail while sending on http connections the client closed. (93d7369)
3213a5cfb0dSNick Mathewson o make evhttp_send() safe against terminated connections, too (3978180)
3223a5cfb0dSNick Mathewson o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield)
3233a5cfb0dSNick Mathewson o Fix some additional -DUNICODE issues on win32. (a7a9431)
3243a5cfb0dSNick Mathewson o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e)
3253a5cfb0dSNick Mathewson o Always use our own gai_strerror() replacement. (6810bdb)
3263a5cfb0dSNick Mathewson o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea)
3273a5cfb0dSNick Mathewson o validate close cb on server when client connection closes (2f782af)
3283a5cfb0dSNick Mathewson o Fix two unlocked reads in evbuffer. (7116bf2)
3293a5cfb0dSNick Mathewson o When working without a current event base, don't try to use IOCP listeners (cb52838)
3303a5cfb0dSNick Mathewson o Fix getpid() usage on Windows (ff2a134)
3313a5cfb0dSNick Mathewson o Add a unit test for secure rng. (48a29b6)
3323a5cfb0dSNick Mathewson o Add some headers to fix freebsd compilation (b72be50)
3333a5cfb0dSNick Mathewson o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9)
3343a5cfb0dSNick Mathewson o Suspend read/write on bufferevents during hostname lookup (db08f64)
3353a5cfb0dSNick Mathewson o Make bufferevent_free() clear all callbacks immediately. (b2fbeb3)
3363a5cfb0dSNick Mathewson o Fix some race conditions in persistent events and event_reinit (e2642f0)
3373a5cfb0dSNick Mathewson o Fix a bug in resetting timeouts on persistent events when IO triggers. (38ec0a7)
3383a5cfb0dSNick Mathewson o Add a test for timeouts on filtering bufferevents. (c02bfe1)
3393a5cfb0dSNick Mathewson o Add test for periodic timers that get activated for other reasons (8fcb7a1)
3403a5cfb0dSNick Mathewson o Use new timeval diff comparison function in bufferevent test (f3dfe46)
3413a5cfb0dSNick Mathewson o Delete stack-alloced event in new unit test before returning. (7ffd387)
3423a5cfb0dSNick Mathewson o Fix mingw compilation (23170a6)
3433a5cfb0dSNick Mathewson o Try to define a sane _EVENT_SIZEOF_SIZE_T for msvc compilation (1e14f82)
3443a5cfb0dSNick Mathewson o Fix arc4random compilation on MSVC. (98edb89)
3453a5cfb0dSNick Mathewson o deal with connect() failing immediately (7bc48bf)
3463a5cfb0dSNick Mathewson o Small cleanups on freebsd-connect-refused patch. (57b7248)
3473a5cfb0dSNick Mathewson
3483a5cfb0dSNick MathewsonBUILD AND DISTRIBUTION CHANGES
3493a5cfb0dSNick Mathewson o Remove the contents of WIN32-Prj as unmaintained. (c69d5a5)
3503a5cfb0dSNick Mathewson o Allow the user to redirect the verbose output of test/test.sh to a file (c382de6)
3513a5cfb0dSNick Mathewson o Allow test.sh to be run as ./test/test.sh (7dfbe94)
3523a5cfb0dSNick Mathewson o Never believe that we have pthreads on win32, even if gcc thinks we do. (78ed097)
3533a5cfb0dSNick Mathewson o Make it compile under gcc --std=c89. (e2ca403)
3543a5cfb0dSNick Mathewson o Fix a number of warnings from gcc -pedantic (918e9c5)
3553a5cfb0dSNick Mathewson o Add the msvc-generated .lib files to .gitignore. (e244a2e)
3563a5cfb0dSNick Mathewson o Add the "compile" script to gitignore. (1ba6bed)
3573a5cfb0dSNick Mathewson
3583a5cfb0dSNick MathewsonINTERNALS AND CODE CLEANUPS
3593a5cfb0dSNick Mathewson o Add a .gitignore file. (ba34071)
3603a5cfb0dSNick Mathewson o New EVTHREAD_TRY_LOCK function to try to grab a lock. (689fc09)
3613a5cfb0dSNick Mathewson o Add the abilitity to mark some buffer callbacks as never-deferred. (438f9ed)
3623a5cfb0dSNick Mathewson o Refactor our 'suspend operation' logic on bufferevents. (0d744aa)
3633a5cfb0dSNick Mathewson o Simplify the read high-watermark checking. (5846bf6)
3643a5cfb0dSNick Mathewson o Improve readability of evutil_unparse_protoname() (5a43df8 Jardel Weyrich)
3653a5cfb0dSNick Mathewson o Expose our cached gettimeofday value with a new interface (47854a8)
3663a5cfb0dSNick Mathewson o Whitespace fixes in test.sh (0b151a9)
3673a5cfb0dSNick Mathewson o Enable branch-prediction hints with EVUTIL_UNLIKELY. (eaaf27f)
3683a5cfb0dSNick Mathewson o Refactor code from evdns into a new internal "read a file" function. (0f7144f)
3693a5cfb0dSNick Mathewson o Comestic changes in evconnlistener_new(), new_accepting_socket(), accepted_socket_invoke_user_cb() and iocp_listener_enable(). (510ab6b Jardel Weyrich)
3703a5cfb0dSNick Mathewson o Add unit-test for bad_request bug fixed in 1.4 recently. (6cc79c6 Pavel Plesov) o Add a comment on evthread_enable_lock_debuging. (b9f43b2)
3713a5cfb0dSNick Mathewson o Fix test.sh on shells without echo -n (94131e9)
3723a5cfb0dSNick Mathewson o More unit tests for getaddrinfo_async: v4timeout and cancel. (a334b31)
3733a5cfb0dSNick Mathewson o Make http use evconnlistener. (ec34533)
3743a5cfb0dSNick Mathewson o move dns utility functions into a separate file so that we can use them for http testing (b822639)
3753a5cfb0dSNick Mathewson o add a test for evhttp_connection_base_new with a dns_base (26714ca)
3763a5cfb0dSNick Mathewson o forgot to add void to test function (78a50fe)
3773a5cfb0dSNick Mathewson o Add a forgotten header (changelist-internal.h) (4b9f307)
3783a5cfb0dSNick Mathewson o Remove some commented-out code in evutil (26e1b6f)
3793a5cfb0dSNick Mathewson o Remove a needless include of rpc_compat.h (70a4a3e)
3803a5cfb0dSNick Mathewson o Use less memory for each entry in a hashtable (a66e947)
3813a5cfb0dSNick Mathewson o Try to untangle the logic in server_port_flush(). (439aea0)
3823a5cfb0dSNick Mathewson o Use ev_[u]intptr_t types in place of [u]intptr_t (cef61a2)
3833a5cfb0dSNick Mathewson o Reduce windows header includes in our own headers. (da6135e)
3843a5cfb0dSNick Mathewson o clean up terminate_chunked test (e8a9782)
3853a5cfb0dSNick Mathewson o Increment the submicro version number. (63e868e)
3863a5cfb0dSNick Mathewson o Update event-config.h version number to match configure.in (aae7db5)
3873a5cfb0dSNick Mathewson o Clean up formatting: Disallow space-before-tab. (8fdf09c)
3883a5cfb0dSNick Mathewson o Clean up formatting: use tabs, not 8-spaces, to indent. (e5bbd40)
3893a5cfb0dSNick Mathewson o Clean up formatting: remove trailing spaces (e5cf987)
3903a5cfb0dSNick Mathewson o Clean up formatting: function/keyword spacing consistency. (4faeaea)
3913a5cfb0dSNick Mathewson
3923a5cfb0dSNick Mathewson
39394d00651SNick Mathewson
394709c21c4SNick MathewsonChanges in 2.0.3-alpha:
395709c21c4SNick Mathewson o Add a new code to support SSL/TLS on bufferevents, using the OpenSSL library (where available).
396f8b527e6SNick Mathewson o Fix a bug where we didn't allocate enough memory in event_get_supported_methods().
39712199fa7SNick Mathewson o Avoid segfault during failed allocation of locked evdns_base. (Found by Rocco Carbone.)
39872ea534fSNick Mathewson o Export new evutil_ascii_* functions to perform locale-independent character type operations.
3993c99c79dSNick Mathewson o Try to compile better with MSVC: patches from Brodie Thiesfield
40075fe762eSNick Mathewson o New evconnlistener_get_fd function to expose a listener's associated socket.
4017c20a6aeSNick Mathewson o Expose an ev_socklen_t type for consistent use across platforms.
40225af6954SNick Mathewson o Make bufferevent_socket_connect() work when the original fd was -1.
403d1a2254bSNick Mathewson o Fix a bug in bufferevent_socket_connect() when the connection succeeds too quickly.
404621aafd2SNick Mathewson o Export an evutil_sockaddr_cmp() to compare to sockaddr objects for equality.
4057c688dd9SNick Mathewson o Add a bufferevent_get_enabled() to tell what a bufferevent has been configured to do.
406d4134772SNick Mathewson o Add an evbuffer_search_eol() function to locate the end of a line nondestructively.
4077a55c48dSNick Mathewson o Add an evbuffer_search_range() function to search a bounded range of a buffer.
4087a55c48dSNick Mathewson o Fix a rare crash bug in evdns.
4097a55c48dSNick Mathewson o Have bufferevent_socket_connect() with no arguments put a bufferevent into connecting mode.
41022bd5b42SNick Mathewson o Support sendfile on Solaris: patch from Caitlin Mercer.
4112c1b0e44SNick Mathewson o New functions to explicitly reference a socket used by an evhttp object. Patches from David Reiss.
412f65b8b09SNick Mathewson o When we send a BEV_EVENT_CONNECTED to indicate connected status, we no longer invoke the write callback as well unless we actually wrote data too.
4133b461a6dSNick Mathewson o If the kernel tells us that there are a negative number of bytes to read from a socket, do not believe it.  Fixes bug 2841177; found by Alexander Pronchenkov.
414e3f89fa2SNick Mathewson o Do not detect whether we have monotonic clock support every time a new event base is created: instead do it only once.  Patch taken from Chromium.
41585255a63SNick Mathewson o Do not allocate the maximum event queue for the epoll backend at startup.  Instead, start out accepting 32 events at a time, and double the queue's size when it seems that the OS is generating events faster than we're requesting them.  Saves up to 374K per epoll-based event_base.  Resolves bug 2839240.
416c2ead9f1SNick Mathewson o Treat an event with a negative fd as valid but untriggerable by Libevent.  This is useful for applications that want to manually activate events.
41718fe4008SNick Mathewson o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h
4188e8d94a3SNiels Provos o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec
419d5b640fcSNick Mathewson o New event_base_got_exit() and event_base_got_break() functions to tell whether an event loop exited because of an event_base_loopexit() or an event_base_loopbreak().  Patch from Ka-Hing Cheung.
420633f3fb7SNick Mathewson o When adding or deleting an event from a non-main thread, only wake up the main thread when its behavior actually needs to change.
421fc83ca3cSNick Mathewson o Fix some bugs when using the old evdns interfaces to initialize the evdns module.
42225af6954SNick Mathewson o Detect errors during bufferevent_connect().  Patch from Christopher Davis.
423e1c9b84aSNiels Provos o Fix compilation for listener.h for C++ - missing extern "C".  Patch from Ferenc Szalai.
4246b22e74aSNick Mathewson o Make the event_base_loop() family of functions respect thread-safety better.  This should clear up a few hard-to-debug race conditions.
4256b22e74aSNick Mathewson o Fix a bug when using a specialized memory allocator on win32.
426d8164d0cSNick Mathewson o Have the win32 select() backend label TCP-socket-connected events as EV_WRITE, not EV_READ.  This should bring it in line with the other backends, and improve portability.  Patch from Christopher Davis.
427b73ad7bcSNick Mathewson o Stop using enums as arguments or return values when what we mean is a bitfield of enum values.  C++ doesn't believe that you can OR two enum values together and get another enum, and C++ takes its typing seriously.  Patch from Christopher Davis.
428a8267663SNick Mathewson o Add an API to replace all fatal calls to exit() with a user-provided panic function.
4297f10fac3SNick Mathewson o Replace all assert() calls with a variant that is aware of the user-provided logging and panic functions.
430e9ee1057SNick Mathewson o Add a return value to event_assign so that it can fail rather than asserting when the user gives it bad input.  event_set still dies on bad input.
431904b5721SNick Mathewson o The event_base_new() and event_base_new_with_config() functions now never call exit() on failure.  For backward "compatibility", event_init() still does, but more consistently.
4320fd0255fSNick Mathewson o Remove compat/sys/_time.h.  It interfered with system headers on HPUX, and its functionality has been subsumed by event2/util.h and util-internal.h.
4330b9eb1bfSNick Mathewson o Add a new bufferevent_socket_connect_hostname() to encapsulate the resolve-then-connect operation.
4344d48cf61SNick Mathewson o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian.
435693c24efSNick Mathewson o Alternative queue-based timeout algorithm for programs that use a large number of timeouts with the same value.
436ab96b5f3SNick Mathewson o New event_base_config option to disable the timeval cache entirely.
437e88079a8SNick Mathewson o Make EV_PERSIST timeouts more accurate: schedule the next event based on the scheduled time of the previous event, not based on the current time.
43837e23f80SNick Mathewson o Allow http.c to handle cases where getaddrinfo returns an IPv6 address.  Patch from Ryan Phillips.
43974871cacSNick Mathewson o Fix a problem with excessive memory allocation when using multiple event priorities.
440629a6133SNick Mathewson o Default to using arc4random for DNS transaction IDs on systems that have it; from OpenBSD.
441629a6133SNick Mathewson o Never check the environment when we're running setuid or setgid; from OpenBSD.
44272bafc17SNick Mathewson o Options passed to evdns_set_option() no longer need to end with a colon.
44386f57420SNick Mathewson o Add an evutil_getaddrinfo() function to clone getaddrinfo on platforms that don't have it.
44486f57420SNick Mathewson o Add an evdns_getaddrinfo() function to provide a nonblocking getaddrinfo using evdns, so programs can perform useful hostname lookup.
445bdfe72f3SNick Mathewson o Finally expose the IOCP-based bufferevent backend.  It passes its unit tests, but probably still has some bugs remaining.  Code by Nick Mathewson and Christopher Davis.
446bdfe72f3SNick Mathewson o Numerous other bugfixes.
447b8f222e0SNiels Provos o On FreeBSD and other OSes, connect can return ECONREFUSED immediately; instead of failing the function call, pretend with faileld in the callback.
448986500deSNiels Provos o Fix a race condition in the pthreads test case; found by Nick Mathewson
449f1691539SNiels Provos o Remove most calls to event_err() in http and deal with memory errors instead
450709c21c4SNick Mathewson
451a98a512bSNick MathewsonChanges in 2.0.2-alpha:
452a98a512bSNick Mathewson o Add a new flag to bufferevents to make all callbacks automatically deferred.
453b7907a7bSNick Mathewson o Make evdns functionality locked, and automatically defer dns callbacks.
454d3fbe7faSNick Mathewson o Fix a possible free(NULL) when freeing an event_base with no signals.
45501bda2b8SNick Mathewson o Add a flag to disable checking environment varibles when making an event_base
456253151c5SNick Mathewson o Disallow setting less than 1 priority.
4578b7a3b36SNick Mathewson o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen]
458df0617f2SNick Mathewson o Use signal.h, not sys/signal.h. [Patch from mmadia]
4599516df0eSNick Mathewson o Try harder to build with certain older c99 compilers.
460faa756c7SNick Mathewson o Make sure that an event_config's flags field is always initialized to 0. [Bug report from Victor Goya]
461a5897917SNick Mathewson o Avoid data corruption when reading data entirely into the second-to-last chain of an evbuffer. [Bug report from Victor Goya]
4625c4c13d8SNiels Provos o Make sendfile work on FreeBSD
463b228ff91SNiels Provos o Do not use vararg macros for accessing evrpc structures; this is not backwards compatible, but we did not promise any backwards compatibility for the rpc code.
4642ebfd3baSNick Mathewson o Actually define the event_config_set_flag() function.
465a109d95cSNick Mathewson o Try harder to compile with Visual C++.
466d5ca0763SNick Mathewson o Move event_set() and its allies to event2/event_compat.h where they belong.
4670e63e72aSNick Mathewson o Remove the event_gotsig code, which has long been deprecated and unused.
4680fd70978SNick Mathewson o Add an event_get_base() function to return the base assigned to an event.
469659d54d5SNick Mathewson o New function to automate connecting on a socket-based bufferevent.
470659d54d5SNick Mathewson o New functions to automate listening for incoming TCP connections.
471f11dff2cSNick Mathewson o Do case-insensitive checks with a locale-independent comparison function.
47283f46e51SNick Mathewson o Rename the evbuffercb and everrorcb callbacks to bufferevent_data_cb and bufferevent_event_cb respectively.  The old names are available in bufferevent_compat.h.
47383f46e51SNick Mathewson o Rename the EVBUFFER_* codes used by bufferevent event callbacks to BEV_EVENT_*, to avoid namespace collision with evbuffer flags.  The old names are available in bufferevent_compat.h.
47483f46e51SNick Mathewson o Move the EVBUFFER_INPUT and EVBUFFER_OUTPUT macros to bufferevent_compat.h
47531d89f27SNick Mathewson o Add a bufferevent_getfd() function to mirror bufferevent_setfd()
47631d89f27SNick Mathewson o Make bufferevent_setfd() return an error code if the operation is not successful.
477b4886ec8SNick Mathewson o Shave 22 bytes off struct event on 32-bit platforms by shrinking and re-ordering fields.  The savings on 64-bit platforms is likely higher.
478b4886ec8SNick Mathewson o Cap the maximum number of priorities at 256.
479bba69e03SNick Mathewson o Change the semantics of evbuffer_cb_set_flags() to be set-flag only; add a new evbuffer_cb_clear_flags() to remove set flags.
480dc4c7b95SNick Mathewson o Change the interface of evbuffer_add_reference so that the cleanup callback gets more information
48166df9dafSNick Mathewson o Revise the new evbuffer_reserve_space/evbuffer_commit_space() interfaces so that you can use them without causing extraneous copies or leaving gaps in the evbuffer.
48266df9dafSNick Mathewson o Add a new evbuffer_peek() interface to inspect data in an evbuffer without removing it.
48359484297SNick Mathewson o Fix a deadlock when suspending reads in a bufferevent due to a full buffer. (Spotted by Joachim Bauch.)
48459cd4936SNick Mathewson o Fix a memory error when freeing a thread-enabled event base with registered events. (Spotted by Joachim Bauch.)
4858c66eb2eSNick Mathewson o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair.
486cdaca02cSNick Mathewson o Activate fd events in a pseudorandom order with O(N) backends, so that we don't systematically favor low fds (select) or earlier-added fds (poll, win32).
487342ad355SNick Mathewson o Replace some read()/write() instances with send()/recv() to work properly on win32.
488342ad355SNick Mathewson o Set truncated flag correctly in evdns server replies.
48937d3e16cSNiels Provos o Raise RpcGenError in event_rpcgen.py; from jmanison and Zack Weinberg
490bbcc54efSNiels Provos o Fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg.
491fbb181d1SNiels Provos o Allow specifying the output filename for rpcgen; based on work by jmansion; patch from Zack Weinberg.
4926469598eSNiels Provos o Allow C identifiers as struct names; allow multiple comments in .rpc files; from Zack Weinberg
493a501d683SNick Mathewson o Mitigate a race condition when using socket bufferevents in multiple threads.
494d3a8ccb8SNick Mathewson o Use AC_SEARCH_LIBS, not AC_CHECK_LIB to avoid needless library use.
4956b4b77a2SNick Mathewson o Do not allow event_del(ev) to return while that event's callback is executing in another thread.  This fixes a nasty race condition.
4969fcd84d1SNick Mathewson o event_get_supported_methods() now lists methods that have been disabled with the EVENT_NO* environment options.
497e8400a43SNick Mathewson o Rename encode_int[64] to evtag_encode_int[64] to avoid polluting the global namespace.  The old method names are still available as macros in event2/tag_compat.h.
498a98a512bSNick Mathewson
499a98a512bSNick MathewsonChanges in 2.0.1-alpha:
500d50afbb3SNiels Provos o free minheap on event_base_free(); from Christopher Layne
50156934d5dSNiels Provos o debug cleanups in signal.c; from Christopher Layne
502f586f428SNiels Provos o provide event_base_new() that does not set the current_base global
503af6f331aSNiels Provos o bufferevent_write now uses a const source argument; report from Charles Kerr
50470248ca8SNick Mathewson o improve documentation on event_base_loopexit; patch from Scott Lamb
5051c23e219SNick Mathewson o New function, event_{base_}loopbreak.  Like event_loopexit, it makes an event loop stop executing and return.  Unlike event_loopexit, it keeps subsequent pending events from getting executed.  Patch from Scott Lamb
506d1ad9403SNick Mathewson o Check return value of event_add in signal.c
50788897852SNiels Provos o provide event_reinit() to reintialize an event_base after fork
5087eb250e9SNick Mathewson o New function event_set_mem_functinons.  It allows the user to give libevent replacement functions to use for memory management in place of malloc(), free(), etc.  This should be generally useful for memory instrumentation, specialized allocators, and so on.
5092823cb05SNick Mathewson o The kqueue implementation now catches signals that are raised after event_add() is called but before the event_loop() call.  This makes it match the other implementations.
5102823cb05SNick Mathewson o The kqueue implementation now restores original signal handlers correctly when its signal events are removed.
511fa95fe46SNick Mathewson o Check return value of event_add in signal.c
512cbf9cfdfSNick Mathewson o Add a more powerful evbuffer_readln as a replacement for evbuffer_readline.  The new function handles more newline styles, and is more useful with buffers that may contain a nul characters.
5131120f04fSNick Mathewson o Do not mangle socket handles on 64-bit windows.
514ce4ee418SNick Mathewson o The configure script now takes an --enable-gcc-warnigns option that turns on many optional gcc warnings.  (Nick has been building with these for a while, but they might be useful to other developers.)
5155f3e3159SNiels Provos o move EV_PERSIST handling out of the event backends
516f175befaSNiels Provos o small improvements to evhttp documentation
51774b3db50SNiels Provos o always generate Date and Content-Length headers for HTTP/1.1 replies
5185482192bSNick Mathewson o set the correct event base for HTTP close events
5193206bbcaSNick Mathewson o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions.
5202e2104f4SNick Mathewson o Rewrite win32.c backend to be O(n lg n) rather than O(n^2).
521e8b916c3SNiels Provos o Removed obsoleted recalc code
522ba487199SNiels Provos o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly.
5233b345f3eSNiels Provos o pull setters/getters out of RPC structures into a base class to which we just need to store a pointer; this reduces the memory footprint of these structures.
524ffd606cdSNiels Provos o prefix {encode,decode}_tag functions with evtag to avoid collisions
52585053473SNiels Provos o fix a bug with event_rpcgen for integers
5267ab26a2cSNick Mathewson o Correctly handle DNS replies with no answers set (Fixes bug 1846282)
527d4bdbca8SNiels Provos o add -Wstrict-aliasing to warnings and more cleanup
528fdafb66bSNiels Provos o removed linger from http server socket; reported by Ilya Martynov
52968725dc8SNiels Provos o event_rpcgen now allows creating integer arrays
5307e3a7af7SNiels Provos o support string arrays in event_rpcgen
531819d4a33SNiels Provos o change evrpc hooking to allow pausing of RPCs; this will make it possible for the hook to do some meaning ful work; this is not backwards compatible.
532955c6abfSNiels Provos o allow an http request callback to take ownership of a request structure
5335a5609c7SNiels Provos o allow association of meta data with RPC requests for hook processing
5342460aa59SNiels Provos o associate more context for hooks to query such as the connection object
5358c66d4e2SNiels Provos o remove pending timeouts on event_base_free()
5366baff522SNiels Provos o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards
537f38aec8bSNiels Provos o devpoll and evport need reinit; tested by W.C.A Wijngaards
5388ab61891SNiels Provos o event_base_get_method; from Springande Ulv
539677a9586SNick Mathewson o Send CRLF after each chunk in HTTP output, for compliance with RFC2626.  Patch from "propanbutan".  Fixes bug 1894184.
540807ab182SNick Mathewson o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values.
541d47907a7SNick Mathewson o Use a 64-bit field to hold HTTP content-lengths.  Patch from Scott Lamb.
54223ef0d09SNiels Provos o Allow regression code to build even without Python installed
543506d4dbcSNiels Provos o remove NDEBUG ifdefs from evdns.c
54411230f7eSNick Mathewson o detect integer types properly on platforms without stdint.h
54587bef9e9SNiels Provos o udpate documentation of event_loop and event_base_loop; from Tani Hosokawa.
54667bf29adSNiels Provos o simplify evbuffer by removing orig_buffer
547bb914ed9SNiels Provos o do not insert event into list when evsel->add fails
548b14cd655SNiels Provos o add support for PUT/DELETE requests; from Josh Rotenberg
5490b114da2SNiels Provos o introduce evhttp_accept_socket() to accept from an already created socket
550960be588SNiels Provos o include Content-Length in reply for HTTP/1.0 requests with keep-alive
5517470ce52SNiels Provos o increase listen queue for http sockets to 128; if that is not enough the evhttp_accpet_socket() api can be used with a prepared socket.
552e7ad5493SNick Mathewson o Patch from Tani Hosokawa: make some functions in http.c threadsafe.
553eb9b9580SNiels Provos o test support for PUT/DELETE requests; from Josh Rotenberg
5545c70ea4cSNiels Provos o rewrite of the evbuffer code to reduce memory copies
55569717730SNick Mathewson o Some older Solaris versions demand that _REENTRANT be defined to get strtok_r(); do so.
55619dad166SNiels Provos o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin
557558de9b3SNiels Provos o Provide OpenSSL style support for multiple threads accessing the same event_base
558d5c15b2eSNiels Provos o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks.
559c182bacaSNiels Provos o switch thread support so that locks get allocated as they are needed.
560ca42671aSNiels Provos o make event methods static so that they are not exported; from Andrei Nigmatulin
5618920ac4dSNiels Provos o make RPC replies use application/octet-stream as mime type
5623ef1f504SNiels Provos o do not delete uninitialized timeout event in evdns
5630c843507SNick Mathewson o Correct the documentation on buffer printf functions.
56444ceb945SNick Mathewson o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select.
565f9f4d4feSNick Mathewson o Correctly handle timeouts larger than 35 minutes on Linux with epoll.c.  This is probably a kernel defect, but we'll have to support old kernels anyway even if it gets fixed.
566fc41ffdeSNick Mathewson o Make name_from_addr() threadsafe in http.c
567e688a88aSNick Mathewson o Add new thread-safe interfaces to evdns functions.
5688d2a6160SNick Mathewson o Make all event_tagging interfaces threadsafe.
56949868b61SNick Mathewson o Rename internal memory management functions.
57094fb4d0aSNick Mathewson o New functions (event_assign, event_new, event_free) for use by apps that want to be safely threadsafe, or want to remain ignorant of the contents of struct event.
57189f63b20SNiels Provos o introduce bufferevent_read_buffer; allows reading without memory copy.
5723278012fSNiels Provos o expose bufferevent_setwatermark via header files and fix high watermark on read
5733a17aeedSNiels Provos o fix a bug in buffrevent read water marks and add a test for them
574f6c40173SNiels Provos o fix a bug in which bufferevent_write_buffer would not schedule a write event
575dd183f7cSNiels Provos o provide bufferevent_input and bufferevent_output without requiring knowledge of the structure
5769485ff9aSNiels Provos o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents
577e44ef375SNiels Provos o convert evhttp_connection to use bufferevents.
5789626a421SNick Mathewson o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy.
57998dc98c5SNick Mathewson o Remove the never-exported, never-used evhttp_hostportfile function.
580682adc44SNiels Provos o Support input/output filters for bufferevents; somewhat similar to libio's model.  This will allow us to implement SSL, compression, etc, transparently to users of bufferevents such as the http layer.
58185c4904bSNiels Provos o allow connections to be removed from an rpc pool
5825fbc7f0aSNick Mathewson o add new evtimer_assign, signal_assign, evtimer_new, and signal_new functions to manipulate timer and signal events, analagous to the now-recommended event_assign and event_new
5835fbc7f0aSNick Mathewson o switch internal uses of event_set over to use event_assign.
584becc89b7SNiels Provos o introduce evbuffer_contiguous_space() api that tells a user how much data is available in the first buffer chain
585f04497e4SNiels Provos o introduce evbuffer_reserve_space() and evbuffer_commit_space() to make processing in filters more efficient.
58645e6fb0dSNiels Provos o reduce system calls for getting current time by caching it.
5878c750eafSNiels Provos o separate signal events from io events; making the code less complex.
5881d30750bSNiels Provos o support for periodic timeouts
589f2a81fbcSNiels Provos o support for virtual HTTP hosts.
590d0c3644eSNick Mathewson o turn event_initialized() into a function, and add function equivalents to EVENT_SIGNAL and EVENT_FD so that people don't need to include event_struct.h
59168fecb7aSNick Mathewson o Build test directory correctly with CPPFLAGS set.
5923b2022efSNiels Provos o Provide an API for retrieving the supported event mechanisms.
5933f56e364SNiels Provos o event_base_new_with_config() and corresponding config APIs.
594de1c4392SNiels Provos o migrate the evhttp header to event2/ but accessors are still missing.
59585ed7133SNiels Provos o deprecate timeout_* event functions by moving them to event_compat.h
596a26442c5SNick Mathewson o Move	windows gettimeofday replacement into a new evutil_gettimeofday().
59764ce7990SNick Mathewson o Make configure script work on IRIX.
5981080852eSNiels Provos o provide a method for canceling ongoing http requests.
599c6da86ffSNick Mathewson o Make vsnprintf() returns consistent on win32.
600ec3956baSNiels Provos o Fix connection keep-alive behavior for HTTP/1.0
601134344b7SNiels Provos o Fix use of freed memory in event_reinit; pointed out by Peter Postma
6028b66f1bdSNiels Provos o constify struct timeval * where possible
6032deb3ce0SNiels Provos o make event_get_supported_methods obey environment variables
60439400e68SNick Mathewson o support for edge-triggered events on epoll and kqueue backends: patch from Valery Kholodkov
60505965921SNick Mathewson o support for selecting event backends by their features, and for querying the features of a backend.
60605965921SNick Mathewson o change failing behavior of event_base_new_with_config: if a config is provided and no backend is selected, return NULL instead of aborting.
607344c2b56SNiels Provos o deliver partial data to request callbacks when chunked callback is set even if there is no chunking on the http level; allows cancelation of requests from within the chunked callback; from Scott Lamb.
608a6ce520cSNiels Provos o allow min_heap_erase to be called on removed members; from liusifan.
6092baaac7fSNick Mathewson o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT.  Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility.
6104c56ba1cSNiels Provos o Do not use SO_REUSEADDR when connecting
61199a1063eSNiels Provos o Support 64-bit integers in RPC structs
6129998c0cbSNiels Provos o Correct handling of trailing headers in chunked replies; from Scott Lamb.
613cb7c3bd6SNiels Provos o Support multi-line HTTP headers; based on a patch from Moshe Litvin
614707f6784SNiels Provos o Reject negative Content-Length headers; anonymous bug report
615409236a7SNiels Provos o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report
616df97fca9SNiels Provos o Various HTTP correctness fixes from Scott Lamb
6175512be01SNiels Provos o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail
618c4af6211SNiels Provos o Support multiple events listening on the same signal; make signals regular events that go on the same event queue; problem report by Alexander Drozdov.
619e67a5ea9SNiels Provos o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov.
6201aa6826fSNiels Provos o Fix off-by-one errors in devpoll; from Ian Bell
621cca2f8faSNiels Provos o Make event_add not change any state if it fails; reported by Ian Bell.
622c968eb3eSNiels Provos o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me.
623a710d817SNiels Provos o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov.
624de069b99SNick Mathewson o Add new utility functions to correctly observe and log winsock errors.
625b3d6a569SNiels Provos o Do not remove Accept-Encoding header
62631cfe526SNiels Provos o Clear the timer cache on entering the event loop; reported by Victor Chang
62750202d75SNiels Provos o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez
6285792d42fSNiels Provos o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones.
6294fe25cefSNiels Provos o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn
6304fa4a562SNiels Provos o Fix a typo in setting the global event base; reported by lance.
631dd731685SNick Mathewson o Set the 0x20 bit on outgoing alphabetic characters in DNS requests randomly, and insist on a match in replies.  This helps resist DNS poisoning attacks.
632f700566cSNiels Provos o Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it.
63302b2b4d1SNiels Provos o Restructure the event backends so that they do not need to keep track of events themselves, as a side effect multiple events can use the same fd or signal.
6340d9d5cfeSNick Mathewson o Add generic implementations for parsing and emiting IPv6 addresses on platforms that do not have inet_ntop and/or inet_pton.
635135591aeSNick Mathewson o Allow DNS servers that have IPv6 addresses.
63699db0e7fSNick Mathewson o Add an evbuffer_write_atmost() function to write a limited number of bytes to an fd.
637a5901991SNick Mathewson o Refactor internal notify-main-thread logic to prefer eventfd to pipe, then pipe to socketpair, and only use socketpairs as a last resort.
638f6eb1f81SNick Mathewson o Try harder to pack all evbuffer reads into as few chains as possible, using readv/WSARecv as appropriate.
639309fc7c4SNick Mathewson o New evthread_use_windows_threads() and evthread_use_pthreads() functions to set up the evthread callbacks with reasonable defaults.
64056ea4687SNiels Provos o Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted.
641fdf69493SNiels Provos o sendfile, mmap and memory reference support for evbuffers.
642c7b2f8fdSNick Mathewson o New evutil_make_listen_socket_reuseable() to abstract SO_REUSEADDR.
64377c80b8dSNick Mathewson o New bind-to option to allow DNS clients to bind to an arbitrary port for outgoing requests.
644747331d1SNick Mathewson o evbuffers can now be "frozen" to prevent operations at one or both ends.
64572b6ffe8SNick Mathewson o Bufferevents now notice external attempts to add data to an inbuf or remove it from an outbuf, and stop them.
646ce146eb1SNiels Provos o Fix parsing of queries where the encoded queries contained \r, \n or +
647e3d82497SNick Mathewson o Do not allow internal events to starve lower-priority events.
6481aa6826fSNiels Provos
649d50afbb3SNiels ProvosChanges in 1.4.0:
65011a0a9e4SNiels Provos o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr.
651ff9e1af6SNiels Provos o demote most http warnings to debug messages
6529c3ac4e4SNick Mathewson o Fix Solaris compilation; from Magne Mahre
6538d5ef326SNick Mathewson o Add a "Date" header to HTTP responses, as required by HTTP 1.1.
65498f9616bSNiels Provos o Support specifying the local address of an evhttp_connection using set_local_address
655e2f56411SNiels Provos o Fix a memory leak in which failed HTTP connections whould not free the request object
656babd622fSNiels Provos o Make adding of array members in event_rpcgen more efficient, but doubling memory allocation
6577c66bf33SNiels Provos o Fix a memory leak in the DNS server
658c396c767SNick Mathewson o Fix compilation when DNS_USE_OPENSSL_FOR_ID is enabled
6598b392549SNick Mathewson o Fix buffer size and string generation in evdns_resolve_reverse_ipv6().
66082153e6eSNick Mathewson o Respond to nonstandard DNS queries with "NOTIMPL" rather than by ignoring them.
66182153e6eSNick Mathewson o In DNS responses, the CD flag should be preserved, not the TC flag.
662b835ee08SNiels Provos o Fix http.c to compile properly with USE_DEBUG; from Christopher Layne
663bfd27f58SNick Mathewson o Handle NULL timeouts correctly on Solaris; from Trond Norbye
664bfd27f58SNick Mathewson o Recalculate pending events properly when reallocating event array on Solaris; from Trond Norbye
6657135ffb6SNick Mathewson o Add Doxygen documentation to header files; from Mark Heily
666626cc5f9SNick Mathewson o Add a evdns_set_transaction_id_fn() function to override the default
667626cc5f9SNick Mathewson   transaction ID generation code.
66825007183SNick Mathewson o Add an evutil module (with header evutil.h) to implement our standard cross-platform hacks, on the theory that somebody else would like to use them too.
6698b256b8eSNick Mathewson o Fix signals implementation on windows.
6708b256b8eSNick Mathewson o Fix http module on windows to close sockets properly.
6715a0d671fSNick Mathewson o Make autogen.sh script run correctly on systems where /bin/sh isn't bash. (Patch from Trond Norbye, rewritten by Hagne Mahre and then Hannah Schroeter.)
672f4c84e86SNick Mathewson o Skip calling gettime() in timeout_process if we are not in fact waiting for any events. (Patch from Trond Norbye)
6731e1f77c5SNick Mathewson o Make test subdirectory compile under mingw.
674db43c1e1SNick Mathewson o Fix win32 buffer.c behavior so that it is correct for sockets (which do not like ReadFile and WriteFile).
6754ed48673SNick Mathewson o Make the test.sh script run unit tests for the evpoll method.
6764ed48673SNick Mathewson o Make the entire evdns.h header enclosed in "extern C" as appropriate.
677bc7b7c24SNick Mathewson o Fix implementation of strsep on platforms that lack it
67849ede3beSNick Mathewson o Fix implementation of getaddrinfo on platforms that lack it; mainly, this will make Windows http.c work better.  Original patch by Lubomir Marinov.
67918ac9248SNiels Provos o Fix evport implementation: port_disassociate called on unassociated events resulting in bogus errors; more efficient memory management; from Trond Norbye and Prakash Sangappa
68065236aa8SNiels Provos o support for hooks on rpc input and output; can be used to implement rpc independent processing such as compression or authentication.
68130ae40ccSNiels Provos o use a min heap instead of a red-black tree for timeouts; as a result finding the min is a O(1) operation now; from Maxim Yegorushkin
6821d3a008aSNiels Provos o associate an event base with an rpc pool
68388173102SNiels Provos o added two additional libraries: libevent_core and libevent_extra in addition to the regular libevent.  libevent_core contains only the event core whereas libevent_extra contains dns, http and rpc support
6841bcb112bSNick Mathewson o Begin using libtool's library versioning support correctly.  If we don't mess up, this will more or less guarantee binaries linked against old versions of libevent continue working when we make changes to libevent that do not break backward compatibility.
685d7d91461SNick Mathewson o Fix evhttp.h compilation when TAILQ_ENTRY is not defined.
686bbed0954SNiels Provos o Small code cleanups in epoll_dispatch().
68781802bf9SNick Mathewson o Increase the maximum number of addresses read from a packet in evdns to 32.
688e9564eceSNick Mathewson o Remove support for the rtsig method: it hasn't compiled for a while, and nobody seems to miss it very much.  Let us know if there's a good reason to put it back in.
6897c507668SNick Mathewson o Rename the "class" field in evdns_server_request to dns_question_class, so that it won't break compilation under C++.  Use a macro so that old code won't break.  Mark the macro as deprecated.
690bab0e6d4SNick Mathewson o Fix DNS unit tests so that having a DNS server with broken IPv6 support is no longer cause for aborting the unit tests.
691206d4336SNick Mathewson o Make event_base_free() succeed even if there are pending non-internal events on a base.  This may still leak memory and fds, but at least it no longer crashes.
692f74e7258SNick Mathewson o Post-process the config.h file into a new, installed event-config.h file that we can install, and whose macros will be safe to include in header files.
693f74e7258SNick Mathewson o Remove the long-deprecated acconfig.h file.
694f74e7258SNick Mathewson o Do not require #include <sys/types.h> before #include <event.h>.
695f74e7258SNick Mathewson o Add new evutil_timer* functions to wrap (or replace) the regular timeval manipulation functions.
69692cd548fSNick Mathewson o Fix many build issues when using the Microsoft C compiler.
697cabcd62fSNick Mathewson o Remove a bash-ism in autogen.sh
698321dfd55SNick Mathewson o When calling event_del on a signal, restore the signal handler's previous value rather than setting it to SIG_DFL. Patch from Christopher Layne.
6994a1a2e0dSNiels Provos o Make the logic for active events work better with internal events; patch from Christopher Layne.
7003742868aSNiels Provos o We do not need to specially remove a timeout before calling event_del; patch from Christopher Layne.
701