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 ...