Changelog for libevent 2.0.7

Changelog for libevent 2.0.7

Tracker / libevent / changelog

Changes in 2.0.7-rc:
 [Autogenerated from the Git log, sorted and cleaned by hand.]
NEW APIS
 o Expose a evdns_base_nameserver_sockaddr_add() function to add a nameserver by sockaddr (1952143)
 o Add event_config_set_num_cpus_hint() for tuning win32 IOCP thread pools, etc. (2447fe8 Christopher Davis)

BUGFIXES
 o Fix a nasty dangling-event bug when using rate-limiting groups (0bffe43)
 o Clean up syntax on TAILQ_ENTRY() usage to build correctly with recent MSVC (60433a0 Gilad Benjamini)
 o Make definition of WIN32_LEAN_AND_MEAN in event.h conditional (3920172 Gilad Benjamini)
 o Correctly detect failure to delete bufferevent read-timeout event (da6e7cd)
 o Set close-on-exec bit for filedescriptors created by dns subsystem (d0b8843)
 o Fix kqueue correctness test on x84_64 (6123d12)
 o Detect events with no ev_base; warn instead of crashing (f1074b7)
 o Fix an issue with forking and signal socketpairs in select/poll backends (d61b2f3)
 o Stop using global arrays to implement the EVUTIL_ctype functions (1fdec20)
 o On windows, make lock/thread function tables static (5de2bcb)
 o Close th_notify_fds and open a new pair on reinit (495ed66)
 o Declare signal handler function as "__cdecl" on Windows (f0056d0)
 o Use the _func() replacements for open, fstat, etc in evutil.c on win32 (e50c0fc)
 o Only process up to MAX_DEFERRED deferred_cbs at a time (17a14f1 Christopher Davis)

THREADING BUGFIXES
 o Avoid deadlock when activating signals (970e6ad)
 o Add a condition variable backend, with implementations for pthreads and win32 (d4977b5)
 o Use conditions instead of current_event_lock to fix a deadlock (e0972c2)
 o Fix logic error in win32 TRY_LOCK that caused problems with rate-limiting (4c32b9d)
 o Avoid needlessly calling evthread_notify_base() when the loop is not running (c7a06bf)
 o Minimize calls to base_notify implementation functions, thereby avoiding needless syscalls (4632b78)

IOCP BUGFIXES
 o IOCP-related evbuffer fixes (03afa20 Christopher Davis)
 o Stop IOCP when freeing the event_base (d844242 Christopher Davis)
 o Some IOCP bufferevent tweaks (76f7e7a Christopher Davis)

TESTS
 o Make the regress_pthread.c tests work on windows with current test APIs (d74ae38)
 o Add a unit test for conditions (5fb1095)
 o Allow more than one copy of regression tests to run at once (a97320a)
 o Fix event_del(0) instance in bench.c (b0f284c Shuo Chen)
 o Fix a few memory leaks in the tests (1115366)
 o IOCP-related unit test tweaks (499452f Christopher Davis)
 o Improve testing of when thread-notification occurs (ce85280)

BUILD AND DISTRIBUTION
 o Add pkgconfig files for libevent_{openssl,pthreads} (ebcb1f0)
 o Change include order in Makefile.nmake (4022b28)
 o Make include/event2/event-config.h not included in source dist (a4af9be)
 o Honor NDEBUG; build without warnings with NDEBUG; make NDEBUG always-off in unit test code (743f866)
 o Declare evkeyvalq and event_list even if event_struct.h comes before sys/queue.h (d3ceca8)
 o Move evkeyvalq into a separate header for evhttp_parse_query users (ca9048f)
 o Prefer autoreconf -ivf to manual autogen.sh (7ea8e89)

CLEANUP
 o Completely remove the (mostly-removed) obsolete thread functions (3808168)
 o Rename regress_pthread.c to regress_thread.c (041989f)
 o Make defer-internal.h use lock macros, not direct calls to lock fns (5218d2a)

DOCUMENTATION
 o Document that DNS_NO_SEARCH is an obsolete alias for DNS_QUERY_NO_SEARCH (33200e7)
 o Update the whatsnew-2.0.txt document (4991669)


Changes in 2.0.6-rc:
 [Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
 o Document a change in the semantics of event_get_struct_event_size() (e21f5d1)
 o Add a comment to describe our plan for library versioning (9659ece)
 o Fix sentence fragment in docs for event_get_struct_event_size() (7b259b6)

NEW FEATURES AND INTERFACE CHANGES
 o Remove the obsolete evthread interfaces (c5bab56)
 o Let evhttp_send_error infer the right error reasons (3990669)
 o Add a function to retrieve the other side of a bufferevent pair (17a8e2d)
 o Add bufferevent_lock()/bufferevent_unlock() (215e629)
 o Stop asserting when asked for a (unsupported) TCP dns port. Just return NULL. (7e87a59)
 o Replace (unused,always 0) is_tcp argument to evdns_add_server_port*() with flags (e1c1167)
 o Constify a couple of arguments to evdns_server_request_add_*_reply (cc2379d)
 o Add an interface to expose min_share in ratelimiting groups (6ae53d6)

BUGFIXES
 o Avoid event_del on uninitialized event in event_base_free (6d19510)
 o Add some missing includes to fix Linux build again (75701e8)
 o Avoid close of uninitialized socket in evbuffer unit test (bda21e7)
 o Correctly recognize .255 addresses as link-local when looking for interfaces (8c3452b)
 o If no evdns request can be launched, return NULL, not a handle (b14f151)
 o Use generic win32 interfaces, not ASCII-only ones, where possible. (899b0a3)
 o Fix the default HTTP error template (06bd056 Felix Nawothnig)
 o Close the file in evutil_read_file whether there's an error or not. (0798dd1 Pierre Phaneuf)
 o Fix possible nullptr dereference in evhttp_send_reply_end() (29b2e23 Felix Nawothnig)
 o never let bufferevent_rlim functions return negative (0859870)
 o Make sample/hello_world work on windows (d89fdba)
 o Fix a deadlock related to event-base notification.  Diagnosed by Zhou Li, Avi Bab, and Scott Lamb. (17522d2)
 o Possible fix to 100% cpu usage with epoll and openssl (cf249e7 Mike Smellie)
 o Don't race when calling event_active/event_add on a running signal event (fc5e0a2)
 o Suppress a spurious EPERM warning in epoll.c (e73cbde)
 o Fix wrong size calculation of iovec buffers when exact=1 (65abdc2 niks)
 o Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer (c991317 Mike Smellie)
 o Fixed compilation of sample/le-proxy.c on win32 (13b912e Trond Norbye)
 o Fix rate-limit calculation on openssl bufferevents. (009f300)
 o Remember to initialize timeout events for bufferevent_async (de1f5d6 Christopher Davis)

BUILD AND DISTRIBUTION CHANGES
 o Test the unlocked-deferred callback case of bufferevents (dfb75ab)
 o Remove the now-unusable EVTHREAD_LOCK/UNLOCK constants (fdfc3fc)
 o Use -Wlogical-op on gcc 4.5 or higher (d14bb92)
 o Add the libtool-generated /m4/* stuff to .gitignore (c21c663)
 o Remove some automake-generated files from version control. (9b14911)
 o Have autogen.sh pass --force-missing to automake (8a44062)
 o Set library version for libevent_pthreads correctly (b2d7440)
 o Really only add libevent_core.la to LIBADD on mingw (1425003 Sebastian Hahn)
 o Build more cleanly with NetBSDs that dislike toupper(char) (42a8c71)
 o Fix unit tests with -DUSE_DEBUG enabled (28f31a4)
 o Fix evdns build with -DUNICODE (5fa30d2)
 o Move event-config.h to include/event2 (ec347b9)

TESTING
 o Add options to test-ratelim.c to check its results (2b44dcc)
 o Make test-ratelim clean up after itself better. (b5bfc44)
 o Remove the now-obsolete setup_test() and cleanup_test() functions (e73f1d7)
 o Remove all non-error prints from test/regress.c (8bc1e3d)
 o Make test.sh exit with nonzero status if tests fail (faf2a04)
 o Have the unit tests report errors from test.sh (3689bd2)
 o Fix logic in correcting high values from FIONREAD (3467f2f)
 o Add test for behavior on remote socket close (44d57ee)
 o Unit test for event_get_struct_event_size() (7510aac)
 o Make test/test.sh call test-changelist (7c92691)
 o Fix badly-behaved subtest of dns/bufferevent_connect_hostname (840a72f Joachim Bauch)
 o Add option to test-ratelim to test min_share (42f6b62)
 o Fix an assertion bug in test-ratelim (b2c6202)
 o Make tests quieter on local dns resolver failure (e996b3d)
 o Increase the tolerance in our unit tests for sloppy clocks. (170ffd2)
 o Use AF_INET socketpair to test sendfile on Solaris (9b60209)
 o Make test-changelist count cpu usage right on win32 (ea1ea3d)

INTERNALS, PERFORMANCE, AND CODE CLEANUPS
 o Mark the event_err() functions as __attribute__((noreturn)) (33bbbed)
 o Do not check that event_base is set in EVBASE_ACQUIRE_LOCK (218a3c3)
 o Replace (safe) use of strcpy with memcpy to appease OpenBSD (caca2f4)
 o Remove some dead assignments (47c5dfb)
 o Fix a pedantic gcc 4.4 warning in event2/event.h (276e7ee)
 o Drain th_notify_fd[0] more bytes at a time. (a5bc15b)
 o Tidy up the code in evthread_make_base_notifiable a little (61e1eee)
 o Pass flags to fcntl(F_SETFL) and fcntl(F_SETFD) as int, not long (7c2dea1)
 o Remove unused variables in test/test-changelist.c (b00d4c0)
 o Fix whitespace. (cb927a5)
 o Improve error message for failed epoll to make debugging easier. (9e725f7)
 o Turn our socketpair() replacement into its own function (57b30cd)


Changes in 2.0.5-beta:
 [Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
 o Update all our copyright notices to say "2010" (17efc1c)
 o Add Christopher Clark and Maxim Yegorushkin to the LICENSE file (38b7b57)
 o Clarify Christopher Clark's status as writer of original ht code. (78772c3)
 o Try to comment some of the event code more (cdd4c49)
 o Add a few more evmap/changelist comments (c247adc)
 o Add a comment to explain why evdns_request is now separte from request (ceefbe8)
 o Document evutil_secure_rng_init() and evutil_secure_rng_add_bytes() (a5bf43a)
 o Stop distributing and installing manpages: they were too inaccurate (7731ec8)

NEW FEATURES AND INTERFACE CHANGES
 o Remove signal_assign() and signal_new() macros. (2fac0f7)
 o Make evdns use the regular logging system by default (b2f2be6)
 o Allow evbuffer_read() to split across more than 2 iovecs (e470ad3)
 o Functions to manipulate existing rate limiting groups. (ee41aca)
 o Functions to track the total bytes sent over a rate limit group. (fb366c1)
 o Detect and refuse reentrant event_base_loop() calls (b557b17)
 o Limit the maximum number of events on each socket to 65535 (819f949)
 o Add evbuffer_copyout to copy data from an evbuffer without draining (eb86c8c)
 o Expose the request and reply members of rpc_req_generic() (07edf78 Shuo Chen)
 o Add void* arguments to request_new and reply_new evrpc hooks (755fbf1 Shuo Chen)
 o Seed the RNG using sysctl() as well as /dev/urandom (71fc3eb)
 o Make evutil_secure_rng_init() work even with builtin arc4random (f980716)
 o Report DNS error when lookup fails during bufferevent_socket_connect_hostname. (0ef4070 Christopher Davis)
 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)
 o Catch attempts to enable debug_mode too late (9ecf0d4)
 o Refuse null keys in evhttp_parse_query() (953e229 Frank Denis)

BUGFIXES
 o Avoid a spurious close(-1) on Linux (70a44b6)
 o Do not close(-1) when freeing an uninitialized socket bufferevent (b34abf3)
 o Free evdns_base->req_heads on evdns_base_free (859af67)
 o Avoid an (untriggerable so far) crash bug in bufferevent_free() (0cf1431)
 o Set mem_offset for every bufferevent type (657d1b6)
 o Fix infrequent memory leak in bufferevent_init_common(). (8398641 Jardel Weyrich)
 o Make evutil_signal_active() match declaration. (e1e703d Patrick Galbraith)
 o Fix minheap code to use replacement malloc functions (a527618)
 o Fix a free(NULL) in minheap-internal.h (6f20492)
 o Fix critical bug in evbuffer_write when writev is not available (cda56ab)
 o Make the no_iovecs case of write_atmost compile (8e227b0)
 o Fix a memory leak when appending/prepending to a buffer with unused space. (45068a3)
 o Clean up a mistake in pointer manipulation in evbuffer_remove (28bfed4 Christopher Davis)
 o Always round up when there's a fractional number of msecs. (8f9e60c Christopher Davis)
 o Fix compiler warnings under WIN32 (d469c50 Giuseppe Scrivano)
 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)
 o Free search state when finished searching to avoid an infinite loop. (a625840 Christopher Davis)
 o Assert for valid requests as necessary. (67072f3 Christopher Davis)
 o do not leak the request object on persistent connections (9d8edf2)
 o Make evdns logging threadsafe (b1c7950)
 o Fix a couple of bugs in the BSD sysctl arc4seed logic (a47a4b7)
 o Remove one last bug in last_with_datap logic. Found with valgrind (d49b92a)
 o fix a leak when unpausing evrpc requests (94ee125)
 o Fix a memory leak when unmarshalling RPC object arrays (f6ab2a2)
 o Fix compilation when openssl support is disabled (40c301b)
 o Allow empty reason line in HTTP status (739e688 Pierre Phaneuf)
 o Fix a compile warning introduced in 739e688 (bd1ed5f Sebastian Hahn)
 o Fix nonstandard TAILQ_FOREACH_REVERSE() definition (71afc52 Frank Denis)
 o Try /proc on Linux as entropy fallback; use sysctl as last resort (20fda29)
 o Fix symbol conflict between mm_*() macros and libmm (99e50e9)
 o Fix some crazy macro mistakes in arc4random.c (90d4225)
 o Make evbuffer_add_file() work on windows (dcdae6b)
 o Fix unused-variable warning when building with threads disabled (ad811cd)
 o Numerous opensolaris compilation fixes (c44de06)
 o Fix getaddrinfo with protocol unset on Solaris 9. Found by Dagobert Michelsen (2cf2a28)
 o Fix another nasty solaris getaddrinfo() behavior (3557071)
 o Define _REENTRANT as needed on Solaris, elsewhere (c1cd32a)
 o Fix some autoconf issues on OpenBSD (7c519df)

BUILD AND DISTRIBUTION CHANGES
 o Distribute libevent.pc.in, not libevent.pc (22aff04)
 o Avoid errors in evutil.c when building with _UNICODE defined (b677032 Brodie Thiesfield)
 o Avoid errors in http.c when building with VC 2003 .NET (13e4f3b Brodie Thiesfield)
 o Support the standard 'make check' target in place of 'make verify' (426c8fb)
 o Remove redundant stuff from EXTRA_DIST (b660edf)
 o Switch to using AM conditionals in place of AC_LIBOBJ (2e898f5)
 o Remove an orphaned RELEASE flag in Makefile.am (0794b0d)
 o Give a better warning for bad automake versions. (77c917d)
 o Use dist_bin_SCRIPTS, not EXTRA_DIST, to distribute scripts (9eb2fd7)
 o Never test for select() on windows (3eb044d Trond Norbye)
 o Do not inhibit automake dependencies generation (10c4c90 Giuseppe Scrivano)
 o Create shared libraries under Windows (3cbca86 Giuseppe Scrivano)
 o Add ctags/etags files to .gitignore (0861d17)
 o Only specify -no-undefined on mingw (25433b9)
 o Only add libevent_core.la to LIBADD on mingw (fdc6297)

TESTING
 o Get bench_http to work on Windows; add a switch to enable IOCP. (4ac38a5 Christopher Davis)
 o VC has no getopt(), so do without in bench_http. (1273d2f Christopher Davis)
 o Fix an obnoxious typo in the bufferevent_timeout_filter test (0d047c3)
 o Fix a write of uninitialized RAM in regression tests (68dc742)
 o Fix some memory leaks in the unit tests (274a7bd)
 o Make 'main/many_events' test 70 fds, not 64. (33874b0)
 o Unit-test every evbuffer_add_file() implementation. (06a4443)
 o Add more unit tests for evbuffer_expand (8c83e99)
 o Test another case of evbuffer_prepend (1234b95)
 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)
 o Make http_base_test stop leaking an event_base. (96730d3)
 o Detect broken unsetenv at unit-test runtime (f37cd4c)
 o Implement regress_make_tempfile on win32 to test evbuffer_add_file (b4f12a1)
 o add more (currently skipped) add_file tests on win32 (05de45d)
 o Fix bench_http build on win32. (384d124)
 o Make unit test for add_file able to tell "error" from "done" (88a543f)
 o Make test for bufferevent_connect_hostname system-neutral (f89168e)
 o Make test.sh support mingw/msys on win32 (0ee6f6c)
 o Fix test.sh on freebsd (3d9e05b)

INTERNALS, PERFORMANCE, AND AND CODE CLEANUPS
 o Improve the speed of evbuffer_readln() (cc1600a)
 o more whitespace normalization (2c2618d)
 o Revise evbuffer to add last_with_data (2a6d2a1)
 o Use last_with_data in place of previous_to_last (c8ac57f)
 o Remove previous_to_last from evbuffer (6f47bd1)
 o Fix last_with_data compilation on windows (1e7b986)
 o Add some glass-box tests for the last_with_data code. (17da042)
 o Improve robustness for refcounting (f1bc125)
 o Remove a needless min_heap_shift_up_() call (7204b91)
 o Increase MIN_BUFFER_SIZE to 512 (1024 on 64-bit) (2014ae4)
 o Do not use evbuffer_expand() to add the first chain to a buffer (5c0ebb3)
 o Make evbuffer_prepend handle empty buffers better (c87272b)
 o Replace last_with_data with a slightly smarter version (b7442f8)
 o Turn the increasingly complex *_CHAIN() macros into functions (96865c4)
 o Rewrite evbuffer_expand and its users (d5ebcf3)
 o Add evutil_tv_to_msec for safe conversion of timevals to milliseconds. (850c3ff Christopher Davis)
 o Initialize last_with_datap correctly in evbuffer_overlapped (a0983b6)
 o Replace EVUTIL_CLOSESOCKET macro with a function (899c1dc Sebastian Sjöberg)
 o Move domain search state to evdns_request. (beaa14a Christopher Davis)
 o Remove redundant checks for lock!=NULL before calling EVLOCK_LOCK (50ec59f)
 o Rename current_base symbol to event_global_current_base_ (c16e684)
 o Fix whitespace in evutil.c (935e150)
 o Replace users of "int fd" with "evutil_socket_t fd" in portable code (c7cf6f0)



Changes in 2.0.4-alpha:
 [Autogenerated from the Git log, sorted by hand.]
DOCUMENTATION
 o Add stub header for 2.0.4-alpha changelog. (94d0065)
 o Improve the README with more information and links. (0b42726)
 o Add more people who wrote patches to the acknowledgments (0af10d5)
 o Add a warning about the use of event_initialized. (f32b575)
 o Add a LICENSE file so people can find our license easily (7067006)
 o Add a new "hello world" sample program (becb9f9)
 o Clarify status of example programs (d60a1bd)
 o Update time-test.c to use event2 (f4190bf)
 o Add the arc4random.c license to the LICENSE file. (e15e1e9)

NEW FEATURES AND INTERFACE CHANGES
 o Improved optional lock debugging. (0cd3bb9)
 o Rate-limiting for bufferevents; group and individual limits are supported. (737c9cd)
 o Testing code for bufferevent rate-limiting. (f0c0124)
 o Make the initial nameserver probe timeout configurable. (1e56a32)
 o Revise the locking API: deprecate the old locking callbacks and add trylock. (347952f)
 o Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. (8274379)
 o Do not ignore bufferevent_enable(EV_READ) before bufferevent_connect(). (4a5b534)
 o Introduced evutil_make_socket_closeonexec() to preserve fd flags for F_SETFD. (d0939d2 Jardel Weyrich)
 o evdns_getaddrinfo() now supports the /etc/hosts file. (72dd666)
 o Look at the proper /etc/hosts file on windows. (66c02c7)
 o Allow http connections to use evdns for hostname looksups. (c698b77)
 o Changelist code to defer event changes until just before dispatch (27308aa)
 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)
 o Functions to access more fields of struct event. (0683950)
 o Make kqueue use changelists. (45e5ae3)
 o Remove kqueue->pend_changes. (3225dfb)
 o Minimize epoll_ctl calls by using changelist (c8c6a89)
 o Add support for a "debug mode" to try to catch common errors. (cd17c3a)
 o Note a missing ratelim function (361da8f)
 o Add ev_[u]intptr_t to include/event2/util.h (1fa4c81)
 o const-ify a few more functions in event.h (d38a7a1)
 o Deprecate EVENT_FD and EVENT_SIGNAL. (f6b2694)
 o Remove EVUTIL_CHECK_FMT. (6c21c89)
 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)
 o Add the rest of the integer limits, and add a test for them. (60742d5)
 o Remove the 'flags' argument from evdns_base_set_option() (1dd7e6d)
 o Add an arc4random implementation for use by evdns (d4de062)
 o Use off_t for the length parameter of evbuffer_add_file (3fe60fd)
 o Construct Windows locks using InitializeCriticalSectionAndSpinCount (32c6f1b)
 o Expose view of current rate limit as constrained by group limit (162ce8a)
 o Provide consistent, tested semantics for bufferevent timeouts (d328829)

BUGFIXES AND TESTS
 o Tolerate code that returns from a fatal_cb. (91fe23f)
 o Parenthesize macro arguments more aggressively (07e9e9b)
 o Fix memory-leak of signal handler array with kqueue. (e1ffbb8)
 o Stop passing EVTHREAD_READ and EVTHREAD_WRITE to non-rw locks. (76cd2b7)
 o Fix two use-after-free bugs in unit tests spoted by lock debugging (d84d838)
 o Fix a locking bug in event_base_loop() (da1718b)
 o Fix an evdns lock violation. (2df1f82 Zhuang Yuyao)
 o Valgrind fix: Clear struct kevent before checking for OSX bug. (56771a3 William Ahern)
 o Fix up evthread compilation on windows (bd6f1ba Roman Puls)
 o Fix regress_iocp.c usage of old lock allocation macros. (31687b4 unknown)
 o Update nmake makefile to build evthread.c (b62d979 unknown)
 o Fix a crash when reading badly formatted resolve.conf; from Yasuoka Masahiko (6c7c579 Yasuoka Masahiko)
 o Fix a snow leopard compile warning in the unit tests. (7ae9445)
 o Fix compile on Snow Leopard with gcc warnings enabled (70cdfe4 Sebastian Hahn)
 o Only define _GNU_SOURCE if it is not already defined. (ea6b1df Joachim Bauch)
 o Update sample/signal-test.c to use newer APIs and not leak. (f6430ac Evan Jones)
 o Fix a segfault when writing a very fragmented evbuffer onto an SSL (a6adeca Joachim Bauch)
 o Fix a segfault when freeing SSL bufferevents in an unusual order (a773df5 Joachim Bauch)
 o Drop install-sh from our git repo: a mismatched version could break "make dist" (6799527)
 o Set all instances of the version number correctly. (5a112d3)
 o Fix a few locking issues on windows. (c51bb3c unknown)
 o Use evutil_socket_t, not int, when logging socket errors. (292467c)
 o Fix up behavior of never-defered callbacks a little (390e056)
 o Replace some cases of uint32_t with ev_uint32_t. (a47d88d)
 o Fix compilation of devpoll.c by adding missing thread includes. (fee2c77 Dagobert Michelsen)
 o Make evutil_make_socket_nonblocking() leave any other flags alone. (4c8b7cd Jardel Weyrich)
 o Fix an fd leak in evconnlistener_new_bind(). (24fb502 Jardel Weyrich)
 o Fix a bogus free in evutil_new_addrinfo() (0d64051 Jardel Weyrich)
 o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (4df7dbc Jardel Weyrich)
 o Fix the code that allowed DNS options to not end with : (ee4953f)
 o Fix crash bugs when a bufferevent's eventcb is not set. (2e8eeea)
 o Fix test-ratelim compilation on Linux. (885b427)
 o Fix compilation of rate-limiting code on win32. (165d30e)
 o Eradicated the last free() call. Let mm_free() take care of deallocation. (0546ce1 Jardel Weyrich)
 o Fix byte counts when mixing deferred and non-deferred evbuffer callbacks. (29151e6)
 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)
 o Fixed a fd leak in start_accepting(), plus cosmetic changes (4367a33 Jardel Weyrich)
 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)
 o Don't use a bind address for nameservers on loopback (8d4aaf9)
 o Fix compilation of rate-limit code when threading support is disabled (97a8c79)
 o Detect setenv/unsetenv; skip main/base_environ test if we can't fake them. (7296971)
 o Check more internal event_add() calls for failure (ff3f6cd)
 o Fix windows and msvc build (5c7a7bc)
 o Call event_debug_unassign on internal events (a19b4a0)
 o Try to fix a warning in hash_debug_entry (137f2c6)
 o Fix a dumb typo in ev_intptr_t definitions. (27c9a40)
 o do not fail while sending on http connections the client closed. (93d7369)
 o make evhttp_send() safe against terminated connections, too (3978180)
 o Make Libevent 1.4.12 build on win32 with Unicode enabled. (000a33e Brodie Thiesfield)
 o Fix some additional -DUNICODE issues on win32. (a7a9431)
 o Add a check to make soure our EVUTIL_AI flags do not conflict with the native ones (c18490e)
 o Always use our own gai_strerror() replacement. (6810bdb)
 o Make RNG work when we have arc4random() but not arc4random_buf() (4ec8fea)
 o validate close cb on server when client connection closes (2f782af)
 o Fix two unlocked reads in evbuffer. (7116bf2)
 o When working without a current event base, don't try to use IOCP listeners (cb52838)
 o Fix getpid() usage on Windows (ff2a134)
 o Add a unit test for secure rng. (48a29b6)
 o Add some headers to fix freebsd compilation (b72be50)
 o When connect() succeeds immediately, don't invoke the callback immediately. (7515de9)
 o Suspend read/write on bufferevents during hostname lookup (db08f64)
 o Make bufferevent_free() clear all callbacks immediately. (b2f
...


github.com/lvc
Facebook Twitter Vkontakte Reddit Github Email Skype QZone Weibo