1*40b95ae2SNick MathewsonChanges in version 2.1.3-alpha (?? ??? 201?) 2*40b95ae2SNick Mathewson 3*40b95ae2SNick Mathewson 4143cb613SNick MathewsonChanges in version 2.1.2-alpha (18 Nov 2012) 5143cb613SNick Mathewson 6143cb613SNick Mathewson Libevent 2.1.2-alpha includes more portable for monotonic timers, 7143cb613SNick Mathewson refactors much of Libevent's internal and external infrastructure, 8143cb613SNick Mathewson closes some longstanding gaps in the interface, makde other 9143cb613SNick Mathewson improvements. Ths log below tries to organize features by rough area of 10143cb613SNick Mathewson effect. It omits a few commits which were pure bugfixes on other commits 11143cb613SNick Mathewson listed below. For more detail, see the git changelogs. For more 12143cb613SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent 13143cb613SNick Mathewson 2.1.2-alpha distribution. 14143cb613SNick Mathewson 15143cb613SNick Mathewson Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable 16143cb613SNick Mathewson through 2.0.21-stable inclusive. 17143cb613SNick Mathewson 18143cb613SNick Mathewson Performance (core): 19143cb613SNick Mathewson o Replace pipe-based notification with EVFILT_USER where possible. This 20143cb613SNick Mathewson should make multithreaded programs on OSX and *BSD alert the main thread a 21143cb613SNick Mathewson little faster. (53a07fe) 22143cb613SNick Mathewson o Make th_base_lock nonrecursive. (9cd5acb) 23143cb613SNick Mathewson 24143cb613SNick Mathewson New/Changed API Functions: 25143cb613SNick Mathewson o New event_get_priority() function to return an event's priority (f90e255) 26143cb613SNick Mathewson o Add a bufferevent_get_priority() function (bd39554) 27143cb613SNick Mathewson o Add an event_base_loopcontinue() to tell Libevent to rescan for more 28143cb613SNick Mathewson events right away (7d6aa5e) 29143cb613SNick Mathewson o Add a new callback to get called on evbuffer_file_segment free 30143cb613SNick Mathewson (e9f8feb yangacer, 64051b9) 31143cb613SNick Mathewson o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman 32143cb613SNick Mathewson Puls, 232055e, ffe1643) 33143cb613SNick Mathewson o Add an event_remove_timer() to remove timer on an event without 34143cb613SNick Mathewson deleting it (e3b2e08) 35143cb613SNick Mathewson o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible 36143cb613SNick Mathewson semantics (9dee36b) 37143cb613SNick Mathewson o Rename event_enable_lock_debuging() to ..._debugging(). (The old name 38143cb613SNick Mathewson should still work.) (07e132e) 39143cb613SNick Mathewson o Add missing implementation for event_enable_debug_logging (3b3e21d) 40143cb613SNick Mathewson 41143cb613SNick Mathewson PORTABLE MONOTONIC TIMERS: 42143cb613SNick Mathewson 43143cb613SNick Mathewson Libevent 2.1.2 includes internal support for monotonic timers on 44143cb613SNick Mathewson (nearly) all supported platforms, including Windows, and OSX. Libevent 45143cb613SNick Mathewson applications should now be more resilient to jumps forwards or backwards 46143cb613SNick Mathewson in the system clock. Also, on Linux systems with epoll, we now 47143cb613SNick Mathewson optionally support microsecond-level timeouts (whereas epoll only 48143cb613SNick Mathewson supports millisecond-precision timeouts). 49143cb613SNick Mathewson 50143cb613SNick Mathewson o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9) 51143cb613SNick Mathewson o Do not track use_monotonic field when is no monotonic clock (cb653a0) 52143cb613SNick Mathewson o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision 53143cb613SNick Mathewson (ddd69d3) 54143cb613SNick Mathewson o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7) 55143cb613SNick Mathewson o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a) 56143cb613SNick Mathewson o Refactor monotonic timer handling into a new type and set of 57143cb613SNick Mathewson functions; add a gettimeofday-based ratcheting implementation (f5e4eb0) 58143cb613SNick Mathewson o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow 59143cb613SNick Mathewson timer (a2598ec) 60143cb613SNick Mathewson o Implement fast/precise monotonic clocks on Windows (2c47045) 61143cb613SNick Mathewson o Simple unit tests for monotonic timers (630f077) 62143cb613SNick Mathewson o Improve the monotonic-time unit test: make it check the step size (7428c78) 63143cb613SNick Mathewson o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond 64143cb613SNick Mathewson precision (26c7582) 65143cb613SNick Mathewson o Split out time-related evutil functions into a new evutil_time.c (c419485) 66143cb613SNick Mathewson o Split out time-related prototypes into time-internal.h (71bca50) 67143cb613SNick Mathewson o Add evutil_time.obj to Makefile.nmake (0ba0683) 68143cb613SNick Mathewson o Avoid giving a spurious warning when timerfd support is unavailable 69143cb613SNick Mathewson (1aaf9f0 Dave Hart) 70143cb613SNick Mathewson o Make test_evutil_monotonic a little more tolerant (def3b83) 71143cb613SNick Mathewson o Avoid unused-var warning on systems with clock_gettime but without 72143cb613SNick Mathewson CLOCK_MONOTONIC_COARSE (9be5468) 73143cb613SNick Mathewson 74143cb613SNick MathewsonEVENT_BASE_ONCE LEAKS: 75143cb613SNick Mathewson If a callback added by event_base_once() is never invoked, Libevent no 76143cb613SNick Mathewson longer leaks internal memory. 77143cb613SNick Mathewson 78143cb613SNick Mathewson o Free dangling event_once objects on event_base_free() (c17dd59) 79143cb613SNick Mathewson o Add a unit test in which an event is created with event_base_once() 80143cb613SNick Mathewson but never fires (4343edf) 81143cb613SNick Mathewson 82143cb613SNick MathewsonTESTING SUPPORT, FIXES AND IMPROVEMENTS: 83143cb613SNick Mathewson 84143cb613SNick Mathewson Libevent now disables by default its unit tests that would touch the 85143cb613SNick Mathewson network, or that tend to fail on heavily-loaded systems. To re-enable 86143cb613SNick Mathewson them, invoke the ./test/regress program with the @all alias. 87143cb613SNick Mathewson 88143cb613SNick Mathewson o Simplify test.sh code significantly. (9b856fd Ross Lagerwall) 89143cb613SNick Mathewson o Make all tests that hit the network disabled by default (f2cea87) 90143cb613SNick Mathewson o Avoid a resource leak on error in http client benchmark (ea92fba) 91143cb613SNick Mathewson o Update to latest tinytest (911b4f0349377) (ef7c4f7) 92143cb613SNick Mathewson o Avoid (unlikely) overflow in bench_httpclient.c (5671033) 93143cb613SNick Mathewson o Shave 700 msec off the persistent_timeout_jump test (21205b8) 94143cb613SNick Mathewson o Check return value of write() in regress.c (c8009d2) 95143cb613SNick Mathewson o Make load-dependent monotonic timer tests off-by-default (2b6fe8b) 96143cb613SNick Mathewson o Add deferred_cb_skew to list of timing-dependent tests (34c8f31) 97143cb613SNick Mathewson o Avoid test -e; older shs don't have one. (f1bd938) 98143cb613SNick Mathewson o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) 99143cb613SNick Mathewson o Fix a couple of compile warnings in the unit tests (5a9a014) 100143cb613SNick Mathewson 101143cb613SNick MathewsonMISC: 102143cb613SNick Mathewson o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas 103143cb613SNick Mathewson Marriott, 3aa4415) 104143cb613SNick Mathewson 105143cb613SNick MathewsonINFRASTRUCTURE (Active-later events): 106143cb613SNick Mathewson As a simplification and optimization to Libevent's "deferred callback" 107143cb613SNick Mathewson logic (introduced in 2.0 to avoid callback recursion), Libevent now 108143cb613SNick Mathewson treats all of its deferrable callback types using the same logic it uses 109143cb613SNick Mathewson for active events. Now deferred events no longer cause priority 110143cb613SNick Mathewson inversion, no longer require special code to cancel them, and so on. 111143cb613SNick Mathewson 112143cb613SNick Mathewson o Refactor the callback part of an event into its own event_callback 113143cb613SNick Mathewson type (cba59e5) 114143cb613SNick Mathewson o Add "active later" event_callbacks to supersede deferred (745a63d) 115143cb613SNick Mathewson o event_base_assert_ok: check value of event_active_count for 116143cb613SNick Mathewson correctness (fec8bae) 117143cb613SNick Mathewson o Replace deferred_cbs with event_callback-based implementation. (ae2b84b) 118143cb613SNick Mathewson o Replace more deferred_cb names with event_callback (a4079aa) 119143cb613SNick Mathewson o Give event_base_process_active a single exit path (581b5be) 120143cb613SNick Mathewson o Restore our priority-inversion-prevention code with deferreds (c0e425a) 121143cb613SNick Mathewson o Refactor event_persist_closure: raise and extract some common logic 122143cb613SNick Mathewson (bec22b4) 123143cb613SNick Mathewson o Remove the unused bits from EVLIST_ALL (9889a3d) 124143cb613SNick Mathewson 125143cb613SNick MathewsonBUILD IMPROVEMENTS: 126143cb613SNick Mathewson Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes 127143cb613SNick Mathewson numerous other build system. Parallel builds should be faster, and all 128143cb613SNick Mathewson builds should be quieter. 129143cb613SNick Mathewson 130143cb613SNick Mathewson o Split long lists in Makefile.am into one-item-per-line (2711cda) 131143cb613SNick Mathewson o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) 132143cb613SNick Mathewson o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) 133143cb613SNick Mathewson o Use newer syntax for autoconf/automake init (7d60ba8) 134143cb613SNick Mathewson o Enable silent build rules by default. Override with V=1 (7b18e5c) 135143cb613SNick Mathewson o Switch to non-recursive makefiles (7092f3b) 136143cb613SNick Mathewson o Rename subordinate Makefile.ams to include.am (6cdfeeb) 137143cb613SNick Mathewson o Make quiet build even quieter (371a123) 138143cb613SNick Mathewson o New --quiet option for event_rpcgen.py (aa59c1e) 139143cb613SNick Mathewson o Be quiet when making regress.gen.[ch] (607a8ff) 140143cb613SNick Mathewson o Fix handling of no-python case for nonrecursive make (1e3123d) 141143cb613SNick Mathewson o We now require automake 1.9 or later. Modernize! (b7f6e89) 142143cb613SNick Mathewson o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) 143143cb613SNick Mathewson o Use correct openssl libs and includes in pkgconfig file (d70af27) 144143cb613SNick Mathewson o Use the same CFLAGS for openssl when building unit tests as with 145143cb613SNick Mathewson libevent (1d9d511) 146143cb613SNick Mathewson 147143cb613SNick MathewsonDOCUMENTATION 148143cb613SNick Mathewson o Note that make_base_notifiable should not be necessary (26ee5f9) 149143cb613SNick Mathewson o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) 150143cb613SNick Mathewson o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) 151143cb613SNick Mathewson o Make it more clear that NOLOCK means "I promise, no multithreading" 152143cb613SNick Mathewson (9444524) 153143cb613SNick Mathewson o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) 154143cb613SNick Mathewson o Make the Makefile.nmake warning slightly less dire (e7bf4c8) 155143cb613SNick Mathewson o Fix typo : events instead of evets (05f1aca Azat Khuzhin) 156143cb613SNick Mathewson o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart 157143cb613SNick Mathewson (6bde2ef Patrick Pelletier) 158143cb613SNick Mathewson 159143cb613SNick MathewsonEVHTTP: 160143cb613SNick Mathewson o ignore LWS after field-content in headers (370a2c0 Artem Germanov) 161143cb613SNick Mathewson o Clean up rtrim implementation (aa59d80) 162143cb613SNick Mathewson o Remove trailing tabs in HTTP headers as well. (ac42519) 163143cb613SNick Mathewson o Remove internal ws from multiline http headers correctly (c6ff381) 164143cb613SNick Mathewson o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) 165143cb613SNick Mathewson o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) 166143cb613SNick Mathewson o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in 167143cb613SNick Mathewson evhttp_connection_fail_ (7afbd60) 168143cb613SNick Mathewson o preserve errno in evhttp_connection_fail_ for inspection by the 169143cb613SNick Mathewson callback (36d0ee5 Patrick Pelletier) 170143cb613SNick Mathewson 171143cb613SNick MathewsonBUGFIXES: 172143cb613SNick Mathewson o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) 173143cb613SNick Mathewson o Avoid double-free on error in evbuffer_add_file. Found by 174143cb613SNick Mathewson coverity. (6a81b1f) 175143cb613SNick Mathewson o Fix another possible uninitialized read in dns regression tests. Found 176143cb613SNick Mathewson by coverity. (13525c5) 177143cb613SNick Mathewson o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) 178143cb613SNick Mathewson o Avoid memory leak in test_event_calloc unit test; found by coverity 179143cb613SNick Mathewson (92817a1) 180143cb613SNick Mathewson o Fix a shadowed variable in addfile_test_readcb; found by coverity 181143cb613SNick Mathewson (225344c) 182143cb613SNick Mathewson o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by 183143cb613SNick Mathewson coverity (6487f63) 184143cb613SNick Mathewson o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 185143cb613SNick Mathewson Joachim Bauch) 186143cb613SNick Mathewson o Make event_base_getnpriorities work with old "implicit base" code 187143cb613SNick Mathewson (c46cb9c) 188143cb613SNick Mathewson o Simplify and correct evutil_open_closeonexec_ (0de587f) 189143cb613SNick Mathewson o Fix event_dlist definition when sys/queue not included (81b6209 190143cb613SNick Mathewson Derrick Pallas) 191143cb613SNick Mathewson 192143cb613SNick Mathewson 193d9a55153SNick Mathewson 1942dedff36SNick MathewsonChanges in version 2.1.1-alpha (4 Apr 2012) 19525a424fbSNick Mathewson 1962dedff36SNick Mathewson Libevent 2.1.1-alpha includes a number of new features and performance 1972dedff36SNick Mathewson improvements. The log below tries to organize them by rough area of 1982dedff36SNick Mathewson effect. It omits some commits which were pure bugfixes on other commits 1992dedff36SNick Mathewson listed below. For more detail, see the git changelogs. For more 2002dedff36SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent 2012dedff36SNick Mathewson 2.1.1-alpha distribution. 20225a424fbSNick Mathewson 2032dedff36SNick Mathewson Performance: Core 2042dedff36SNick Mathewson o Replace several TAILQ users with LIST. LIST can be a little faster than 2052dedff36SNick Mathewson TAILQ for cases where we don't need queue-like behavior. (f9db33d, 2062dedff36SNick Mathewson 6494772, d313c29, 974d004) 2072dedff36SNick Mathewson o Disabled code to optimize the case where we reinsert an existing 2082dedff36SNick Mathewson timeout (e47042f, 09cbc3d) 2092dedff36SNick Mathewson o Remove a needless base-notify when rescheduling the first timeout (77a96fd) 2102dedff36SNick Mathewson o Save a needless comparison when removing/adjusting timeouts (dd5189b) 2112dedff36SNick Mathewson o Possible optimization: split event_queue_insert/remove into 2122dedff36SNick Mathewson separate functions. needs testing (efc4dc5) 21388b4f0bbSNick Mathewson o Make event_count maintenance branchless at the expense of an 2142dedff36SNick Mathewson extra shift. Needs benchmarking (d1cee3b) 2152dedff36SNick Mathewson o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime 2162dedff36SNick Mathewson comparison (2a83ecc) 2172dedff36SNick Mathewson o Optimization in event_process_active(): ignore maxcb & endtime 2182dedff36SNick Mathewson for highest priority events. (a9866aa Alexander Drozdov) 2192dedff36SNick Mathewson o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95) 2202dedff36SNick Mathewson o Remove the eventqueue list and the ev_next pointers. (604569b 066775e) 22177342926SNick Mathewson 2222dedff36SNick Mathewson Performance: Evbuffers 2232dedff36SNick Mathewson o Roughly 20% speed increase when line-draining a buffer using 2242dedff36SNick Mathewson EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib) 2252dedff36SNick Mathewson o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139) 2262dedff36SNick Mathewson o Fix a bug in the improved EOL_CRLF code (d927965) 2272dedff36SNick Mathewson o Remove a needless branch in evbuffer_drain() (d19a326) 22877342926SNick Mathewson 2292dedff36SNick Mathewson Performance: Linux 2302dedff36SNick Mathewson o Infrastructure for using faster/fewer syscalls when creating 2312dedff36SNick Mathewson sockets (a1c042b) 2322dedff36SNick Mathewson o Minimize syscalls during socket creation in listener.c (7e9e289) 2332dedff36SNick Mathewson o Use a wrapper function to create the notification 2342dedff36SNick Mathewson pipe/socketpair/eventfd (ca76cd9) 2352dedff36SNick Mathewson o Use pipes for telling signals to main thread when possible (a35f396) 2362dedff36SNick Mathewson o Save syscalls when constructing listener sockets for evhttp (af6c9d8) 2372dedff36SNick Mathewson o Save some syscalls when creating evdns sockets (713e570) 2382dedff36SNick Mathewson o Save some syscalls when constructing a socket for a bufferevent (33fca62) 2392dedff36SNick Mathewson o Prefer epoll_create1 on Linuxen that have it (bac906c) 24077342926SNick Mathewson 2412dedff36SNick Mathewson Performance: Epoll backend 2422dedff36SNick Mathewson o Use current event set rather than current pending change when 2432dedff36SNick Mathewson deciding whether to no-op a del (04ba27e Mike Smellie) 2442dedff36SNick Mathewson o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6) 2452dedff36SNick Mathewson o Clean up error handling in epoll_apply_one_change() a little (2d55a19) 24677342926SNick Mathewson 2472dedff36SNick Mathewson Performance: Evport backend 2482dedff36SNick Mathewson o evport: use evmap_io to track fdinfo status. Should save time and 2492dedff36SNick Mathewson RAM. (4687ce4) 2502dedff36SNick Mathewson o evport: Remove a linear search over recent events when 2512dedff36SNick Mathewson reactivating them (0f77efe) 2522dedff36SNick Mathewson o evport: Use portev_user to remember fdinfo struct (276ec0e) 2532dedff36SNick Mathewson o evport: don't scan more events in ed_pending than needed (849a5cf) 2542dedff36SNick Mathewson o evport: Remove artificial low limit on max events per getn call (c04d927) 2552dedff36SNick Mathewson o Reenable main/many_events_slow_add for evport in 2.1 (e903db3) 2560c483170SNick Mathewson 2572dedff36SNick Mathewson Performance: Windows 2582dedff36SNick Mathewson o Use GetSystemTimeAsFileTime to implement gettimeofday on 2592dedff36SNick Mathewson win32. It's faster and more accurate than our old 2602dedff36SNick Mathewson approach. (b8b8aa5) 261edc6d7d7SNick Mathewson 2622dedff36SNick Mathewson New functions and features: debugging 2632dedff36SNick Mathewson o Add event_enable_debug_logging() to control use of debug logs (e30a82f) 264edc6d7d7SNick Mathewson 2652dedff36SNick Mathewson New functions and features: core 2662dedff36SNick Mathewson o Add event_config function to limit time/callbacks between calls 2672dedff36SNick Mathewson to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd) 2682dedff36SNick Mathewson o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no 2692dedff36SNick Mathewson events are pending (084e68f) 2702dedff36SNick Mathewson o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov) 2712dedff36SNick Mathewson o Make evbase_priority_init() and evbase_get_npriorities() 2722dedff36SNick Mathewson threadsafe (3c55b5e) 2732dedff36SNick Mathewson o New event_base_update_cache_time() to set cached_tv to current 2742dedff36SNick Mathewson time (212533e Abel Mathew) 2752dedff36SNick Mathewson o Add event_self_cbarg() to be used in conjunction with 2762dedff36SNick Mathewson event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c, 2772dedff36SNick Mathewson 33e43ef) 2782dedff36SNick Mathewson o Add a new libevent_global_shutdown() to free all globals before 2792dedff36SNick Mathewson exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b) 2802dedff36SNick Mathewson o Use getifaddrs to detect our interfaces if possible (7085a45) 2812dedff36SNick Mathewson o Add event_base_get_running_event() to get the event* whose cb we 2822dedff36SNick Mathewson are in (c5732fd, 13dad99) 283edc6d7d7SNick Mathewson 2842dedff36SNick Mathewson New functions and features: building 2852dedff36SNick Mathewson o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn) 286edc6d7d7SNick Mathewson 2872dedff36SNick Mathewson New functions and features: evbuffers 2882dedff36SNick Mathewson o Add evbuffer_add_file_segment() so one fd can be used efficiently 2892dedff36SNick Mathewson in more than one evbuffer_add_file at a time (e72afae, c2d9884, 2902dedff36SNick Mathewson 3f405d2, 0aad014) 2912dedff36SNick Mathewson o Fix windows file segment mappings (8254de7) 2922dedff36SNick Mathewson o Allow evbuffer_ptr_set to yield a point just after the end of the 2932dedff36SNick Mathewson buffer. (e6fe1da) 2942dedff36SNick Mathewson o Allow evbuffer_ptr to point to position 0 in an empty evbuffer 2952dedff36SNick Mathewson (7aeb2fd Nir Soffer) 29688b4f0bbSNick Mathewson o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer) 2972dedff36SNick Mathewson o support adding buffers to other buffers non-destructively 2982dedff36SNick Mathewson (9d7368a Joachim Bauch) 2992dedff36SNick Mathewson o prevent nested multicast references, reworked locking (26041a8 3002dedff36SNick Mathewson Joachim Bauch) 3012dedff36SNick Mathewson o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an 3022dedff36SNick Mathewson evbuffer (d7a8b36 Andrea Montefusco, 54142c9) 3032dedff36SNick Mathewson o Make evbuffer_file_segment_types adaptable (c6bbbf1) 3042dedff36SNick Mathewson o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398) 3052dedff36SNick Mathewson o Add evbuffer_copyout_from to copy data from the middle of a 3062dedff36SNick Mathewson buffer (27e2225) 3076f6cebe3SNick Mathewson 3082dedff36SNick Mathewson New functions and features: bufferevents 3092dedff36SNick Mathewson o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea) 3102dedff36SNick Mathewson o Tweak allow_dirty_shutdown documentation (a44cd2b) 3112dedff36SNick Mathewson o Fix two issues in the allow_dirty_shutdown code. (f3b89de) 3122dedff36SNick Mathewson o Add a bufferevent_getcb() to find a bufferevent's current 3132dedff36SNick Mathewson callbacks (a650394) 3142dedff36SNick Mathewson o bufferevent: Add functions to set/get max_single_read/write 3152dedff36SNick Mathewson values. (998c813 Alexander Drozdov) 3162dedff36SNick Mathewson o bev_ssl: Be more specific in event callbacks. evhttp in particular gets 3172dedff36SNick Mathewson confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a 3182dedff36SNick Mathewson Catalin Patulea) 319edc6d7d7SNick Mathewson 3202dedff36SNick Mathewson New functions and features: evconnlisteners 3212dedff36SNick Mathewson o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey, 3222dedff36SNick Mathewson a270728) 3232dedff36SNick Mathewson o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728) 3242dedff36SNick Mathewson o Allow evconnlistener to be created in disabled state. (9593a33 3252dedff36SNick Mathewson Alexander Drozdov) 3262dedff36SNick Mathewson o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener 3272dedff36SNick Mathewson sockets too (4970329) 328edc6d7d7SNick Mathewson 3292dedff36SNick Mathewson Evhttp: 3302dedff36SNick Mathewson o Add new evhttp_{connection_}set_timeout_tv() functions to set 3312dedff36SNick Mathewson finger-grained http timeouts (6350e6c Constantine Verutin) 3322dedff36SNick Mathewson o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey) 3332dedff36SNick Mathewson o Add missing break to evhttp_parse_request_line (0fcc536) 3342dedff36SNick Mathewson o Add evhttp callback for bufferevent creation; this lets evhttp 3352dedff36SNick Mathewson support SSL. (8d3a850) 3362dedff36SNick Mathewson o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758) 3372dedff36SNick Mathewson o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra) 338edc6d7d7SNick Mathewson 3392dedff36SNick Mathewson Build improvements: 3402dedff36SNick Mathewson o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on 3412dedff36SNick Mathewson patches for correctness and robustness. (1fa7dbe Kevin Bowling) 3422dedff36SNick Mathewson o Filter '# define' statements from autoconf and generate 3432dedff36SNick Mathewson event-private.h (321b558 Kevin Bowling) 3442dedff36SNick Mathewson o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling) 3452dedff36SNick Mathewson o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93 3462dedff36SNick Mathewson Kevin Bowling) 3472dedff36SNick Mathewson o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling) 3482dedff36SNick Mathewson o Use a Configuration Header Template for evconfig-private.h (868f888 3492dedff36SNick Mathewson Kevin Bowling) 3502dedff36SNick Mathewson o Fix a comment warning and add evconfig-private.h to .gitignore 3512dedff36SNick Mathewson (f6d66bc Kevin Bowling) 3522dedff36SNick Mathewson o Include evconfig-private.h in internal files for great good. (0915ca0 3532dedff36SNick Mathewson Kevin Bowling) 3542dedff36SNick Mathewson o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) 3552dedff36SNick Mathewson (ad03952 Kevin Bowling) 3562dedff36SNick Mathewson o Prefer the ./configure evconfig-private.h in MinGW, just in 3572dedff36SNick Mathewson case. (f964b72 Kevin Bowling) 3582dedff36SNick Mathewson o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling) 3592dedff36SNick Mathewson o Add evconfig-private to remaining files (ded0a09 Kevin Bowling) 3602dedff36SNick Mathewson o Allow use of --enable-silent-rules for quieter compilation with 3612dedff36SNick Mathewson automake 1.11 (f1f8514 Dave Hart) 3622dedff36SNick Mathewson o Use "_WIN32", not WIN32: it's standard and we don't need to fake it 3632dedff36SNick Mathewson (9f560b) 3642dedff36SNick Mathewson o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin) 3652dedff36SNick Mathewson o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin) 3662dedff36SNick Mathewson o Provide the autoconf m4 macros for the new OpenSSL via pkg-config 3672dedff36SNick Mathewson stuff. (674dc3d Harlan Stenn) 3682dedff36SNick Mathewson o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn) 3692dedff36SNick Mathewson o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b 3702dedff36SNick Mathewson Harlan Stenn) 3712dedff36SNick Mathewson o Fix OSX build: $(OPENSSL_INCS) needs to be after 3722dedff36SNick Mathewson $(AM_CPPFLAGS). (46f1769 Zack Weinberg) 3732dedff36SNick Mathewson o Make gcc warnings on by default, and --enable-gcc-warnings only add 3742dedff36SNick Mathewson -Werror (d46517e Sebastian Hahn) 3752dedff36SNick Mathewson o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad) 3762dedff36SNick Mathewson o Move libevent 1.x headers to include/, to put all public headers in 3772dedff36SNick Mathewson one place. (bbea8d6) 3782dedff36SNick Mathewson o Put #ifdef around some files to support alternate build 3792dedff36SNick Mathewson systems. (76d4c92 Ross Lagerwall) 3802dedff36SNick Mathewson o Also make win32select.c conditional for IDE users (bf2c5a7) 381edc6d7d7SNick Mathewson 3822dedff36SNick Mathewson Debugging: 3832dedff36SNick Mathewson o Add a magic number to debug_locks to better catch lock-coding 3842dedff36SNick Mathewson errors. (b4a29c0 Dave Hart) 3852dedff36SNick Mathewson o munge the debug_lock signature before freeing it: it might help us 3862dedff36SNick Mathewson catch use-after-free (f28084d) 3872dedff36SNick Mathewson o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey) 3882dedff36SNick Mathewson o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey) 3892dedff36SNick Mathewson o Added usec debug in another area for debug (3baab0d Mark Ellzey) 3902dedff36SNick Mathewson o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey) 3912dedff36SNick Mathewson o more event dbg updates (6727543 Mark Ellzey) 3922dedff36SNick Mathewson o Clarify event_enable_debug_logging a little (6207826) 3932dedff36SNick Mathewson o Make --enable-verbose-debug option match its help text (10c3450) 3942dedff36SNick Mathewson o Add argument checks to some memory functions in `event.c'. (c8953d1 3952dedff36SNick Mathewson Mansour Moufid) 39634045c8fSNick Mathewson 3972dedff36SNick Mathewson Testing: 3982dedff36SNick Mathewson o More abstraction in test.sh (cd74c4e) 3992dedff36SNick Mathewson o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer) 4002dedff36SNick Mathewson o Tweaks to return types with end-of-buf ptrs (9ab8ab8) 4012dedff36SNick Mathewson o Add an (internal) usleep function for use by unit tests (f25d9d3) 4022dedff36SNick Mathewson o Synchronize with upstream tinytest (6c81be7) 4032dedff36SNick Mathewson o Make test-changelist faster (7622d26) 4042dedff36SNick Mathewson o Reduce the timeout in the main/fork test. (ab14f7c) 4052dedff36SNick Mathewson o New evhttp function to adjust initial retry timeout (350a3c4) 4062dedff36SNick Mathewson o Make regression tests run over 3x faster. (67a1763) 4072dedff36SNick Mathewson o Use test_timeval_diff_eq more consistently (b77b43f) 4082dedff36SNick Mathewson o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f) 4092dedff36SNick Mathewson o When including an -internal.h header outside the main tree, do so 4102dedff36SNick Mathewson early (95e2455) 4112dedff36SNick Mathewson o Add a new test: test-fdleak which tests for fd leaks by creating many 4122dedff36SNick Mathewson sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc) 4132dedff36SNick Mathewson o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce) 4142dedff36SNick Mathewson o Test more bufferevent_ratelim features (c24f91a) 41534045c8fSNick Mathewson 4162dedff36SNick Mathewson Documentation: 4172dedff36SNick Mathewson o Improve evbuffer_ptr documentation (261ba63) 41888b4f0bbSNick Mathewson o added comments to describe refcounting of multicast chains (ba24f61 4192dedff36SNick Mathewson Joachim Bauch) 4202dedff36SNick Mathewson o Add doxygen for event_base_dump_events (cad5753) 42131c99bd2SNick Mathewson 4222dedff36SNick Mathewson OSX: 4232dedff36SNick Mathewson o Use "unlimited select" on OSX so that we can have more than 4242dedff36SNick Mathewson FD_SETSIZE fds (1fb5cc6) 42534045c8fSNick Mathewson 4262dedff36SNick Mathewson KQueue: 4272dedff36SNick Mathewson o Use SIG_IGN instead of a do-nothing handler for signal events with 4282dedff36SNick Mathewson kqueue (148458e Zack Weinberg) 42934045c8fSNick Mathewson 4302dedff36SNick Mathewson evprc: 4312dedff36SNick Mathewson o event_rpcgen.py now prints status information to stdout and errors to 4322dedff36SNick Mathewson stderr. (ffb0ba0 Ross Lagerwall) 43334045c8fSNick Mathewson 4342dedff36SNick Mathewson Code improvement and refactoring: 4352dedff36SNick Mathewson o Make event_reinit() more robust and maintainable (272033e) 4362dedff36SNick Mathewson o Restore fast-path event_reinit() for slower backends (2c4b5de) 4372dedff36SNick Mathewson o Check changelist as part of checking representational integrity (39b3f38) 4382dedff36SNick Mathewson o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn) 4392dedff36SNick Mathewson o Refactor the functions that run over every event. (c89b4e6) 4402dedff36SNick Mathewson o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90) 4412dedff36SNick Mathewson o Make event-config.h depend on Makefile.am (2958a5c) 44234045c8fSNick Mathewson 4432dedff36SNick Mathewson Build fixes: 4442dedff36SNick Mathewson o Don't do clang version detection when disabling some flags (083296b 4452dedff36SNick Mathewson Sebastian Hahn) 44634045c8fSNick Mathewson 4472dedff36SNick Mathewson C standards conformance: 4482dedff36SNick Mathewson o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69) 4492dedff36SNick Mathewson o Convert event-config.h macros to avoid reserved identifiers (68120d9) 4502dedff36SNick Mathewson o Generate event-config.h using the correct macros. (f82c57e) 4512dedff36SNick Mathewson o Convert include-guard macro convention to avoid reserved identifiers 4522dedff36SNick Mathewson (3f8c7cd) 45388b4f0bbSNick Mathewson o Make event_rpcgen.py output conform to identifier conventions (372bff1) 4542dedff36SNick Mathewson o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0) 4552dedff36SNick Mathewson o Make the generated event-config.h use correct include guards (639383a) 4562dedff36SNick Mathewson o Fix all identifiers with names beginning with underscore. (cb9da0b) 45788b4f0bbSNick Mathewson o Make event_rpcgen.py output conform to identifier conventions, more 4582dedff36SNick Mathewson (bcefd24) 4592dedff36SNick Mathewson o Fix some problems introduced by automated identifier cleanup script 4602dedff36SNick Mathewson (c963534) 4612dedff36SNick Mathewson o Have all visible internal function names end with an underscore. (8ac3c4c) 4622dedff36SNick Mathewson o Apply the naming convention to our EVUTIL_IS* functions (c7848fa) 4632dedff36SNick Mathewson o Clean up lingering _identifiers. (946b584) 4642dedff36SNick Mathewson o Fix doxygen to use new macro conventions (da455e9) 4657c3e0612SNick Mathewson 4662dedff36SNick Mathewson Bugfixes: 4672dedff36SNick Mathewson o Do not use system EAI/AI values if we are not using the system 4682dedff36SNick Mathewson getaddrinfo. (7bcac07) 4697c3e0612SNick Mathewson 4702dedff36SNick Mathewson Sample Code: 4712dedff36SNick Mathewson o Fix up sample/event-test.c to use newer interfaces and make it 4722dedff36SNick Mathewson actually work. (19bab4f Ross Lagerwall) 4732dedff36SNick Mathewson o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross 4742dedff36SNick Mathewson Lagerwall) 4752dedff36SNick Mathewson o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall) 4762dedff36SNick Mathewson o event-read-fifo: Use EV_PERSIST appropriately (24dab0b) 47715be0493SNick Mathewson 4781aa6826fSNiels Provos 47987bef9e9SNiels Provos 48011a0a9e4SNiels Provos 481