[ANNOUNCEMENT] Updated: libevent{2.0_5, -devel, -debuginfo} mingw64-{x86_64, i686}-libevent 2.1.12

Cygwin libevent Maintainer Brian.Inglis@SystematicSW.ab.ca
Wed Jun 2 01:47:39 GMT 2021

The following packages have been upgraded in the Cygwin distribution:

* libevent2.0_5			2.1.12
* libevent-devel		2.1.12
* libevent-debuginfo		2.1.12
* mingw64-x86_64-libevent	2.1.12
* mingw64-i686-libevent		2.1.12

Provides a scalable multi-threaded event notification mechanism to
execute a callback when a specific event occurs on a file descriptor,
due to signals, or after a timeout has been reached, whether explicit or
from other sources.

For more information see the project home page:


or GitHub repository:


As there have been many changes since the previous release please see
below or read /usr/share/doc/libevent/ChangeLog after installation for
complete details:


Changes in version 2.1.12-stable (05 Jul 2020)

This release contains mostly bug fixes (I decided not to port some features
that can be ported even without ABI breakage, if you cannot find feature that
you are interested in, please give us a note!)

Since 2.1.12 libevent will use github actions as main CI, since
it recommends itself better then travis/appveyor (and had been removed from

Look carefully at "slightly touches the behaviour" section.

Below you will find some of changes (this list has been cleaned up from the
patches that touches only tests and similar):

o Backport github actions to 2.1 (be3acd7c Azat Khuzhin)
o Merge branch 'event_rpcgen.py-cleanup' (f0ded5f3, 48e04887 Enji Cooper)
o Add API/ABI checker (using LVC) (709210d4, 2af1f6cc yuangongji)

o tinytest: support timeout on Windows (794e8f75 yuangongji)
o Merge branch 'osx-clock' (e85afbe3 Azat Khuzhin)
o test-ratelim: calculate timers bias (for slow CPUs) to avoid false-positive

o buffer: do not pass NULL to memcpy() from evbuffer_pullup()
o http: fix undefined-shift in EVUTIL_IS*_ helpers (6b8d02a7 Azat Khuzhin)
o Check error code of evhttp_add_header_internal() in evhttp_parse_query_impl()
o http: fix EVHTTP_CON_AUTOFREE in case of timeout (and some else)
o evdns: Add additional validation for values of dns options
o There is typo in GetAdaptersAddresses windows library.
  It should be iphlpapi.dll
o Merge branch 'EV_CLOSED-and-EV_ET-fixes' (db2efdf5 Azat Khuzhin)
o Fix memory corruption in EV_CLOSURE_EVENT_FINALIZE with debug enabled
o increase segment refcnt only if evbuffer_add_file_segment() succeeds
o evdns: fix a crash when evdns_base with waiting requests is freed
o event_base_once: fix potential null pointer threat (2e9ceb16 chenguolong)
o http: do not assume body for CONNECT (1b42270b Azat Khuzhin)
o evbuffer_add_file: fix freeing of segment in the error path
o Fix checking return value of the evdns_base_resolv_conf_parse()
o Merge branch 'fix-signal-leak' (poll/select now needs reinit)

o evutil_time: improve evutil_gettimeofday on Windows (a8219143 Nick Grifka)
o Support EV_CLOSED on linux for poll(2) (2530e7c6 Azat Khuzhin)
o Parse IPv6 scope IDs. (f602211f Philip Homburg)
o evutil_time: Implements usleep() using wait funtion on Windows
o evutil_time: detect and use _gmtime64_s()/_gmtime64() (f4a6152c yuangongji)

slightly touches the behaviour:
o bufferevent: allow setting priority on socket and openssl type
o Fix EV_CLOSED detection/reporting (epoll only) (1df324d4 Azat Khuzhin) (XXX)
o Revert "Warn if forked from the event loop during event_reinit()"

o https-client: load certificates from the system cert store on Windows

build fixes:
o Do not use sysctl.h on linux (it had been deprecated) (d2871a37 Azat Khuzhin)
o cmake: avoid problems from use of CMAKE_USE_PTHREADS_INIT
o Update list of cmake files for autotools dist archive (2016f017 Azat Khuzhin)
o LibeventConfig.cmake: restore CMAKE_FIND_LIBRARY_SUFFIXES and
o cmake: fix getaddrinfo checking error (dea51c2e yuangongji)
o autoconf: fix getaddrinfo checking errors on mingw (b9bf7fa7 yuangongji)
o Do not use shared global structures on CYGWIN (8a9b5655 Azat Khuzhin)
o Added uninstall target check to cmakelists (3f1fb1f9 Dimo Markov)
o Fix compilation without OPENSSL_API_COMPAT (921bdcdd Azat Khuzhin)
o cmake: improve package config file (1c047618, baec84f2 yuangongji)
o Link with iphlpapi only on windows (976f7d34 Azat Khuzhin)
o autotools: fails build when need but can not find openssl
o Merge branch 'http-connect' (e2424229 Azat Khuzhin)
o Fix compat with NetBSD >= 10 (5febb4e1 Kamil Rytarowski)
o cmake: fix getrandom() detection (e0e5f3bd Azat Khuzhin)
o arc4random: replace sysctl() with getrandom (on linux) (66ec78fd Azat Khuzhin)
o Upgrade autoconf (after upgrading minimum required to 2.67)
o eliminate some C4267 warnings in Windows (9e468c77 yuangongji)
o autotools: attach doxygen target into all target (5d1e8570 yuangongji)
o cmake: attach doxygen target into all target (7a85300a yuangongji)
o Change the minimum version of automake to 1.13 and autoconf to 2.67
o Add Uninstall.cmake.in into dist archive (877f2355 Azat Khuzhin)

Changes in version 2.1.11-stable (01 Aug 2019)

This release contains one ABI breakage fix (that had been introduced in
2.1.10, and strictly speaking this release breaks ABI again to make it
compatible with 2.1.9 and less, please take a look at 18104973 for more
details). Apart from that it contains some bug fixes, that grouped below.

And even though the return value for evbuffer_setcb() had been changed it
should ABI compatible (anyway that function is in -compat.h header).

There is also one patch that introduce new functionality, this is 546a366c,
to tune SO_RCVBUF/SO_SNDBUF in evdns, but one can count it as a bug-fix on
the application level, since before you cannot tune this settings and hence
you could stumble on problems.

ABI breakage:
o Protect min_heap_push_ against integer overflow. (8c899768 Tobias Stoeckmann)
o Revert "Protect min_heap_push_ against integer overflow."

o evdns: add new options -- so-rcvbuf/so-sndbuf (546a366c Azat Khuzhin)

o Change autoconf version to 2.62 and automake version to 1.11.2
o cmake: install shared library only if it was requested (596855f7 Azat Khuzhin)
o Missing <winerror.h> on win7/MinGW(MINGW32_NT-6.1)/MSYS (9559349c yuangongji)
o cmake: set library names to be the same as with autotools
o Enable _GNU_SOURCE for Android (f013fc7d Keith Smiley)
o Enable kqueue for APPLE targets (3aa68a82 Keith Smiley)
o autotools: do not install bufferevent_ssl.h under --disable-openssl
o cmake: link against shell32.lib/advapi32.lib (c9ce638c Azat Khuzhin)
o Add README.md into dist archive (3660a4cc Azat Khuzhin)
o cmake: add missing autotools targets (doxygen, uninstall, event_rpcgen.py)
o m4/libevent_openssl.m4: fix detection of openssl (d4056e59 Fabrice Fontaine)
o Fix detection of the __has_attribute() for apple clang [ci skip]

o buffer: fix possible NULL dereference in evbuffer_setcb() on ENOMEM
o Warn if forked from the event loop during event_reinit()
o evutil: set the have_checked_interfaces in evutil_check_interfaces()
(ef498aa2, a09265ac jeremyerb)

o https-client: correction error checking (a8a04565 wenyg)

Changes in version 2.1.10-stable (26 May 2019)

This release contains mostly fixes (some evbuffer oddity, AF_UNIX handling in
http server, some UB fixes and others) but also some new functionality
(without ABI breakage as usual) and now dist archive can be used for building
on windows (getopt had been added into it).

Above you will find changelog for this particular release (but with some
trivial fixes pruned out from it - to make it a little bit more informative).

To view full changelog please use git:
git log --format='  o %s (%h %aN)' release-2.1.9-beta...release-2.1.10-stable

o Add getopt into dist archive (7042ff24 Azat Khuzhin)

(58e81106 Azat Khuzhin)
o Add support for EV_TIMEOUT to event_base_active_by_fd (3f893f0a John Ohl)

o Merge branch 'evbuffer-fixes-806-v2' (2fea04b3 Azat Khuzhin)
o Merge branch 'issue-807-accept4-getnameinfo-AF_UNIX' (7c4da937, e2790a7f
Azat Khuzhin)
o kqueue: Avoid undefined behaviour. (e70e18e9 Tobias Stoeckmann)
o Prevent integer overflow in kq_build_changes_list.
o evdns: fix lock/unlock mismatch in evdns_close_server_port()
o Merge remote-tracking branch 'official/pr/804' -- Enforce limit of NSIG
signals (87fa93a8 Tobias Stoeckmann)
o Protect min_heap_push_ against integer overflow. (0b46bb8c Tobias Stoeckmann)
o le-proxy: initiate use of the Winsock DLL (2a1e1530 linxiaohui)
o Fix leaks in error path of the bufferevent_init_common_()
o buffer: make evbuffer_prepend() of zero-length array no-op
o Merge branch 'evbuffer-empty-chain-handling' (6a3dd717 Azat Khuzhin)
o Don't loose top error in SSL (3d1a7a1d Yury Korzhetsky)
o Remove needless check for arc4_seeded_ok (6602a97d Seong-Joong Kim)
o Merge pull request #769 from sungjungk/fix-return-handling

o Define `_GNU_SOURCE` properly/consistently per autoconf (00ba9fa2 Enji Cooper)
o signal: guard __cdecl definition with #ifdef (d89045a6 Azat Khuzhin)
o Link test/regress with event_core/event_extra over event

o Use kill() over raise() for raising the signal (fixes osx 10.14 with
kqueue) (3db5296b, a45f6733 Azat Khuzhin)
o tinytest: implement per-test timeout (via alarm() under !win32 only)
(b64dbfb6, 75d7e1ff Azat Khuzhin)

Changes in version 2.1.9-beta (10 February 2019)

This changelog will differs from other releases in the next few clauses:
- contains only highlighted changes (so now it will not contains a lot of
patches that fixes some stuff in regression tests, typos, leaks fixes in
samples and so forth)
- no authors (since merge commits breaks them anyway, but AUTHORS sections in
README will be kept up to date)
- group name trimmed from commit subjects trimmed
- it's been 2 years since the previoius release, so it is pretty huge

And I think that this is more useful, so from now on it will always has the
same look (until there will too many objections of course).

To view full changelog please use git:
git log --format='  o %s (%h %aN)' release-2.1.8-stable...release-2.1.9-beta

dist archive:
o Add cmake rules into dist archive (bf3a67cf)
o Add missing print-winsock-errors.c into dist archive (822d6462)
o Include openssl-compat.h into dist archive (08658136)

o Merge branch 'check-O_NONBLOCK-in-debug' (a39898f3, a8155c62)
o Merge branch 'event-ET-#636-v2' (ca4b6404)
o Fix visibility issues under (mostly on win32)
(349081e1g, 802be13ag, a1f28e2f)
o Define __EXT_POSIX2 for QNX (a2176f2c)
o Cleanup __func__ detection (b3af7bdd)
o Add convenience macros for user-triggered events (06ec5de6)
o Notify event base if there are no more events, so it can exit without delay
o Fix base unlocking in event_del() if event_base_set() runned in another thread
o If precise_time is false, we should not set EVENT_BASE_FLAG_PRECISE_TIMER
o Fix race in access to ev_res from event loop with event_active() (43d92a6d)
o Return from event_del() after the last event callback termination (876c7ac7)

o Merge branch 'http-EVHTTP_CON_READ_ON_WRITE_ERROR-fixes-v2' (eb7b472b)
o Preserve socket error from listen across closesocket cleanup (2ccd00a6)
o fix connection retries when there more then one request for connection
o improve error path for bufferevent_{setfd,enable,disable}() (a8cc449e)
o Fix conceivable UAF of the bufferevent in evhttp_connection_free() (6ac2ec25)
o Merge branch 'http-request-line-parsing' (cdcfbafe)
o Fix evhttp_connection_get_addr() fox incomming http connections (4215c003)
o fix leaks in evhttp_uriencode() (123362e9)
o CONNECT method only takes an authority (7d1ffe64)
o Allow bodies for GET/DELETE/OPTIONS/CONNECT (23eb38b9)
o Do not crash when evhttp_send_reply_start() is called after a timeout.
o Fix crashing http server when callback do not reply in place
o fix handling of close_notify (ssl) in http with openssl bufferevents

o use *_new_with_arg() to match function prototype (a95cc9e3)
o avoid NULL dereference on request is not EVHTTP_REQ_POST (e05136c7)

regression tests:
o Merge branch 'TT_RETRIABLE' (6ea1ec68, f9b592aa)

o Merge branch 'iocp-fixes' (6bfac964)
o Merge branch 'be-wm-overrun-v2' (3f692fff)
o bufferevent_socket_connect{,_hostname}() missing event callback and
  use ret code
o don't fail be_null_filter if bytes are copied (b92b0792)
o Call underlying bev ctrl GET_FD on filtered bufferevents (ebfac517)

o Merge branch 'ssl_bufferevent_wm_filter-fix' (30020a35)
o be_openssl: avoid leaking of SSL structure (e86ccfe5)
o Fix build with LibreSSL 2.7 (894ca48a)
o Add missing includes into openssl-compat.h (01bc36c1)
o Explicitly call SSL_clear when reseting the fd. (29b7a516)
o Unbreak build with LibreSSL after openssl 1.1 support added (230af9f0)

o Merge branch 'sample-http-server' (b6309bcc)
o sample/https-client: use host SSL certificate store by default (5c0132f3)

o ipv6only socket bind support (ba148796)
o Merge branch 'listener-immediate-close' (df2ed13f)
o Merge branch 'evconnlistener-do-not-close-client-fd' (42e851bb)

o evdns: handle NULL filename explicitly (0033f5cc)
o Merge branch 'evdns_getaddrinfo-race-fix' (3237d697)
o Generating evdns_base_config_windows_nameservers docs on all platforms

o Merge branch 'evutil_found_ifaddr-dev' (b07e43e6)
o Avoid possible SEGVs in select() (in unit tests) (8818c86c)
o Port `event_rpcgen.py` and `test/check-dumpevents.py` to Python 3. (532a8cc3)

o Fix assert() condition in evbuffer_drain() for IOCP (d6326104)
o fix incorrect unlock of the buffer mutex (for deferred callbacks) (2b4d127d)
o Fix wrong assert in evbuffer_drain() (9f4d0dce)

o fix checking of devpoll backend (like in autotools, by devpoll.h existence)
o support static runtime (MSVC) (c8b3ec17, 61fb055a)
o do not build both (SHARED and STATIC) for MSVC/win32 (bc7f2fd9)
o introduce EVENT__LIBRARY_TYPE option (eb10a738)
o ensure windows dll's are installed as well as lib files (29590718)
o Fix generation of LibeventConfig.cmake for the installation tree (7fa08c4b)
o fix pkgconfig generation (copy-paste typo) (cc554d87)
o Merge branch 'cmake-missing-bits' (9806b126)
o Fix detection of timerfd_create() in CMake. (e50af331)
o Merge branch 'cmake-configure-fixes-v2' (a0bfe2c4)
o Do not add epoll_sub (syscall wrappers) for epoll in cmake (cea61de6)
o Fix RPATH for APPLE (45b1f379)

o include win32 specific headers for socklen_t detection on win32/mingw
o Ignore evconfig-private.h for autotools (37423849)
o config.h can't be prefixed unconditionally (63a054f8)
o Merge branch 'pull-628' (7e56c8b2)
o Provide Makefile variables LIBEVENT_{CFLAGS,CPPFLAGS,LDFLAGS} (2f060c5f)
o confirm openssl is working before using (b39ccf8e)
o pass $(OPENSSL_INCS) for samples (FTBFS macOS) (c2495265)
o Add configure check for midipix (d433201e)
o Fix tests with detached builds (c46ff439)

o Fix arc4random_addrandom() detecting and fallback (regression) (303d6d77)
o Merge branch 'win32-fixes' (ebd12e6d)
o Merge branch 'fix-openssl-linking' (e7bd9e03)
o Merge branch 'fix-struct-linger' (8567f2f5)

o travis-ci/appveyor now uses fast_finish+allow_failures
(5e97b6e6, dd472e7d, dfb5fc167)
o Merge branch 'travis-ci-osx-fixes' (9f02b39c)
o Merge branch 'win64-fixes' (aee0fcd5)

Changes in version 2.1.8-stable (22 January 2017)

Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using
bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased
timeout for some tests (to reduce number of failures due to timing issues),
date in RFC1123 format and running tests in parallel.

There are highlighted changes above.

Build fixes:
o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin)
o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin)
o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin)
o evutil_time: include <unistd.h> when there is only sleep()/usleep()
o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin)
Testing environment:
o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*)
Vagrant env fixes:
o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin)
o vagrant/netbsd: more reliable way of installing packages
o vagrant/osx: use make instead of gmake (there is no gmake)
o vagrant: add centos box (ca591c5b Azat Khuzhin)
o test/dns: replace servname since solaris does not have "http"
o test/thread: netbsd is too slow, increase timeout for conditions_simple
o test/dns: run async resolving after sync one (to avoid timeouts)
o test/http: turn off some tests that based on backlog filling (falky)
o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin)
o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin)
o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin)
o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin)
o Fix incorrect MIME type (23f9a20e johnsonlee)
Trivial fixes:
Documentation updates:
o Update README.md (3821cca1 Breaker)

Changes in version 2.1.7-rc (2 Novemer 2016)

Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements
and plus Vagrantfile for testing under multiple OS'es.

Continious Integration:
o Use coveralls.io via travis (9ac000c Azat Khuzhin)
o travis-ci: use container-based infrastructure (7e12e96 Azat Khuzhin)
o travis-ci/osx: fix compiling/linking openssl libraries (9d2f8d4 Azat Khuzhin)
o travis-ci: use gcc-5 (fixes osx|gcc failures) (d7ceae5 Azat Khuzhin)
o Testing with vagrant for 6 OS and cmake+autoconf (9585338 Azat Khuzhin)
o travis-ci/osx: install lcov (e4e099b Azat Khuzhin)

Build Improvements/Fixes:
o Fix cmake -DEVENT__COVERAGE=ON (40fbffc Azat Khuzhin)
o autogen.sh: learn about gmake (9376ac4 Azat Khuzhin)
o autogen.sh: remove all autoconf/automake caches, if any (69cce25 Azat Khuzhin)
o cmake: fix finding python2, and check that it is really 2
o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054)
o cmake: cleanup (dc624ad Zonr Chang)
o cmake/win32: fix running regress, but fixing finding python2 interpreter
o cmake: use PYTHON_EXECUTABLE to find python2 (a4d044c Azat Khuzhin)
o Merge branch 'force-disable-clockgettime' (83c7cdf Azat Khuzhin)

Code Improvements (core)
o use ev_uint16_t instead of unsigned short for port (e983712 Thomas Bernard)
o Merge branch 'contrib-guide-v2' (b9c5077 Azat Khuzhin)
o poll: Prevent libevent from spinning if POLLNVAL occurs

o test/regress: cover a polling of invalid fd (cb0df5c Tim Hentenaar)

Code Improvements (bufferevent_openssl)
o Make it build using OpenSSL 1.1.0 (3e9e0a0 Kurt Roeckx)
o Don't call BIO_number_{read|written} on NULL BIOs. (6702da1 Adam Langley)
o Switch from a 512 to 2048-bit RSA key. (f9803a6 Adam Langley)

Trivial fixes:
o Ignore temporary configure files (8fb08ae Azat Khuzhin)
o README.md: fix typo: ar -> are (2361616 Simone Basso)
o be: just a simple mistake, reinclude the <errno.h> (7521664 Seven)

Changes in version 2.1.6-beta (4 July 2016)

Libevent 2.1.6-beta contains mostly bug fixes (evbuffers, evthread, evdns,
bufferevents, core, http, samples), improvements but mostly to fix some
possible issues (EVHTTP_CON_LINGERING_CLOSE), a lot of new unit tests and new
appveyor integration.

Security Fixes (utils)
o evutil_parse_sockaddr_port(): fix buffer overflow (329acc1 Azat Khuzhin)

Security Fixes (evdns)
o evdns: name_parse(): fix remote stack overread (96f64a0 Azat Khuzhin)
o evdns: fix searching empty hostnames (ec65c42 Azat Khuzhin)

New APIs (evdns)
o New function to get address for nameserver. (537177d Nick Mathewson)

New APIs (bufferevents)
o expose bufferevent_incref/decref (with fewer modifications)

New APIs (internal)
o evdns: export cancel via callbacks in util (like async lib core/extra issues)

New APIs/Improvements (http)
o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue"
o http: lingering close (like nginx have) for entity-too-large
o http: read server response even after server closed the connection
o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin)
o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR
o http: use IP address that we got before (if any) during retrying

Bugfixes (core)
o Fix getaddrinfo under solaris (for multiprotocol case) (40730ae Azat Khuzhin)
o Check for Mac OS X 10.4 kqueue bug properly (df6f99e Mark Mentovai)
o event_reinit: make signals works after fork() without evsig_add()
o event_reinit: always re-init signal's socketpair (ad0c237 Nicholas Marriott)
o Free event queues even for recursive finalizers (7c8d015 Azat Khuzhin)
o Fix checking for make_base_notifiable() (f337296 Azat Khuzhin)
o Set correct socklen for PF_INET6 sockaddr len (3499ad9 Mark Ellzey)
o Fix garbage value in socketpair util function, stdint? (043ae74 Mark Ellzey)
o fix the return value of event_deferred_cb_schedule_ (38cef64 Greg Hazel)
o event_free_debug_globals_locks(): disable lock debugging
o event: call event_disable_debug_mode() in libevent_global_shutdown()
o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR

Bugfixes (evthread)
o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case
o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()

Bugfixes (evdns)
o evdns: avoid double-free in evdns_base_free() for probing requests
o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests
o evdns: evdns_base_free(): free requests before namservers
o evdns: fix randomize-case by make case-insensitive as required

Bugfixes (bufferevents)
o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2)
o be_filter: avoid data stuck under active watermarks (b627ad8 Eduardo Panisset)
o Fix bufferevent_pair to properly set BEV_EVENT_{READING,WRITING} on flush.
o be_openssl: clear all pending errors before SSL_*() calls
o be_sock: cancel in-progress dns requests (86dfd2c Azat Khuzhin)
o be_sock: unfreeze buffers on fd changing (255525d Azat Khuzhin)
o be_sock: bufferevent_socket_connect_hostname(): make it thread-safe
o be_openssl: don't call do_write() directly from outbuf_cb
o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_()
o be_openssl: don't add events during bev creation (like be_sock)
o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL
o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there
o be_openssl: don't call set_open_callbacks() if fd == -1 (e8a2da9 Azat Khuzhin)
o be_openssl: get rid off hackish "fd_is_set", to fix some corner cases
o be: we don't need to use getpeername() we we have conn_address
o Call underlying bev ctrl SET_FD on filtered bufferevents (c2aa7dc Mark Ellzey)
o be_pair: release shared lock with the latest of bufferevent_pair

Bugfixes (http)
o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL
o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin)
o http: set fd to -1 unconditioally, to avoid leaking of DNS requests
o http: avoid leaking of fd in evhttp_connection_free() (f0e1341 Azat Khuzhin)
o http: get fd from be layer during connection reset (4a53c54 Azat Khuzhin)
o http: fix EVHTTP_CON_READ_ON_WRITE_ERROR when it doesn't supported by OS
o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds
o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin)
o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin)
o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out)
o http: install timeout for read too during connect for ssl
o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases
o http: fix detecting EOF without write (7ed02ac Azat Khuzhin)
o evhttp: Fix failure to send all output data for POST/PUT requests
o Fix evhttp_uriencode() regression. (c6b1ec1 Mark Ellzey)
o removed unused vars (e94250c Mark Ellzey)
o pointer overflow checks for evhttp_uriencode (72afe4c Zonr Chang)

Bugfixes (evbuffers)
o buffer: fix overflow check in evbuffer_expand_singlechain()
o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer
o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required
o be_filter: actually disable output_filter during processing output
o evbuffer_add: Use last_with_datap if set, not last. (a8769ef Marcus Sundberg)
o EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD (8674e4f jer-gentoo)

Bugfixes (evconnlistener)
o listener: unlock lev on error in listener_read_cb() (2a71b33 Azat Khuzhin)
o Fix potential fd leak in listener_read_cb() (a695a72 Mark Ellzey)

o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris
o test: replace sleeping with syncing pair in main/fork (16d220c Azat Khuzhin)
o test/http: do not run tests that based on backlog filling (freebsd)
o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb"
o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32
o test/https_basic: increase timeout for complete write (fixes win32)
o test: fix building with --disable-thread-support under win32
o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin)
o test/buffer: evbuffer_remove_buffer() with empty chains (prepend)
o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer())
o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin)
o test/be_filter: creating test case for data stuck with active watermarks
o test/http: avoid using conditionals with omitted operands (fixes VS2015)
o test/http: don't mix declarations and code (aabf1c2 Azat Khuzhin)
o test/buffer: fix leak in test_evbuffer_prepend() (c08d90b Azat Khuzhin)
o test/buffer: avoid errors with --no-fork (reinitialize static vars)
o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer
o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin)
o test/bufferevent: check that output_filter disabled during processing output
o test/listener: regression for missing unlock in listener_read_cb()
o test/regress: add tests for evbuffer_add() breakage on empty last chain
o test/http: fix running some tests sequential (with --no-fork)
o test/http: localize evhttp server structure (cbc3209 Azat Khuzhin)
o test/dns: regression for empty hostname (d7348ba Azat Khuzhin)
o test/http: fix SERVER_TIMEOUT tests under win32 (d49a658 Azat Khuzhin)
o test/http: add a helper for creating timedout/failed request
o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin)
o test/http: cover NS timed out during request cancellations separatelly
o test/http: request cancellation with resolving/{conn,write}-timeouts in progress
o test/http: exit from the loop in the errorcb to wait cancellation
o regress_clean_dnsserver(): reset global port vars (351207f Azat Khuzhin)
o test/http: read_on_write_error: fix it for win32 (3b58169 Azat Khuzhin)
o test/http: separate coverage for EVHTTP_CON_READ_ON_WRITE_ERROR
o test/http: cover "Expect: 100-continue" client-server interaction
o test/http: *lingering tests shouldn't have "Expect: 100-continue"
o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin)
o test/http: avoid huge stack allocations to fix win32 builds
o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE
o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE
o test: http/*: update expected HTTP codes for body exceeds `max_body_size`
o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR
o test: increase buffer size for http/data_length_constraints to trigger EPIPE
o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc
o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin)
o test/regress: cover existing signal callbacks and fork() + event_reinit()
o test/regress: cover signals after fork() + event_reinit()
o test/regress: main/fork: rewrite assertions by just removing event in callback
o test/dns: check exit code of evdns_getaddrinfo() (0b9d432 Azat Khuzhin)
o test/dns: cover evdns_getaddrinfo() and evdns_base_free() with @fail_requests
o test/dns: cover @fail_requests for evdns_base_free() (d6c6fb4 Azat Khuzhin)
o test/dns: more graceful coverage of @fail_requests (123d372 Azat Khuzhin)
o test/ssl: cover busy-loop (i.e. {read,write}-blocked-on-{write,read} stuff)
o test/http: write_during_read for https (23c77b6 Azat Khuzhin)
o test/http: connection_fail for https (7ea26f7 Azat Khuzhin)
o test/http: stream_out for https (ac04968 Azat Khuzhin)
o test/http: chunk_out for https (a71ffb9 Azat Khuzhin)
o test/regress: fix ssl-less builds (need to make this prettier)
o test/http: allow dirty shutdown for ssl to fix https_incomplete
o test/http: https basic (59714b4 Azat Khuzhin)
o test/http: incomplete{,_timeout} for https (615490d Azat Khuzhin)
o test/http: add simplest test for http/https/https_dirty_shutdown
o test/http: https: retry coverage (7c2d24a Azat Khuzhin)
o test/http: https server support (plus some helpers) (a7088ad Azat Khuzhin)
o test/http: more sanity checks (a27c53c Azat Khuzhin)
o test/ssl: export getkey()/getcert()/get_ssl_ctx()/init_ssl() for https
o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers
o test/regress_be: socket_filter_inactive: check bufferevent after creation
o test/regress_be: cover finalizers from inactive to active queue
o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin)
o test/regress_http: fix compilation warnings (-Wmissing-field-initializers)
o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for)
o tests/regress_dns: cover that randomize-case works case-insensitive
o test: fix bufferevent/bufferevent_pair_release_lock in debug mode
o test: fix bufferevent/bufferevent_pair_release_lock for freebsd
o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own
o test/regress_be: introduce fake_listener_create() (37dc9e0 Azat Khuzhin)
o test/regress_http: cover evhttp_request_own() (6f6fa0d Azat Khuzhin)
o test/regress_http: cover write during read (3d15aeb Azat Khuzhin)
o test/regress_http: verify that closecb will be called without multiple write
o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE
o test/regress_ssl: check events fd/pending after timeout triggered
o test/regress_ssl: cover case when server didn't up (failed with timeout)
o test/regress_ssl: covert that we can't change fd with underlying
o test/regress_ssl: cover that events (read/write) at finish not pending
o test/regress_ssl: cover fd manipulations (b78a829 Azat Khuzhin)
o test/regress_ssl: convert open_ssl_bufevs() to mask (46bba73 Azat Khuzhin)
o test/regress_ssl: convert client/server to mask too (3455991 Azat Khuzhin)
o test/regress_ssl: cover "allow_dirty_shutdown" (0430327 Azat Khuzhin)
o test/regress_ssl: convert regress_bufferevent_openssl() to bitmask
o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin)
o test/regress_http: initialize "dns_base" to avoid reading trash
o test/http: cover retrying with saved conn_address by shutting down dns server
o be_pair/regress: cover use of shared lock (lock/unlock/free)
o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests

Sample code
o Fix memory leak in signal-test.c (666db91 basavesh.as)
o sample/hello-world: exAmple, not eXMple (2d3cd35 kirillDanshin)
o dns-example: allow to set ns from args (df19a97 Azat Khuzhin)
o dns-example: convert to getopt() (32f8592 Azat Khuzhin)
o http-connect: make it win32 compilable (1bf7595 Azat Khuzhin)
o sample/https-client: allow to change path to ca-certificates
o sample/https-client: check for ERR_remove_thread_state() existence
o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state()
o sample/https-client: add -timeout option (4637aa8 Azat Khuzhin)
o sample/https-client: don't try to free uninitialized SSL (f3d7ff5 Azat Khuzhin)
o sample/https-client: graceful exit with freeing memory (to make valgrind happy)
o https-client: correctly handle URLs with no path (like "https://host:port")
o sample/http-connect: don't use assert() to make it work with NDEBUG
o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin)
o sample: add HTTP CONNECT tunnelling example using libevent http layer
o Update dns-example. (620ff24 Mark Ellzey)

o Update README.md (b8ec70c Mark Ellzey)
o Update README.md (80faee9 Mark Ellzey)
o Update README.md (ad4a897 Mark Ellzey)
o Update README.md (a2b2e1e Mark Ellzey)
o Update README.md (0dfa5dc Mark Ellzey)

Code Improvements (evthread)
o evthread: add evthread_get_{lock,condition}_callbacks() helpers

Code Improvements (core)
o util: make @sa const for evutil_socket_connect_() (a8d32c2 Azat Khuzhin)

Code Improvements (http)
o http: assert's that evbuffer_drain() success on connection reset
o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin)
o http: introduce evhttp_is_request_connection_close() helper

Code Improvements (bufferevents)
o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op
o be_sock: sanity check in bufferevent_socket_set_conn_address()
o be: replace sockaddr_storage with sockaddr_in6 for conn_address
o be: replace conn_address by full struct instead of pointer
o bufferevent: move conn_address out from http into bufferevent
o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin)

Cleanups (core)
o Refactoring conditional directives that break parts of statements.
o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting
o tab (6e7a580 Greg Hazel)

Cleanups (evbuffers)
o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY

Cleanups (bufferevents)
o be_sock: evutil_getaddrinfo_async_() always return 0 (dbff101 Azat Khuzhin)
o be_sock: drop be_sock_add() macro (useless and debug unfriendly)
o be: introduce bufferevent_generic_adj_existing_timeouts_()
o be: add_event: use evutil_timerisset() (a96b73b Azat Khuzhin)
o be_openssl: introduce be_openssl_auto_fd() helper (2a8a711 Azat Khuzhin)
o be_openssl: introduce set_open_callbacks_auto() (510da71 Azat Khuzhin)

Cleanups (http)
o http: make fallback for EVHTTP_CON_READ_ON_WRITE_ERROR more cleaner
o http: coding style issue (365f181 Azat Khuzhin)

Cleanups (evdns)
o evnds: inline TEST_NAME macro to make debuggin easier (0c615f4 Azat Khuzhin)

Portability Fixes
o [#372] check for errno.h (3031617 Mark Ellzey)
o Fixed Unicode issue in error messages. (e8b7895 Mattes D)
o Assume that ke_udata is an integer type on CloudABI. (5602e45 Ed Schouten)
o Add missing include of <netinet/in.h>. (b2c68bc Ed Schouten)
o Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally.
o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten)
o Always define missing TAILQ functions from sys/queue.h
o Don't use BSD u_* types. (fd36647 Ed Schouten)
o Remove BSD-ism: TIMEVAL_TO_TIMESPEC(). (193c7de Ed Schouten)
o be: include all variations of headers for sockaddr_in6 struct
o be: fix sockaddr_in6 type definition for win32 (c42bc6b Azat Khuzhin)

Continious Integration:
o travis: split long lines, and make it cleaner (685a6a1 Azat Khuzhin)
o travis: fix autotools on osx by reinstalling libtool (088ea5e Azat Khuzhin)
o appveyor/autotools: link with openssl by passing LDFLAGS/CFLAGS
o appveyor: image already had openssl installed (4634b85 Azat Khuzhin)
o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only)
o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin)
o appveyor: drop shallow_clone, since we use tags for detecting version in cmake
o appveyor: support cmake & autotools using build matrix (like travis-ci has)
o travis-ci/osx: relink gcc/g++ instead of clang (481481d Azat Khuzhin)
o travis-ci: enable multi-os mode (osx, linux) (79917e4 Azat Khuzhin)
o travis-ci: increase matrix (--disable-foo) (59649f7 Azat Khuzhin)
o travis-ci: adjust alignment (c8be339 Azat Khuzhin)
o travis: add builds without debug mode into matrix (3e56da2 Azat Khuzhin)
o test: run regress with EVENT_DEBUG_MODE=1 and without (cf2cf2a Azat Khuzhin)
o Update travis config for status updates (37453ab Mark Ellzey)
o Use autotools for appveyor until cmake is fixed. (1cc2e29 Mark Ellzey)
o Fix the link for appveyor OpenSSL installer (WIN32) (107d565 Mark Ellzey)
o Forgot to install OpenSSL for appveyor (26164a5 Joakim Söderberg)
o Add support for appveyor.com windows CI (5f89c37 Joakim Söderberg)

Build Improvements/Fixes:
o evutil: mark ai_find_protocol() static (prototype-less) (5a157c8 Azat Khuzhin)
o cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections
o cmake/solaris: fix building (link with socket,nsl) (050bfc7 Azat Khuzhin)
o cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers
o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin)
o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON
o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON
o cmake: do not use stderr for notifications/version-info (38716c6 Azat Khuzhin)
o autoconf: fix --disable-thread-support build under win32 (bb09535 Azat Khuzhin)
o buffer: don't mix code and declarations (8892f4c Azat Khuzhin)
o Update gitignore file to ignore cscope gen'ed files (0aaa4fb Neeraj Badlani)
o For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid
o automake: define serial-tests only if automake have this option
o test/automake: don't use paralell test harness (since automake 1.12)
o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin)
o libevent_core and libevent_extra also deserve a pkgconfig file
o Ignore verify_tests.bat (win32 version) (0f2de10 Azat Khuzhin)
o cmake: require 3.1 only for win32 to make it work under ubunty precise
o cmake: require at least 3.1 for target_sources() (c46ead5 Azat Khuzhin)
o cmake: fix adding of compiler flags, and now it will (36588e1 Azat Khuzhin)
o Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too
o test/regress_ssl: Fix compile problems for win32 (73d0360 Trond Norbye)
o util: fix "%zu" format on TDM-gcc/MinGW-w64 (79b69d8 Azat Khuzhin)
o cmake: don't define EVENT__NEED_DLLIMPORT always (fixes VS2013 static build)
o Add missing return statement to del_wait_thread so libevent can build.
o cmake: fix building dns-example under win32 (missing getopt)
o visibility: align it to make it more readable (bb6b53d Azat Khuzhin)
o cmake: Fix detection of ssize_t/SSIZE_T (7707f6b Azat Khuzhin)
o Ignore more configure stuff (configure.lineno) (8d34302 Azat Khuzhin)
o Fixed issue with cmake version generation (d56efd9 Mark Ellzey)
o Cmake is now officially working. (7f9646d Mark Ellzey)
o More cmake updates, lot's of missing definitions (49a5381 Mark Ellzey)
o CMake syntax fixes fo .in files (6aad23d Mark Ellzey)
o Revert "The Windows socket type is defined as SOCKET." (a264da8 Mark Ellzey)
o CMAKE CMAKE CMAKE CLEANUPS (a9db46a Mark Ellzey)
o Lot's of cmake updates (8b228e2 Mark Ellzey)
o Provide a mechanism for building the library on Windows with different
  compiler flags. Add a batch file that builds it for the M[DT][d] options
  and performs a hunt and gather of the different output libraries.
o The Windows socket type is defined as SOCKET. (c9e6c3d billsegall)
o autotools: fix getservbyname() detection (959a4c2 Azat Khuzhin)
o Add missing <string.h> for openssl_hostname_validation module
o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard)
o test/regress_be: drop debug __asm__(int3) to fix arm build
o event_debug_created_threadable_ctx_: fix compilation without debug mode
o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn)
o http: eliminate warning about "socklen" in evhttp_connection_connect_()
o Updated gitignore (1dbb55d Mark Ellzey)
o Update bench_httpclient.c (cb96931 Seungmo Koo)
o *fix: bench_httpclient to support win32 (4e9325e zeliard)
o Commented out a WIN32 threading / timing test for now (e84e269 Mark Ellzey)
o Fix mixed declarations and code (forbidden by ISO C90)
o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard)
o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
o changed strtotimeval signature as per #211 (bdbc823 Xiao Bao Clark)
o Added cmake-generated files to ignore list. (6c12bfe Matyas Dolak)
o Ignore `make dist` generated files (8a2c6c7 Azat Khuzhin)

o Debug mode option to error on evthread init AFTER other event calls.

Changes in version 2.1.5-beta (5 January 2015)

Security Fixes (evbuffers)
o Avoid integer overflow bugs in evbuffer_add() and related functions.
  See CVE-2014-6272 advisory for more information.

New APIs (evconnlistener)
o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT

Bugfixes (core)
o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl)
o Fix race caused by event_active (3c7d6fc vjpai)

Bugfixes (evbuffer)
o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923)
o Consistently check for failure from evbuffer_pullup() (60f8f72)
o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a)

Bugfixes (windows, IOCP)
o be async: avoid double close() (f133b86 Azat Khuzhin)

Bugfixes (bufferevents)
o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
o make bufferevent_getwatermark api more robust (a21e510 ufo2243)
o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243)
o bufferevent_openssl: reset fd_is_set when setfd with -1 is called
o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg)

New APIs (evhttp)
o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
o Implement interface that provides the ability to have an outbound
  evhttp_connection free itself once all requests have completed

New APIs (core)
o Implement new/free for struct evutil_monotonic_timer and export
  monotonic time functions

Bugfixes (evdns)
o Load hosts file on Windows. (a0b247c Vilmos Nebehaj)
o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj)
o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749)
o evdns: avoid read-after-free in evdns_request_timeout_callback()
o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15)
o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
o evdns: fail ns after we are failing/retrasmitting request

Bugfixes (evhttp)
o http: reset connection before installing retry timer (bc79cc5 Azat Khuzhin)

o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin)
o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin)
o Update to a more recent tinytest_macros. (8da5a18)
o test/regress: add simplestsignal: to track reorder bugs separately
o test/evbuffer_peek: add regress in case we have first buffer greater
o More evbuffer_peek() test cases (154006a)
o use correct tt macro for pointer compare (08c88ea)
o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov)
o Fix a use-after-free in unit tests. CID 752027 (3739057)
o Fix a dead-code warning in unit tests. CID 1193548 (c119f24)
o Use evutil_weakrand() in unit tests. (a677b72, 364c110)
o Use a more precise calculation for max in time-ratelim.c (ca5b5c7)
o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
o Fix several memory leaks in the unit tests. (89c1a3b)
o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl)
o Fix annoying heisenbug in test-time.c (cb73704)

Sample code
o Make http-server.c output into good html5 (6d72bdc)
o Use FindClose for handle from FindFirstFile in http-server.c (6466e88)
o https-client: add -retries argument, for connection retries

Bugfixes (build)
o Add missing headerfile for cmake (15d90cc Trond Norbye)
o ignore one more test binary (b6593aa Michael Richardson)
o ignore config.cache/test-driver files (c83f333 Mike Frysinger)
o add a --disable-samples configure flag (0c492b3 Mike Frysinger)
o Add a few files created by "make verify" to .gitignore.
o updates in cmake build (27bd9fa Sergey Nikulov)
o Fix cmake error when the Module path has more than one entry.
o Fix CMake shared library build (e69d910 Nobuaki Sukegawa)
o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl)
o Fix mixed declarations and code (forbidden by ISO C90)

Bugfixes (miscellaneous)
o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin)
o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
o [Bugfix] fix grammer error (3a4d249 ufo2243)
o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389)
o Fix a c90 warning (76643dd)
o Fix a typo in a doxygen comment. Reported by 亦得. (be1aeff)
o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet)

Bugfixes (FreeBSD)
o Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the
  changelist is for an FD that has been closed.

Changes in version 2.1.4-alpha (21 Mar 2014)

Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make
Libevent more useful, including support for early close detection with
epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more
evhttp callbacks, and more. There are also numerous bugfixes, including
a number for finalize-related issues from 2.1.3-alpha; and an
alternative (non-primary!) cmake-based build mechanism.

New APIs (core)
o Added event_base_get_num_events() (0fa107d Mobai Zhang)
o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0)
o Add event_base_active_by_signal by analogy (4865943)
o Add access to max event count stats
o Implemented EV_CLOSED event for epoll backend

New APIs (evutil_secure_rng)
o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)

New APIs (bufferevents)
o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey)
o Pass and return const for bufferevent_get_token_bucket_cfg
o Add watermark introspection (4ce242b Ondřej Kuzník)
o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník)
o Add an option to trigger bufferevent event callbacks
o Clarifications in response to merge req. comments (bd41947 Ondřej
o Minor optimizations on bufferevent_trigger options (a3172a4)

New APIs (evhttp)
o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion)
o add a http default content type option (5a5acd9 Nicolas Martyanoff)
o http: implement new evhttp_connection_get_addr() api.
o Add a variant of evhttp_send_reply_chunk() with a callback on
  evhttp_write_buffer() (8d8decf Julien BLACHE)
o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey)
o Provide on request complete callback facility (b083ca0 Andrew Sweeney)
o evhttp_request_set_on_complete_cb to be more specific about what
  the function actually does and usage (da86dda Andrew Sweeney)
o Update unit test to make sure that the callback happens after the
  output data is written (b85f398 Andrew Sweeney)

Features (evdns)
o bug fix for issues #293 evdns_base_load_hosts doesn't remove
  outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta)

Features: (cmake build support)
o Initial CMake commit. (e415196 Joakim Soderberg)
o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg)
o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg)
o Generate a dummy evconfig-private.h so things build
  properly. (ce14def Joakim Soderberg)
o Link libm on unix platforms. (58fcd42 Joakim Soderberg)
o Added some GCC specific options. (19222e5 Joakim Soderberg)
o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg)
o Add copyright and licensing files for CMake modules.
o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg)
o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg)
o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg)
o Only test the event backends available on the system.
o Added a "make verify" target. (e053c4f Joakim Soderberg)
o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg)
o Get rid of deprecation warnings for OpenSSL on OSX 10.7+
o Fix kqueue support. (a831f2f Joakim Söderberg)
o Added a test for testing if kqueue works with pipes.
o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg)
o Minimum required python version is 2.4. (968e97b Joakim Soderberg)
o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg)
o Add a "make verify_coverage" target generation coverage
  info. (f2483f8 Joakim Soderberg)
o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg)
o Only look for ZLib when it is used (if tests are included).
o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into
  errors. (dd413bd Joakim Soderberg)
o Add CMake config and install targets. (f3446ed Joakim Soderberg)
o Fix typo (4b754df Joakim Soderberg)
o Some work on making it possible to simply do add_subdirectory() on
  the project. (49ab363 Joakim Soderberg)
o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg)
o Fix so that old nmake project still builds.
o Rename README to README.md and use markdown to format.
o Update README with CMake build instructions. (604b8cc Joakim Soderberg)
o Clean up the README some. (8d4cb35 JoakimSoderberg)
o Forgotten headers for old nmake project compatability.
o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg)
o Fix include bug. (2024467 Joakim Söderberg)
o Check if we're on OSX before disabling deprecation in le-proxy
o Fix broken autotools build. (ae1bd82 Joakim Söderberg)
o Disclaimerize cmake a little in the README (d03b5bf)
o Fix CMake compile when OpenSSL is disabled.
o CMake: Get rid of python not found warning when regress tests
  turned off. (d38d798 Joakim Söderberg)
o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg)
o Guard against EVENT_NOWIN32 being set during testing.
o Check for OSX when checking for clang. (e212c54 Joakim Soderberg)
o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg)
o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye)
o Rename event_extras to event_extra (a0dd5df Trond Norbye)
o Add option to build shared library (4545fa9 Trond Norbye)
o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye)
o Add cmake-related files to .gitignore (e061321 Trond Norbye)
o Export event_extra not event_extras. (2b41bcf Joakim Söderberg)

Bugfixes (core)
o If evsel->del() fails, don't leave the evmap in an inconsistent
  state (9b5a527 Maxime Henrion)
o Move event_debug_note_teardown_ before mm_free. (69b5c64)
o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3)
o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe)
o Tweaked callbacks to prevent race condition
o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE
  case (9805972)

Bugfixes (evhttp)
o Fix a double close() bug in evhttp when the underlying bufferevent uses
  BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion)
o Fix an unlikely but possible error case for http connections (f22049e)
o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)

Bugfixes on 2.0 (Windows)
o Use windows vsnprintf fixup logic on all windows environments (e826f19)
o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)

Bugfixes (evutil_secure_rng)
o When we seed from /proc/sys/kernel/random/uuid, count it as success
o We should return after arc4random_buf() (1ea1f26 Makoto Kato)
o Avoid other RNG initialization FS reads when urandom file is
  specified (9695e9c)
o Really remove RNG seeds from the stack (f5ced88)
o Fix another arc4random_buf-related warning (e64a2b0)

Bugfixes (bufferevents)
o Initialize async bufferevent timeout CBs unconditionally (af9b2a7)

Bugfixes (evdns)
o Checking request nameserver for NULL, before using it. (5c710c0
  Belobrov Andrey)
o Fix SEGFAULT after evdns_base_resume if no nameservers
  installed. (14971a8 Azat Khuzhin)
o Actually use the log facility for reporting evdns problems. (e1766a1)
o Fix SEGFAULT after evdns_base_resume if no nameservers
  installed. (f8d7df8 Azat Khuzhin)
o fix for ServFail from RIPE Atlas release (62f596b Antony Antony)

Bugfixes (compilation)
o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7)
o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e)
o Don't use return since return type is void and build error occurs
  using clang (838161d Makoto Kato)
o Use void casts to suppress some "unchecked return value" warns (7080d55)
o rpcgen: Generate regress.gen.[c,h] in build rather than src dir
o Fix a compiler warning when checking for arc4random_buf linker
  breakage. (5cb3865)
o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES

o Fix a c90 warning (c207682)
o Fix consts in WIN32-Code/getopt*.[ch] (57abb35)

Bugfixes (locks, synchronization)
o Missed lock acquire/release in event_base_cancel_single_callback_()
o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion)

Bugfixes (leaks)
o Avoid leaking segment mappings when offset is not a page multiple (d409514)

o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin)
o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin)
o Add checks for evhttp_connection_get_server() in unit
  tests. (fbc323b Maxime Henrion)
o Fix a (failure-only) null dereference in the unit tests (1104d0b)
o Fix a logic error in test_evbuffer_freeze (7765884)
o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506)
o Fix some crash-on-fail cases in DNS regression tests (87cd6f0)
o DNS tests: add a missing check (f314900)
o Finalize tests: add a missing check (82b6956)
o test_evutil_rtrim: add another missing check. (e193c95)
o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
o regress_http: add tests for evhttp_connection_get_addr()
o Update to the latest version of tinytest (7a80476)
o Heap-allocate zlib data structure in regress_zlib tests (4947c18)

Performance tweaks (core)
o Avoid redundant syscall to make a nonblocking socket nonblocking
o Avoid redundant syscall if making a socket cloexec twice (1f29b18)
o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)

o Document that arc4random is not a great cryptographic PRNG. (6e49696)
o Small doxygen tweaks (6e67b51)
o Try another doxygen tweak (ccf432b)
o Clarify event_base_loop exit conditions (031a803)
o Fix a typo (be7bf2c Ondřej Kuzník)
o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník)
o Typo fixes from Linus Nordberg (cec62cb, 8cd695b)
o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee)

Code Improvements (coverity)
o Fix a pile of coverity warnings in the unit tests (867f401)
o Fix coverity warnings in benchmark tools. (ff7f739)
o Whoops; fix compilation in bench.c (544cf88)
o Remove spurious checks in evrpc.c error cases (coverity) (991b362)
o Fix a couple of compilation warnings in regress_http.c (860767e)
o Fix even more coverity warnings. (d240328)
o Stop checking for inet_aton; we don't use it. (f665d5c)
o Add an include to evrpc-internal to fix openbsd compilation warning

o Remove an unreachable return statement in minheap-internal.h (e639a9e)
o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e)
o Fix needless bufferevent includes in evdns.c (254c04e)
o Fix a couple of "#ifdef WIN32" instances (88ecda3)
o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd)

Sample code
o le-proxy: Fail more gracefully if opening listener fails (44b2491)
o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin)
o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky)
o https-client: code cleanup (29af65e Alexey Ozeritsky)
o https-client: Small tweaks to https-client.c (90786eb)
o https-client: Set hostname for SNI extension (by f69m) (d1976f8)
o https-client: add a cast to https-client.c (462e6b6)

Changes in version 2.1.3-alpha (1 May 2013)

Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans
up the code in a couple of places. It has a new callback in evhttp for
reporting errors during a request, a new feature for allowing evdns to
not keep the event_base looping when there are no requests inflight, and
example code for writing an https client.

Libevent 2.1.3-alpha also has an important new (experimental) event
finalization feature to allow safe event teardown in multithreaded
programs. This ought to fix the longstanding bug with deadlocks in
multithreaded use of SSL-based bufferevents that some people have been
experiencing since Libevent 2.0.

Core (event finalization)
o Implement event_finalize() and related functions to avoid certain
  deadlocks (8eedeab)
o Use finalization feature so bufferevents can avoid deadlocks (02fbf68)
o Always run pending finalizers when event_base_free() is called (e9ebef8)
o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a)
o More documentation for finalization feature (a800b91)
o Make the event_finalize* functions return an error code (5d11f4f)
o Mark the finalize stuff as experiemental in case it needs to
  change (23e2e29)

o evdns: New flag to make evdns not prevent the event loop from
  exiting (6b7fa62 Azat Khuzhin)

Bugfixes (Core)
o Make event_remove_timer behave correctly with persistent timers (5623e80)
o Unit test for event_remove_timer with EV_PERSIST. (96150dd)
o Double-check next timeout when adding events (9443868 Nate Rosenblum)
o event_base_update_cache_time should be a no-op if the loop isn't
  running (5e6fa2a)

Bugfixes (evhttp, crash fix, from 2.0)
o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel)

Bugfixes (compilation and portability, from 2.0)
o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake
  1.13 compat (817ea36)
o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)

Bugfixes (resource leaks/lock errors on error, from 2.0)
o Avoid leaking fds on evconnlistener with no callback set (69db261)
o Avoid double-close on getsockname error in evutil_ersatz_socketpair
o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)

Documentation Fixes (from 2.0)
o Fix a mistake in evbuffer_remove() arguments in example http server code
o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)

Documentation Fixes
o minor documentation typos (809586a Patrick Pelletier)
o Fix cut-and-paste err in whatsnew-2.1 (49905ac)
o Fix comment to refer to sample/include.am correctly
o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke)
o fix some hinky indentation in evhttp_make_request (80e220e Patrick
o "buffer" spelling (a452811 Patrick Pelletier)
o Specify return behavior in header for evbuffer_pullup() in corner case
  (cf8d1cd Dan Petro)
o Clarify an important point about event_base_foreach_event() (920a5e6)

Compilation Fixes/Tool Support
o avoid valgrind false positive by zeroing epoll_event
o Fix harmless clang enum warning (b452a43 Sebastian Hahn)
o remove all exes on "make clean", not just regress.exe
o Make --disable-libevent-regress work again (787fd74)
o Do not build strlcpy.c when it will have no code. (4914620)

Portability Fixes
o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff)
o Preliminary changes for Minix3. (0dda56a Nicholas Heath)
o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13
  compat (bf278b)
o Avoid using $(top_srcdir) in TESTS. (2863c83)
o build test/test-script.sh on systems with a less-featureful $< (f935e21)
o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d)

Evhttp changes:
o Fix ipv6 support for http. When URL contain domain, not IP
  address. (71e709c Azat Khuzhin)
o uri decode: fix for warning "use of uninitialised value".
o uri decode: changed the test for the existence of the next character
o Move prototype of evhttp_decode_uri_internal() to http-internal.h
o Test: decoding just part of string with evhttp_decode_uri_internal()
o Add new error_cb for actual reporting of HTTP request errors.
o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin)

o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin)
o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug
  mode (2fad0f3)
o Add a test with an active_later event at event_base_free time. (1c3147f)
o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f)
o Add some verbose notes to bufferevent unit tests (9d893c9)
o New test for active_later->active transition on event_active (a153874)
o New tests for event_base_foreach_event() (0b096ef)
o Unit tests for event_base_gettimeofday_cached() and
  event_base_update_cache_time() (30ea291)
o A test for event_get_assignment() (f09629e)
o More unit tests for initializing common timeouts. (d596739)
o Fix a bug in the new main/event_foreach test (702c9aa)

o use FormatMessage for winsock errors
o a program to print out the error strings for winsock errors
o Fix a warning introduced in 0c6ec5d8 (eeb700c)
o Fix another warning introduced in 0c6ec5d8 (ed26561)

Examples (http)
o Add sample/https-client.c, an example of stacking evhttp as a client on
  top of bufferevent_ssl. (be46c99 Catalin Patulea)
o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier)
o https-client was putting newlines at 256-byte boundaries
o better handling of OpenSSL errors (5754d96 Patrick Pelletier)
o use Debian's default root certificate location (aacd674 Patrick Pelletier)
o use iSECPartners code to validate hostname in certificate
o avoid sign mismatch warning in openssl_hostname_validation.c
o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier)
o Another tweak to https-client.c (95acdaa)
o Remove http_struct.h usage in sample/https-client.c (8a90a85)

Changes in version 2.1.2-alpha (18 Nov 2012)

Libevent 2.1.2-alpha includes more portable for monotonic timers,
refactors much of Libevent's internal and external infrastructure,
closes some longstanding gaps in the interface, makde other
improvements.  Ths log below tries to organize features by rough area of
effect.  It omits a few commits which were pure bugfixes on other commits
listed below.  For more detail, see the git changelogs.  For more
insight, see the "whatsnew-2.1.txt" document included in the Libevent
2.1.2-alpha distribution.

Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable
through 2.0.21-stable inclusive.

Performance (core):
o Replace pipe-based notification with EVFILT_USER where possible. This
  should make multithreaded programs on OSX and *BSD alert the main thread a
  little faster. (53a07fe)
o Make th_base_lock nonrecursive. (9cd5acb)

New/Changed API Functions:
o New event_get_priority() function to return an event's priority (f90e255)
o Add a bufferevent_get_priority() function (bd39554)
o Add an event_base_loopcontinue() to tell Libevent to rescan for more
  events right away (7d6aa5e)
o Add a new callback to get called on evbuffer_file_segment free
o Expose event_base_foreach_event() as a public API.
o Add an event_remove_timer() to remove timer on an event without
  deleting it (e3b2e08)
o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible
  semantics (9dee36b)
o Rename event_enable_lock_debuging() to ..._debugging(). (The old name
  should still work.) (07e132e)
o Add missing implementation for event_enable_debug_logging (3b3e21d)


Libevent 2.1.2 includes internal support for monotonic timers on
(nearly) all supported platforms, including Windows, and OSX.  Libevent
applications should now be more resilient to jumps forwards or backwards
in the system clock.  Also, on Linux systems with epoll, we now
optionally support microsecond-level timeouts (whereas epoll only
supports millisecond-precision timeouts).

o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9)
o Do not track use_monotonic field when is no monotonic clock (cb653a0)
o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7)
o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a)
o Refactor monotonic timer handling into a new type and set of
  functions; add a gettimeofday-based ratcheting implementation (f5e4eb0)
o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow
  timer (a2598ec)
o Implement fast/precise monotonic clocks on Windows (2c47045)
o Simple unit tests for monotonic timers (630f077)
o Improve the monotonic-time unit test: make it check the step size (7428c78)
o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond
  precision (26c7582)
o Split out time-related evutil functions into a new evutil_time.c (c419485)
o Split out time-related prototypes into time-internal.h (71bca50)
o Add evutil_time.obj to Makefile.nmake (0ba0683)
o Avoid giving a spurious warning when timerfd support is unavailable
o Make test_evutil_monotonic a little more tolerant (def3b83)
o Avoid unused-var warning on systems with clock_gettime but without

If a callback added by event_base_once() is never invoked, Libevent no
longer leaks internal memory.

o Free dangling event_once objects on event_base_free() (c17dd59)
o Add a unit test in which an event is created with event_base_once()
  but never fires (4343edf)


Libevent now disables by default its unit tests that would touch the
network, or that tend to fail on heavily-loaded systems.  To re-enable
them, invoke the ./test/regress program with the @all alias.

o Simplify test.sh code significantly. (9b856fd Ross Lagerwall)
o Make all tests that hit the network disabled by default (f2cea87)
o Avoid a resource leak on error in http client benchmark (ea92fba)
o Update to latest tinytest (911b4f0349377) (ef7c4f7)
o Avoid (unlikely) overflow in bench_httpclient.c (5671033)
o Shave 700 msec off the persistent_timeout_jump test (21205b8)
o Check return value of write() in regress.c (c8009d2)
o Make load-dependent monotonic timer tests off-by-default (2b6fe8b)
o Add deferred_cb_skew to list of timing-dependent tests (34c8f31)
o Avoid test -e; older shs don't have one. (f1bd938)
o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
o Fix a couple of compile warnings in the unit tests (5a9a014)

o Change evutil_weakrand_() to avoid platform random()

INFRASTRUCTURE (Active-later events):
As a simplification and optimization to Libevent's "deferred callback"
logic (introduced in 2.0 to avoid callback recursion), Libevent now
treats all of its deferrable callback types using the same logic it uses
for active events.  Now deferred events no longer cause priority
inversion, no longer require special code to cancel them, and so on.

o Refactor the callback part of an event into its own event_callback
  type (cba59e5)
o Add "active later" event_callbacks to supersede deferred (745a63d)
o event_base_assert_ok: check value of event_active_count for
  correctness (fec8bae)
o Replace deferred_cbs with event_callback-based implementation. (ae2b84b)
o Replace more deferred_cb names with event_callback (a4079aa)
o Give event_base_process_active a single exit path (581b5be)
o Restore our priority-inversion-prevention code with deferreds (c0e425a)
o Refactor event_persist_closure: raise and extract some common logic
o Remove the unused bits from EVLIST_ALL (9889a3d)

More information about the Cygwin mailing list