diff options
author | kikht <kikht@yandex-team.ru> | 2022-02-10 16:45:14 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:14 +0300 |
commit | 194cae0e8855b11be2005e1eff12c660c3ee9774 (patch) | |
tree | ed29c437b616690880c017855ebe0be34fdf81a2 /contrib/libs/libevent/ChangeLog | |
parent | 49116032d905455a7b1c994e4a696afc885c1e71 (diff) | |
download | ydb-194cae0e8855b11be2005e1eff12c660c3ee9774.tar.gz |
Restoring authorship annotation for <kikht@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/libevent/ChangeLog')
-rw-r--r-- | contrib/libs/libevent/ChangeLog | 3316 |
1 files changed, 1658 insertions, 1658 deletions
diff --git a/contrib/libs/libevent/ChangeLog b/contrib/libs/libevent/ChangeLog index 17874b14b9..180832cabe 100644 --- a/contrib/libs/libevent/ChangeLog +++ b/contrib/libs/libevent/ChangeLog @@ -79,1312 +79,1312 @@ Changes in version 2.1.12-stable (05 Jul 2020) o Change the minimum version of automake to 1.13 and autoconf to 2.67 (fdb8fb66 ygj6) 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." (18104973 Azat Khuzhin) - - functionality: - o evdns: add new options -- so-rcvbuf/so-sndbuf (546a366c Azat Khuzhin) - - build: - o Change autoconf version to 2.62 and automake version to 1.11.2 (2a333008 yuangongji) - 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 (305251b9 yuangongji) - 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 (5349a07e Azat Khuzhin) - 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) (2d65071c yuangongji) - o m4/libevent_openssl.m4: fix detection of openssl (d4056e59 Fabrice Fontaine) - o Fix detection of the __has_attribute() for apple clang [ci skip] (7fd7c5ef Azat Khuzhin) - - lib: - o buffer: fix possible NULL dereference in evbuffer_setcb() on ENOMEM (598f247d Azat Khuzhin) - o Warn if forked from the event loop during event_reinit() (b75922ae Azat Khuzhin) - o evutil: set the have_checked_interfaces in evutil_check_interfaces() - (ef498aa2, a09265ac jeremyerb) - - samples: - 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 - - dist: - o Add getopt into dist archive (7042ff24 Azat Khuzhin) - - functionality: - o evdns: add DNS_OPTION_NAMESERVERS_NO_DEFAULT/EVDNS_BASE_NAMESERVERS_NO_DEFAULT - (58e81106 Azat Khuzhin) - o Add support for EV_TIMEOUT to event_base_active_by_fd (3f893f0a John Ohl) - - fixes: - 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. (43a55a23 Tobias Stoeckmann) - o evdns: fix lock/unlock mismatch in evdns_close_server_port() (54103883 zhuizhuhaomeng) - 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_() (bb0f8fe7 Azat Khuzhin) - o buffer: make evbuffer_prepend() of zero-length array no-op (61fa7b7d Azat Khuzhin) - 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 (91084140 Nathan French) - - build: - 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 (22380996 Azat Khuzhin) - - tests: - 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) - - core: - 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 (d9d1c09e) - o Fix base unlocking in event_del() if event_base_set() runned in another thread (4f0f40e3) - o If precise_time is false, we should not set EVENT_BASE_FLAG_PRECISE_TIMER (27dee54d) - 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) - - http: - 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 (d30e7bba) - 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. (826f1134) - o Fix crashing http server when callback do not reply in place (5b40744d, b2581380) - o fix handling of close_notify (ssl) in http with openssl bufferevents (7e91622b) - - evrpc: - 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) - - bufferevent: - 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 (1dde74ef) - o don't fail be_null_filter if bytes are copied (b92b0792) - o Call underlying bev ctrl GET_FD on filtered bufferevents (ebfac517) - - bufferevent_openssl/openssl: - 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) - - samples: - o Merge branch 'sample-http-server' (b6309bcc) - o sample/https-client: use host SSL certificate store by default (5c0132f3) - - listener: - o ipv6only socket bind support (ba148796) - o Merge branch 'listener-immediate-close' (df2ed13f) - o Merge branch 'evconnlistener-do-not-close-client-fd' (42e851bb) - - evdns: - 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 (3bd2ce43) - - utils: - 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) - - buffer: - 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) - - cmake: - o fix checking of devpoll backend (like in autotools, by devpoll.h existence) (7f161902) - 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) - - autotools: - o include win32 specific headers for socklen_t detection on win32/mingw (d7579fb9) - 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) - - build: - 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) - - CI: - 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() (3e75194c Azat Khuzhin) - 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*) (59e217df Azat Khuzhin) - Vagrant env fixes: - o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin) - o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin) - o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin) - o vagrant: add centos box (ca591c5b Azat Khuzhin) - Tests: - o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin) - o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin) - o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin) - o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin) - Bugfixes: - 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 (3453c08 Azat Khuzhin) - o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin) - o cmake: cleanup (dc624ad Zonr Chang) - o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin) - 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 (675974c Tim Hentenaar) - - Testing: - 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) (1ed6718 Mark Ellzey) - - New APIs (internal) - o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin) - - New APIs/Improvements (http) - o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin) - o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin) - o http: read server response even after server closed the connection (680742e Azat Khuzhin) - o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin) - o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin) - o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin) - - 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() (88640aa Nicholas Marriott) - 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 (e5c87d1 Azat Khuzhin) - o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin) - o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin) - - Bugfixes (evthread) - o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin) - o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin) - - Bugfixes (evdns) - o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin) - o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin) - o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin) - o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin) - - Bugfixes (bufferevents) - o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin) - 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. (2851889 David Paschich) - o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin) - 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 (809bb39 Azat Khuzhin) - o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin) - o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin) - o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin) - o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan) - o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin) - 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 (40b0379 Azat Khuzhin) - o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin) - 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 (92a359e Azat Khuzhin) - - Bugfixes (http) - o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey) - o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin) - o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin) - 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 (2ff164a Azat Khuzhin) - o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin) - o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin) - o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin) - o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin) - o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin) - o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin) - o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin) - o http: fix detecting EOF without write (7ed02ac Azat Khuzhin) - o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl) - 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() (a3f4ccd Azat Khuzhin) - o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin) - o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin) - o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault) - 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) - - Testing - o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin) - 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) (500b6b7 Azat Khuzhin) - o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin) - o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin) - o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin) - o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin) - o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin) - o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin) - o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin) - o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin) - o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset) - o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin) - o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (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) (e7d1e39 Azat Khuzhin) - o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin) - o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin) - o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin) - o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin) - o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg) - o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin) - 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 (376f107 Azat Khuzhin) - o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin) - o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin) - o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin) - o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin) - 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 (5c2b4c1 Azat Khuzhin) - o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin) - o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin) - o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin) - o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin) - o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin) - o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin) - o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin) - o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin) - o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin) - o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc (f062bbe Azat Khuzhin) - o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin) - o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin) - o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin) - o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin) - 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 (4ad3483 Azat Khuzhin) - 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) (da0ea7a Azat Khuzhin) - 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) (3160716 Azat Khuzhin) - o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin) - 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 (93b19dc Azat Khuzhin) - 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 (0c4c387 Azat Khuzhin) - o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin) - o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin) - o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin) - o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin) - o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin) - o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin) - o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin) - o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin) - o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin) - o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin) - 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 (4be6c70 Azat Khuzhin) - o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin) - o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin) - o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin) - o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin) - o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin) - 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 (342e116 Azat Khuzhin) - o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin) - o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin) - o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin) - o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin) - o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin) - - 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 (fdf713a Azat Khuzhin) - o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin) - o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin) - 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) (24a1f25 Azat Khuzhin) - o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin) - o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin) - o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin) - o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin) - o Update dns-example. (620ff24 Mark Ellzey) - - Documentation - 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 (c0b34f6 Azat Khuzhin) - - 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 (2185e63 Azat Khuzhin) - o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin) - o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin) - - Code Improvements (bufferevents) - o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin) - o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin) - o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin) - o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin) - o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin) - o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin) - - Cleanups (core) - o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths) - o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin) - o tab (6e7a580 Greg Hazel) - - Cleanups (evbuffers) - o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin) - - 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) (fad5fe2 Azat Khuzhin) - o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin) - 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 (d405492 Azat Khuzhin) - 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. (c1404b5 Ed Schouten) - o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten) - o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley) - 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 (c212291 Azat Khuzhin) - 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 (6fcfa25 Azat Khuzhin) - o appveyor: image already had openssl installed (4634b85 Azat Khuzhin) - o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin) - o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin) - o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin) - o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin) - 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 (dc95823 Azat Khuzhin) - 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 (c4dfb93 Azat Khuzhin) - o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin) - o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin) - o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin) - o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin) - 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 (b5ca365 Rainer Keller) - o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin) - o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin) - o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin) - o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen) - 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 (87f7238 Azat Khuzhin) - 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 (f29f59e Azat Khuzhin) - 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) (49bd790 Azat Khuzhin) - o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson) - o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin) - 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. (ded8086 billsegall) - 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 (3316a21 Azat Khuzhin) - o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard) - o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin) - o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin) - o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn) - o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin) - 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) (0c7f217 Thomas Bernard) - o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard) - o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg) - 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) - - Debugging - o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey) - - - -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. (d49bc0e88b81a5812116074dc007f1db0ca1eecd) - - New APIs (evconnlistener) - o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak) - - 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 (2c82aa0 John Ohl) - 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 (3da84c2 Azat Khuzhin) - 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 (12c29b0 Azat Khuzhin) - o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl) - - New APIs (core) - o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard) - - 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() (61262a0 Azat Khuzhin) - o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15) - o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin) - o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin) - o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin) - - Bugfixes (evhttp) - o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin) - - - Testing - o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin) - 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 (42aefeb Azat Khuzhin) - 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 (b897bef Azat Khuzhin) - o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin) - 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() (fb57b8b) - 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 (d9da844 Azat Khuzhin) - - 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. (1a8295a Pierre Phaneuf) - o updates in cmake build (27bd9fa Sergey Nikulov) - o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang) - 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) (8afbdbc Thomas Bernard) - - Bugfixes (miscellaneous) - o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin) - o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin) - 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. (6fd7394 Adrian Chadd) - - - -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 (5173bef, efbd3dc, 26230a2 - Andrew Sweeney) - o Implemented EV_CLOSED event for epoll backend - (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52 - Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e) - - 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 (1c77fbb - Mark Ellzey) - 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 (a7384c7 - Ondřej Kuzník) - o Clarifications in response to merge req. comments (bd41947 Ondřej - Kuzník) - 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. (0c7f040 Azat - Khuzhin) - 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. (c259d53 - Joakim Soderberg) - 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. (7ea4159 - Joakim Soderberg) - 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+ (69c3516 - Joakim Söderberg) - o Fix kqueue support. (a831f2f Joakim Söderberg) - o Added a test for testing if kqueue works with pipes. (2799b35 - Joakim Söderberg) - 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). (f780593 Joakim Soderberg) - 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. (24d6466 Joakim - Soderberg) - o Rename README to README.md and use markdown to format. (d2bc39a - Joakim Soderberg) - 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. (8697b99 - Joakim Soderberg) - 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 - (8b40a5b Joakim Söderberg) - 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. (e423d42 Joakim - Söderberg) - 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. (f1715b4 - Joakim Soderberg) - 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 - (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed - John Ohl) - 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) - (b8f5980 Frank Denis) - - Bugfixes (evutil_secure_rng) - o When we seed from /proc/sys/kernel/random/uuid, count it as success - (e35b540) - 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 - (243386c Ross Lagerwall) - o Fix a compiler warning when checking for arc4random_buf linker - breakage. (5cb3865) - o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES - (239d834) - - 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_() - (d3d999a Azat Khuzhin) - 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) - - Testing - 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 - (611e28b Azat Khuzhin) - o regress_http: add tests for evhttp_connection_get_addr() (4dd500c - Azat Khuzhin) - 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 - (42c03da Maxime Henrion) - o Avoid redundant syscall if making a socket cloexec twice (1f29b18) - o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) - - Documentation - 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 - (5e161c6) - - Cleanups - 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) - - Evdns - 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) - (74d4c44 Kevin Bowling) - 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 - (0a822a6) - 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 - (c322c20 Gyepi Sam) - 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 (9e8cdf3 Sebastian - Hahn) - o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke) - o fix some hinky indentation in evhttp_make_request (80e220e Patrick - Pelletier) - 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 (1258614 Patrick - Pelletier) - o Fix harmless clang enum warning (b452a43 Sebastian Hahn) - o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick - Pelletier) - 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" (64b6ece Azat - Khuzhin) - o uri decode: changed the test for the existence of the next character - (e1903e3 Azat Khuzhin) - o Move prototype of evhttp_decode_uri_internal() to http-internal.h - (de8101a Azat Khuzhin) - o Test: decoding just part of string with evhttp_decode_uri_internal() - (1367653 Azat Khuzhin) - o Add new error_cb for actual reporting of HTTP request errors. (7b07719 - Azat Khuzhin) - o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217 - Azat Khuzhin) - o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin) - - Testing - 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) - - Windows: - o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af - Patrick Pelletier) - o a program to print out the error strings for winsock errors (7296512 - Patrick Pelletier) - 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 (42d7441 Patrick - Pelletier) - 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 (64d9f16 - Patrick Pelletier) - o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5 - Patrick Pelletier) - 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 - (e9f8feb yangacer, 64051b9) - o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman - Puls, 232055e, ffe1643) - 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) - - PORTABLE MONOTONIC TIMERS: - - 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 - (ddd69d3) - 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 - (1aaf9f0 Dave Hart) - o Make test_evutil_monotonic a little more tolerant (def3b83) - o Avoid unused-var warning on systems with clock_gettime but without - CLOCK_MONOTONIC_COARSE (9be5468) - -EVENT_BASE_ONCE LEAKS: - 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) - -TESTING SUPPORT, FIXES AND IMPROVEMENTS: - - 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) - -MISC: - o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas - Marriott, 3aa4415) - -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 - (bec22b4) - o Remove the unused bits from EVLIST_ALL (9889a3d) -||||||| merged common ancestors -Changes in version 2.0.22-stable (?? Dec 2013) - - (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.) - +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." (18104973 Azat Khuzhin) + + functionality: + o evdns: add new options -- so-rcvbuf/so-sndbuf (546a366c Azat Khuzhin) + + build: + o Change autoconf version to 2.62 and automake version to 1.11.2 (2a333008 yuangongji) + 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 (305251b9 yuangongji) + 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 (5349a07e Azat Khuzhin) + 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) (2d65071c yuangongji) + o m4/libevent_openssl.m4: fix detection of openssl (d4056e59 Fabrice Fontaine) + o Fix detection of the __has_attribute() for apple clang [ci skip] (7fd7c5ef Azat Khuzhin) + + lib: + o buffer: fix possible NULL dereference in evbuffer_setcb() on ENOMEM (598f247d Azat Khuzhin) + o Warn if forked from the event loop during event_reinit() (b75922ae Azat Khuzhin) + o evutil: set the have_checked_interfaces in evutil_check_interfaces() + (ef498aa2, a09265ac jeremyerb) + + samples: + 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 + + dist: + o Add getopt into dist archive (7042ff24 Azat Khuzhin) + + functionality: + o evdns: add DNS_OPTION_NAMESERVERS_NO_DEFAULT/EVDNS_BASE_NAMESERVERS_NO_DEFAULT + (58e81106 Azat Khuzhin) + o Add support for EV_TIMEOUT to event_base_active_by_fd (3f893f0a John Ohl) + + fixes: + 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. (43a55a23 Tobias Stoeckmann) + o evdns: fix lock/unlock mismatch in evdns_close_server_port() (54103883 zhuizhuhaomeng) + 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_() (bb0f8fe7 Azat Khuzhin) + o buffer: make evbuffer_prepend() of zero-length array no-op (61fa7b7d Azat Khuzhin) + 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 (91084140 Nathan French) + + build: + 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 (22380996 Azat Khuzhin) + + tests: + 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) + + core: + 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 (d9d1c09e) + o Fix base unlocking in event_del() if event_base_set() runned in another thread (4f0f40e3) + o If precise_time is false, we should not set EVENT_BASE_FLAG_PRECISE_TIMER (27dee54d) + 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) + + http: + 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 (d30e7bba) + 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. (826f1134) + o Fix crashing http server when callback do not reply in place (5b40744d, b2581380) + o fix handling of close_notify (ssl) in http with openssl bufferevents (7e91622b) + + evrpc: + 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) + + bufferevent: + 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 (1dde74ef) + o don't fail be_null_filter if bytes are copied (b92b0792) + o Call underlying bev ctrl GET_FD on filtered bufferevents (ebfac517) + + bufferevent_openssl/openssl: + 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) + + samples: + o Merge branch 'sample-http-server' (b6309bcc) + o sample/https-client: use host SSL certificate store by default (5c0132f3) + + listener: + o ipv6only socket bind support (ba148796) + o Merge branch 'listener-immediate-close' (df2ed13f) + o Merge branch 'evconnlistener-do-not-close-client-fd' (42e851bb) + + evdns: + 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 (3bd2ce43) + + utils: + 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) + + buffer: + 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) + + cmake: + o fix checking of devpoll backend (like in autotools, by devpoll.h existence) (7f161902) + 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) + + autotools: + o include win32 specific headers for socklen_t detection on win32/mingw (d7579fb9) + 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) + + build: + 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) + + CI: + 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() (3e75194c Azat Khuzhin) + 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*) (59e217df Azat Khuzhin) + Vagrant env fixes: + o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin) + o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin) + o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin) + o vagrant: add centos box (ca591c5b Azat Khuzhin) + Tests: + o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin) + o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin) + o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin) + o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin) + Bugfixes: + 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 (3453c08 Azat Khuzhin) + o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin) + o cmake: cleanup (dc624ad Zonr Chang) + o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin) + 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 (675974c Tim Hentenaar) + + Testing: + 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) (1ed6718 Mark Ellzey) + + New APIs (internal) + o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin) + + New APIs/Improvements (http) + o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin) + o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin) + o http: read server response even after server closed the connection (680742e Azat Khuzhin) + o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin) + o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin) + o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin) + + 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() (88640aa Nicholas Marriott) + 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 (e5c87d1 Azat Khuzhin) + o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin) + o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin) + + Bugfixes (evthread) + o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin) + o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin) + + Bugfixes (evdns) + o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin) + o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin) + o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin) + o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin) + + Bugfixes (bufferevents) + o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin) + 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. (2851889 David Paschich) + o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin) + 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 (809bb39 Azat Khuzhin) + o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin) + o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin) + o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin) + o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan) + o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin) + 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 (40b0379 Azat Khuzhin) + o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin) + 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 (92a359e Azat Khuzhin) + + Bugfixes (http) + o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey) + o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin) + o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin) + 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 (2ff164a Azat Khuzhin) + o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin) + o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin) + o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin) + o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin) + o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin) + o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin) + o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin) + o http: fix detecting EOF without write (7ed02ac Azat Khuzhin) + o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl) + 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() (a3f4ccd Azat Khuzhin) + o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin) + o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin) + o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault) + 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) + + Testing + o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin) + 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) (500b6b7 Azat Khuzhin) + o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin) + o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin) + o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin) + o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin) + o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin) + o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin) + o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin) + o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin) + o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset) + o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin) + o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (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) (e7d1e39 Azat Khuzhin) + o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin) + o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin) + o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin) + o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin) + o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg) + o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin) + 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 (376f107 Azat Khuzhin) + o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin) + o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin) + o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin) + o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin) + 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 (5c2b4c1 Azat Khuzhin) + o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin) + o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin) + o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin) + o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin) + o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin) + o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin) + o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin) + o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin) + o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin) + o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc (f062bbe Azat Khuzhin) + o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin) + o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin) + o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin) + o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin) + 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 (4ad3483 Azat Khuzhin) + 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) (da0ea7a Azat Khuzhin) + 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) (3160716 Azat Khuzhin) + o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin) + 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 (93b19dc Azat Khuzhin) + 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 (0c4c387 Azat Khuzhin) + o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin) + o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin) + o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin) + o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin) + o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin) + o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin) + o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin) + o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin) + o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin) + o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin) + 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 (4be6c70 Azat Khuzhin) + o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin) + o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin) + o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin) + o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin) + o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin) + 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 (342e116 Azat Khuzhin) + o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin) + o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin) + o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin) + o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin) + o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin) + + 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 (fdf713a Azat Khuzhin) + o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin) + o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin) + 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) (24a1f25 Azat Khuzhin) + o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin) + o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin) + o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin) + o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin) + o Update dns-example. (620ff24 Mark Ellzey) + + Documentation + 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 (c0b34f6 Azat Khuzhin) + + 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 (2185e63 Azat Khuzhin) + o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin) + o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin) + + Code Improvements (bufferevents) + o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin) + o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin) + o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin) + o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin) + o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin) + o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin) + + Cleanups (core) + o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths) + o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin) + o tab (6e7a580 Greg Hazel) + + Cleanups (evbuffers) + o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin) + + 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) (fad5fe2 Azat Khuzhin) + o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin) + 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 (d405492 Azat Khuzhin) + 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. (c1404b5 Ed Schouten) + o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten) + o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley) + 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 (c212291 Azat Khuzhin) + 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 (6fcfa25 Azat Khuzhin) + o appveyor: image already had openssl installed (4634b85 Azat Khuzhin) + o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin) + o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin) + o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin) + o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin) + 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 (dc95823 Azat Khuzhin) + 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 (c4dfb93 Azat Khuzhin) + o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin) + o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin) + o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin) + o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin) + 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 (b5ca365 Rainer Keller) + o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin) + o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin) + o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin) + o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen) + 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 (87f7238 Azat Khuzhin) + 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 (f29f59e Azat Khuzhin) + 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) (49bd790 Azat Khuzhin) + o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson) + o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin) + 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. (ded8086 billsegall) + 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 (3316a21 Azat Khuzhin) + o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard) + o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin) + o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin) + o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn) + o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin) + 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) (0c7f217 Thomas Bernard) + o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard) + o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg) + 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) + + Debugging + o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey) + + + +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. (d49bc0e88b81a5812116074dc007f1db0ca1eecd) + + New APIs (evconnlistener) + o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak) + + 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 (2c82aa0 John Ohl) + 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 (3da84c2 Azat Khuzhin) + 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 (12c29b0 Azat Khuzhin) + o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl) + + New APIs (core) + o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard) + + 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() (61262a0 Azat Khuzhin) + o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15) + o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin) + o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin) + o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin) + + Bugfixes (evhttp) + o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin) + + + Testing + o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin) + 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 (42aefeb Azat Khuzhin) + 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 (b897bef Azat Khuzhin) + o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin) + 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() (fb57b8b) + 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 (d9da844 Azat Khuzhin) + + 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. (1a8295a Pierre Phaneuf) + o updates in cmake build (27bd9fa Sergey Nikulov) + o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang) + 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) (8afbdbc Thomas Bernard) + + Bugfixes (miscellaneous) + o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin) + o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin) + 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. (6fd7394 Adrian Chadd) + + + +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 (5173bef, efbd3dc, 26230a2 + Andrew Sweeney) + o Implemented EV_CLOSED event for epoll backend + (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52 + Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e) + + 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 (1c77fbb + Mark Ellzey) + 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 (a7384c7 + Ondřej Kuzník) + o Clarifications in response to merge req. comments (bd41947 Ondřej + Kuzník) + 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. (0c7f040 Azat + Khuzhin) + 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. (c259d53 + Joakim Soderberg) + 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. (7ea4159 + Joakim Soderberg) + 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+ (69c3516 + Joakim Söderberg) + o Fix kqueue support. (a831f2f Joakim Söderberg) + o Added a test for testing if kqueue works with pipes. (2799b35 + Joakim Söderberg) + 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). (f780593 Joakim Soderberg) + 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. (24d6466 Joakim + Soderberg) + o Rename README to README.md and use markdown to format. (d2bc39a + Joakim Soderberg) + 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. (8697b99 + Joakim Soderberg) + 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 + (8b40a5b Joakim Söderberg) + 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. (e423d42 Joakim + Söderberg) + 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. (f1715b4 + Joakim Soderberg) + 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 + (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed + John Ohl) + 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) + (b8f5980 Frank Denis) + + Bugfixes (evutil_secure_rng) + o When we seed from /proc/sys/kernel/random/uuid, count it as success + (e35b540) + 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 + (243386c Ross Lagerwall) + o Fix a compiler warning when checking for arc4random_buf linker + breakage. (5cb3865) + o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES + (239d834) + + 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_() + (d3d999a Azat Khuzhin) + 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) + + Testing + 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 + (611e28b Azat Khuzhin) + o regress_http: add tests for evhttp_connection_get_addr() (4dd500c + Azat Khuzhin) + 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 + (42c03da Maxime Henrion) + o Avoid redundant syscall if making a socket cloexec twice (1f29b18) + o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) + + Documentation + 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 + (5e161c6) + + Cleanups + 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) + + Evdns + 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) + (74d4c44 Kevin Bowling) + 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 + (0a822a6) + 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 + (c322c20 Gyepi Sam) + 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 (9e8cdf3 Sebastian + Hahn) + o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke) + o fix some hinky indentation in evhttp_make_request (80e220e Patrick + Pelletier) + 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 (1258614 Patrick + Pelletier) + o Fix harmless clang enum warning (b452a43 Sebastian Hahn) + o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick + Pelletier) + 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" (64b6ece Azat + Khuzhin) + o uri decode: changed the test for the existence of the next character + (e1903e3 Azat Khuzhin) + o Move prototype of evhttp_decode_uri_internal() to http-internal.h + (de8101a Azat Khuzhin) + o Test: decoding just part of string with evhttp_decode_uri_internal() + (1367653 Azat Khuzhin) + o Add new error_cb for actual reporting of HTTP request errors. (7b07719 + Azat Khuzhin) + o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217 + Azat Khuzhin) + o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin) + + Testing + 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) + + Windows: + o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af + Patrick Pelletier) + o a program to print out the error strings for winsock errors (7296512 + Patrick Pelletier) + 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 (42d7441 Patrick + Pelletier) + 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 (64d9f16 + Patrick Pelletier) + o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5 + Patrick Pelletier) + 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 + (e9f8feb yangacer, 64051b9) + o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman + Puls, 232055e, ffe1643) + 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) + + PORTABLE MONOTONIC TIMERS: + + 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 + (ddd69d3) + 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 + (1aaf9f0 Dave Hart) + o Make test_evutil_monotonic a little more tolerant (def3b83) + o Avoid unused-var warning on systems with clock_gettime but without + CLOCK_MONOTONIC_COARSE (9be5468) + +EVENT_BASE_ONCE LEAKS: + 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) + +TESTING SUPPORT, FIXES AND IMPROVEMENTS: + + 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) + +MISC: + o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas + Marriott, 3aa4415) + +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 + (bec22b4) + o Remove the unused bits from EVLIST_ALL (9889a3d) +||||||| merged common ancestors +Changes in version 2.0.22-stable (?? Dec 2013) + + (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.) + BUGFIXES (evhttp) o fix #73 and fix http_connection_fail_test to catch it (crash fix) (b618204 Greg Hazel) o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum) @@ -1407,7 +1407,7 @@ BUGFIXES (resource leaks/lock errors on error) o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis) BUGFIXES (miscellaneous) - o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471) + o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471) o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) BUFGIXES (evdns) @@ -1426,7 +1426,7 @@ DOCUMENTATION FIXES o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5) - + Changes in version 2.0.21-stable (18 Nov 2012) BUGFIXES: o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) @@ -1804,358 +1804,358 @@ DOCUMENTATION: -BUILD IMPROVEMENTS: - Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes - numerous other build system. Parallel builds should be faster, and all - builds should be quieter. - - o Split long lists in Makefile.am into one-item-per-line (2711cda) - o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) - o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) - o Use newer syntax for autoconf/automake init (7d60ba8) - o Enable silent build rules by default. Override with V=1 (7b18e5c) - o Switch to non-recursive makefiles (7092f3b) - o Rename subordinate Makefile.ams to include.am (6cdfeeb) - o Make quiet build even quieter (371a123) - o New --quiet option for event_rpcgen.py (aa59c1e) - o Be quiet when making regress.gen.[ch] (607a8ff) - o Fix handling of no-python case for nonrecursive make (1e3123d) - o We now require automake 1.9 or later. Modernize! (b7f6e89) - o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) - o Use correct openssl libs and includes in pkgconfig file (d70af27) - o Use the same CFLAGS for openssl when building unit tests as with - libevent (1d9d511) +BUILD IMPROVEMENTS: + Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes + numerous other build system. Parallel builds should be faster, and all + builds should be quieter. + + o Split long lists in Makefile.am into one-item-per-line (2711cda) + o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) + o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) + o Use newer syntax for autoconf/automake init (7d60ba8) + o Enable silent build rules by default. Override with V=1 (7b18e5c) + o Switch to non-recursive makefiles (7092f3b) + o Rename subordinate Makefile.ams to include.am (6cdfeeb) + o Make quiet build even quieter (371a123) + o New --quiet option for event_rpcgen.py (aa59c1e) + o Be quiet when making regress.gen.[ch] (607a8ff) + o Fix handling of no-python case for nonrecursive make (1e3123d) + o We now require automake 1.9 or later. Modernize! (b7f6e89) + o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) + o Use correct openssl libs and includes in pkgconfig file (d70af27) + o Use the same CFLAGS for openssl when building unit tests as with + libevent (1d9d511) DOCUMENTATION - o Note that make_base_notifiable should not be necessary (26ee5f9) - o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) - o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) - o Make it more clear that NOLOCK means "I promise, no multithreading" - (9444524) - o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) - o Make the Makefile.nmake warning slightly less dire (e7bf4c8) - o Fix typo : events instead of evets (05f1aca Azat Khuzhin) - o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart - (6bde2ef Patrick Pelletier) - -EVHTTP: - o ignore LWS after field-content in headers (370a2c0 Artem Germanov) - o Clean up rtrim implementation (aa59d80) - o Remove trailing tabs in HTTP headers as well. (ac42519) - o Remove internal ws from multiline http headers correctly (c6ff381) - o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) - o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) - o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in - evhttp_connection_fail_ (7afbd60) - o preserve errno in evhttp_connection_fail_ for inspection by the - callback (36d0ee5 Patrick Pelletier) - -BUGFIXES: - o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) - o Avoid double-free on error in evbuffer_add_file. Found by - coverity. (6a81b1f) - o Fix another possible uninitialized read in dns regression tests. Found - by coverity. (13525c5) - o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) - o Avoid memory leak in test_event_calloc unit test; found by coverity - (92817a1) - o Fix a shadowed variable in addfile_test_readcb; found by coverity - (225344c) - o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by - coverity (6487f63) - o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 - Joachim Bauch) - o Make event_base_getnpriorities work with old "implicit base" code - (c46cb9c) - o Simplify and correct evutil_open_closeonexec_ (0de587f) - o Fix event_dlist definition when sys/queue not included (81b6209 - Derrick Pallas) - - - -Changes in version 2.1.1-alpha (4 Apr 2012) - - Libevent 2.1.1-alpha includes a number of new features and performance - improvements. The log below tries to organize them by rough area of - effect. It omits some 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.1-alpha distribution. - - Performance: Core - o Replace several TAILQ users with LIST. LIST can be a little faster than - TAILQ for cases where we don't need queue-like behavior. (f9db33d, - 6494772, d313c29, 974d004) - o Disabled code to optimize the case where we reinsert an existing - timeout (e47042f, 09cbc3d) - o Remove a needless base-notify when rescheduling the first timeout (77a96fd) - o Save a needless comparison when removing/adjusting timeouts (dd5189b) - o Possible optimization: split event_queue_insert/remove into - separate functions. needs testing (efc4dc5) - o Make event_count maintenance branchless at the expense of an - extra shift. Needs benchmarking (d1cee3b) - o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime - comparison (2a83ecc) - o Optimization in event_process_active(): ignore maxcb & endtime - for highest priority events. (a9866aa Alexander Drozdov) - o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95) - o Remove the eventqueue list and the ev_next pointers. (604569b 066775e) - - Performance: Evbuffers - o Roughly 20% speed increase when line-draining a buffer using - EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib) - o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139) - o Fix a bug in the improved EOL_CRLF code (d927965) - o Remove a needless branch in evbuffer_drain() (d19a326) - - Performance: Linux - o Infrastructure for using faster/fewer syscalls when creating - sockets (a1c042b) - o Minimize syscalls during socket creation in listener.c (7e9e289) - o Use a wrapper function to create the notification - pipe/socketpair/eventfd (ca76cd9) - o Use pipes for telling signals to main thread when possible (a35f396) - o Save syscalls when constructing listener sockets for evhttp (af6c9d8) - o Save some syscalls when creating evdns sockets (713e570) - o Save some syscalls when constructing a socket for a bufferevent (33fca62) - o Prefer epoll_create1 on Linuxen that have it (bac906c) - - Performance: Epoll backend - o Use current event set rather than current pending change when - deciding whether to no-op a del (04ba27e Mike Smellie) - o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6) - o Clean up error handling in epoll_apply_one_change() a little (2d55a19) - - Performance: Evport backend - o evport: use evmap_io to track fdinfo status. Should save time and - RAM. (4687ce4) - o evport: Remove a linear search over recent events when - reactivating them (0f77efe) - o evport: Use portev_user to remember fdinfo struct (276ec0e) - o evport: don't scan more events in ed_pending than needed (849a5cf) - o evport: Remove artificial low limit on max events per getn call (c04d927) - o Reenable main/many_events_slow_add for evport in 2.1 (e903db3) - - Performance: Windows - o Use GetSystemTimeAsFileTime to implement gettimeofday on - win32. It's faster and more accurate than our old - approach. (b8b8aa5) - - New functions and features: debugging - o Add event_enable_debug_logging() to control use of debug logs (e30a82f) - - New functions and features: core - o Add event_config function to limit time/callbacks between calls - to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd) - o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no - events are pending (084e68f) - o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov) - o Make evbase_priority_init() and evbase_get_npriorities() - threadsafe (3c55b5e) - o New event_base_update_cache_time() to set cached_tv to current - time (212533e Abel Mathew) - o Add event_self_cbarg() to be used in conjunction with - event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c, - 33e43ef) - o Add a new libevent_global_shutdown() to free all globals before - exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b) - o Use getifaddrs to detect our interfaces if possible (7085a45) - o Add event_base_get_running_event() to get the event* whose cb we - are in (c5732fd, 13dad99) - - New functions and features: building - o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn) - - New functions and features: evbuffers - o Add evbuffer_add_file_segment() so one fd can be used efficiently - in more than one evbuffer_add_file at a time (e72afae, c2d9884, - 3f405d2, 0aad014) - o Fix windows file segment mappings (8254de7) - o Allow evbuffer_ptr_set to yield a point just after the end of the - buffer. (e6fe1da) - o Allow evbuffer_ptr to point to position 0 in an empty evbuffer - (7aeb2fd Nir Soffer) - o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer) - o support adding buffers to other buffers non-destructively - (9d7368a Joachim Bauch) - o prevent nested multicast references, reworked locking (26041a8 - Joachim Bauch) - o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an - evbuffer (d7a8b36 Andrea Montefusco, 54142c9) - o Make evbuffer_file_segment_types adaptable (c6bbbf1) - o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398) - o Add evbuffer_copyout_from to copy data from the middle of a - buffer (27e2225) - - New functions and features: bufferevents - o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea) - o Tweak allow_dirty_shutdown documentation (a44cd2b) - o Fix two issues in the allow_dirty_shutdown code. (f3b89de) - o Add a bufferevent_getcb() to find a bufferevent's current - callbacks (a650394) - o bufferevent: Add functions to set/get max_single_read/write - values. (998c813 Alexander Drozdov) - o bev_ssl: Be more specific in event callbacks. evhttp in particular gets - confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a - Catalin Patulea) - - New functions and features: evconnlisteners - o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey, - a270728) - o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728) - o Allow evconnlistener to be created in disabled state. (9593a33 - Alexander Drozdov) - o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener - sockets too (4970329) - - Evhttp: - o Add new evhttp_{connection_}set_timeout_tv() functions to set - finger-grained http timeouts (6350e6c Constantine Verutin) - o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey) - o Add missing break to evhttp_parse_request_line (0fcc536) - o Add evhttp callback for bufferevent creation; this lets evhttp - support SSL. (8d3a850) - o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758) - o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra) - - Build improvements: - o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on - patches for correctness and robustness. (1fa7dbe Kevin Bowling) - o Filter '# define' statements from autoconf and generate - event-private.h (321b558 Kevin Bowling) - o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling) - o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93 - Kevin Bowling) - o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling) - o Use a Configuration Header Template for evconfig-private.h (868f888 - Kevin Bowling) - o Fix a comment warning and add evconfig-private.h to .gitignore - (f6d66bc Kevin Bowling) - o Include evconfig-private.h in internal files for great good. (0915ca0 - Kevin Bowling) - o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) - (ad03952 Kevin Bowling) - o Prefer the ./configure evconfig-private.h in MinGW, just in - case. (f964b72 Kevin Bowling) - o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling) - o Add evconfig-private to remaining files (ded0a09 Kevin Bowling) - o Allow use of --enable-silent-rules for quieter compilation with - automake 1.11 (f1f8514 Dave Hart) - o Use "_WIN32", not WIN32: it's standard and we don't need to fake it - (9f560b) - o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin) - o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin) - o Provide the autoconf m4 macros for the new OpenSSL via pkg-config - stuff. (674dc3d Harlan Stenn) - o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn) - o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b - Harlan Stenn) - o Fix OSX build: $(OPENSSL_INCS) needs to be after - $(AM_CPPFLAGS). (46f1769 Zack Weinberg) - o Make gcc warnings on by default, and --enable-gcc-warnings only add - -Werror (d46517e Sebastian Hahn) - o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad) - o Move libevent 1.x headers to include/, to put all public headers in - one place. (bbea8d6) - o Put #ifdef around some files to support alternate build - systems. (76d4c92 Ross Lagerwall) - o Also make win32select.c conditional for IDE users (bf2c5a7) - - Debugging: - o Add a magic number to debug_locks to better catch lock-coding - errors. (b4a29c0 Dave Hart) - o munge the debug_lock signature before freeing it: it might help us - catch use-after-free (f28084d) - o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey) - o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey) - o Added usec debug in another area for debug (3baab0d Mark Ellzey) - o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey) - o more event dbg updates (6727543 Mark Ellzey) - o Clarify event_enable_debug_logging a little (6207826) - o Make --enable-verbose-debug option match its help text (10c3450) - o Add argument checks to some memory functions in `event.c'. (c8953d1 - Mansour Moufid) - - Testing: - o More abstraction in test.sh (cd74c4e) - o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer) - o Tweaks to return types with end-of-buf ptrs (9ab8ab8) - o Add an (internal) usleep function for use by unit tests (f25d9d3) - o Synchronize with upstream tinytest (6c81be7) - o Make test-changelist faster (7622d26) - o Reduce the timeout in the main/fork test. (ab14f7c) - o New evhttp function to adjust initial retry timeout (350a3c4) - o Make regression tests run over 3x faster. (67a1763) - o Use test_timeval_diff_eq more consistently (b77b43f) - o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f) - o When including an -internal.h header outside the main tree, do so - early (95e2455) - o Add a new test: test-fdleak which tests for fd leaks by creating many - sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc) - o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce) - o Test more bufferevent_ratelim features (c24f91a) - - Documentation: - o Improve evbuffer_ptr documentation (261ba63) - o added comments to describe refcounting of multicast chains (ba24f61 - Joachim Bauch) - o Add doxygen for event_base_dump_events (cad5753) - - OSX: - o Use "unlimited select" on OSX so that we can have more than - FD_SETSIZE fds (1fb5cc6) - - KQueue: - o Use SIG_IGN instead of a do-nothing handler for signal events with - kqueue (148458e Zack Weinberg) - - evprc: - o event_rpcgen.py now prints status information to stdout and errors to - stderr. (ffb0ba0 Ross Lagerwall) - - Code improvement and refactoring: - o Make event_reinit() more robust and maintainable (272033e) - o Restore fast-path event_reinit() for slower backends (2c4b5de) - o Check changelist as part of checking representational integrity (39b3f38) - o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn) - o Refactor the functions that run over every event. (c89b4e6) - o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90) - o Make event-config.h depend on Makefile.am (2958a5c) - - Build fixes: - o Don't do clang version detection when disabling some flags (083296b - Sebastian Hahn) - - C standards conformance: - o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69) - o Convert event-config.h macros to avoid reserved identifiers (68120d9) - o Generate event-config.h using the correct macros. (f82c57e) - o Convert include-guard macro convention to avoid reserved identifiers - (3f8c7cd) - o Make event_rpcgen.py output conform to identifier conventions (372bff1) - o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0) - o Make the generated event-config.h use correct include guards (639383a) - o Fix all identifiers with names beginning with underscore. (cb9da0b) - o Make event_rpcgen.py output conform to identifier conventions, more - (bcefd24) - o Fix some problems introduced by automated identifier cleanup script - (c963534) - o Have all visible internal function names end with an underscore. (8ac3c4c) - o Apply the naming convention to our EVUTIL_IS* functions (c7848fa) - o Clean up lingering _identifiers. (946b584) - o Fix doxygen to use new macro conventions (da455e9) - - Bugfixes: - o Do not use system EAI/AI values if we are not using the system - getaddrinfo. (7bcac07) - - Sample Code: - o Fix up sample/event-test.c to use newer interfaces and make it - actually work. (19bab4f Ross Lagerwall) - o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross - Lagerwall) - o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall) - o event-read-fifo: Use EV_PERSIST appropriately (24dab0b) + o Note that make_base_notifiable should not be necessary (26ee5f9) + o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) + o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) + o Make it more clear that NOLOCK means "I promise, no multithreading" + (9444524) + o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) + o Make the Makefile.nmake warning slightly less dire (e7bf4c8) + o Fix typo : events instead of evets (05f1aca Azat Khuzhin) + o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart + (6bde2ef Patrick Pelletier) + +EVHTTP: + o ignore LWS after field-content in headers (370a2c0 Artem Germanov) + o Clean up rtrim implementation (aa59d80) + o Remove trailing tabs in HTTP headers as well. (ac42519) + o Remove internal ws from multiline http headers correctly (c6ff381) + o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) + o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) + o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in + evhttp_connection_fail_ (7afbd60) + o preserve errno in evhttp_connection_fail_ for inspection by the + callback (36d0ee5 Patrick Pelletier) + +BUGFIXES: + o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) + o Avoid double-free on error in evbuffer_add_file. Found by + coverity. (6a81b1f) + o Fix another possible uninitialized read in dns regression tests. Found + by coverity. (13525c5) + o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) + o Avoid memory leak in test_event_calloc unit test; found by coverity + (92817a1) + o Fix a shadowed variable in addfile_test_readcb; found by coverity + (225344c) + o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by + coverity (6487f63) + o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 + Joachim Bauch) + o Make event_base_getnpriorities work with old "implicit base" code + (c46cb9c) + o Simplify and correct evutil_open_closeonexec_ (0de587f) + o Fix event_dlist definition when sys/queue not included (81b6209 + Derrick Pallas) + + + +Changes in version 2.1.1-alpha (4 Apr 2012) + + Libevent 2.1.1-alpha includes a number of new features and performance + improvements. The log below tries to organize them by rough area of + effect. It omits some 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.1-alpha distribution. + + Performance: Core + o Replace several TAILQ users with LIST. LIST can be a little faster than + TAILQ for cases where we don't need queue-like behavior. (f9db33d, + 6494772, d313c29, 974d004) + o Disabled code to optimize the case where we reinsert an existing + timeout (e47042f, 09cbc3d) + o Remove a needless base-notify when rescheduling the first timeout (77a96fd) + o Save a needless comparison when removing/adjusting timeouts (dd5189b) + o Possible optimization: split event_queue_insert/remove into + separate functions. needs testing (efc4dc5) + o Make event_count maintenance branchless at the expense of an + extra shift. Needs benchmarking (d1cee3b) + o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime + comparison (2a83ecc) + o Optimization in event_process_active(): ignore maxcb & endtime + for highest priority events. (a9866aa Alexander Drozdov) + o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95) + o Remove the eventqueue list and the ev_next pointers. (604569b 066775e) + + Performance: Evbuffers + o Roughly 20% speed increase when line-draining a buffer using + EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib) + o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139) + o Fix a bug in the improved EOL_CRLF code (d927965) + o Remove a needless branch in evbuffer_drain() (d19a326) + + Performance: Linux + o Infrastructure for using faster/fewer syscalls when creating + sockets (a1c042b) + o Minimize syscalls during socket creation in listener.c (7e9e289) + o Use a wrapper function to create the notification + pipe/socketpair/eventfd (ca76cd9) + o Use pipes for telling signals to main thread when possible (a35f396) + o Save syscalls when constructing listener sockets for evhttp (af6c9d8) + o Save some syscalls when creating evdns sockets (713e570) + o Save some syscalls when constructing a socket for a bufferevent (33fca62) + o Prefer epoll_create1 on Linuxen that have it (bac906c) + + Performance: Epoll backend + o Use current event set rather than current pending change when + deciding whether to no-op a del (04ba27e Mike Smellie) + o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6) + o Clean up error handling in epoll_apply_one_change() a little (2d55a19) + + Performance: Evport backend + o evport: use evmap_io to track fdinfo status. Should save time and + RAM. (4687ce4) + o evport: Remove a linear search over recent events when + reactivating them (0f77efe) + o evport: Use portev_user to remember fdinfo struct (276ec0e) + o evport: don't scan more events in ed_pending than needed (849a5cf) + o evport: Remove artificial low limit on max events per getn call (c04d927) + o Reenable main/many_events_slow_add for evport in 2.1 (e903db3) + + Performance: Windows + o Use GetSystemTimeAsFileTime to implement gettimeofday on + win32. It's faster and more accurate than our old + approach. (b8b8aa5) + + New functions and features: debugging + o Add event_enable_debug_logging() to control use of debug logs (e30a82f) + + New functions and features: core + o Add event_config function to limit time/callbacks between calls + to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd) + o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no + events are pending (084e68f) + o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov) + o Make evbase_priority_init() and evbase_get_npriorities() + threadsafe (3c55b5e) + o New event_base_update_cache_time() to set cached_tv to current + time (212533e Abel Mathew) + o Add event_self_cbarg() to be used in conjunction with + event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c, + 33e43ef) + o Add a new libevent_global_shutdown() to free all globals before + exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b) + o Use getifaddrs to detect our interfaces if possible (7085a45) + o Add event_base_get_running_event() to get the event* whose cb we + are in (c5732fd, 13dad99) + + New functions and features: building + o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn) + + New functions and features: evbuffers + o Add evbuffer_add_file_segment() so one fd can be used efficiently + in more than one evbuffer_add_file at a time (e72afae, c2d9884, + 3f405d2, 0aad014) + o Fix windows file segment mappings (8254de7) + o Allow evbuffer_ptr_set to yield a point just after the end of the + buffer. (e6fe1da) + o Allow evbuffer_ptr to point to position 0 in an empty evbuffer + (7aeb2fd Nir Soffer) + o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer) + o support adding buffers to other buffers non-destructively + (9d7368a Joachim Bauch) + o prevent nested multicast references, reworked locking (26041a8 + Joachim Bauch) + o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an + evbuffer (d7a8b36 Andrea Montefusco, 54142c9) + o Make evbuffer_file_segment_types adaptable (c6bbbf1) + o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398) + o Add evbuffer_copyout_from to copy data from the middle of a + buffer (27e2225) + + New functions and features: bufferevents + o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea) + o Tweak allow_dirty_shutdown documentation (a44cd2b) + o Fix two issues in the allow_dirty_shutdown code. (f3b89de) + o Add a bufferevent_getcb() to find a bufferevent's current + callbacks (a650394) + o bufferevent: Add functions to set/get max_single_read/write + values. (998c813 Alexander Drozdov) + o bev_ssl: Be more specific in event callbacks. evhttp in particular gets + confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a + Catalin Patulea) + + New functions and features: evconnlisteners + o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey, + a270728) + o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728) + o Allow evconnlistener to be created in disabled state. (9593a33 + Alexander Drozdov) + o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener + sockets too (4970329) + + Evhttp: + o Add new evhttp_{connection_}set_timeout_tv() functions to set + finger-grained http timeouts (6350e6c Constantine Verutin) + o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey) + o Add missing break to evhttp_parse_request_line (0fcc536) + o Add evhttp callback for bufferevent creation; this lets evhttp + support SSL. (8d3a850) + o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758) + o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra) + + Build improvements: + o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on + patches for correctness and robustness. (1fa7dbe Kevin Bowling) + o Filter '# define' statements from autoconf and generate + event-private.h (321b558 Kevin Bowling) + o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling) + o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93 + Kevin Bowling) + o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling) + o Use a Configuration Header Template for evconfig-private.h (868f888 + Kevin Bowling) + o Fix a comment warning and add evconfig-private.h to .gitignore + (f6d66bc Kevin Bowling) + o Include evconfig-private.h in internal files for great good. (0915ca0 + Kevin Bowling) + o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) + (ad03952 Kevin Bowling) + o Prefer the ./configure evconfig-private.h in MinGW, just in + case. (f964b72 Kevin Bowling) + o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling) + o Add evconfig-private to remaining files (ded0a09 Kevin Bowling) + o Allow use of --enable-silent-rules for quieter compilation with + automake 1.11 (f1f8514 Dave Hart) + o Use "_WIN32", not WIN32: it's standard and we don't need to fake it + (9f560b) + o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin) + o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin) + o Provide the autoconf m4 macros for the new OpenSSL via pkg-config + stuff. (674dc3d Harlan Stenn) + o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn) + o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b + Harlan Stenn) + o Fix OSX build: $(OPENSSL_INCS) needs to be after + $(AM_CPPFLAGS). (46f1769 Zack Weinberg) + o Make gcc warnings on by default, and --enable-gcc-warnings only add + -Werror (d46517e Sebastian Hahn) + o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad) + o Move libevent 1.x headers to include/, to put all public headers in + one place. (bbea8d6) + o Put #ifdef around some files to support alternate build + systems. (76d4c92 Ross Lagerwall) + o Also make win32select.c conditional for IDE users (bf2c5a7) + + Debugging: + o Add a magic number to debug_locks to better catch lock-coding + errors. (b4a29c0 Dave Hart) + o munge the debug_lock signature before freeing it: it might help us + catch use-after-free (f28084d) + o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey) + o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey) + o Added usec debug in another area for debug (3baab0d Mark Ellzey) + o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey) + o more event dbg updates (6727543 Mark Ellzey) + o Clarify event_enable_debug_logging a little (6207826) + o Make --enable-verbose-debug option match its help text (10c3450) + o Add argument checks to some memory functions in `event.c'. (c8953d1 + Mansour Moufid) + + Testing: + o More abstraction in test.sh (cd74c4e) + o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer) + o Tweaks to return types with end-of-buf ptrs (9ab8ab8) + o Add an (internal) usleep function for use by unit tests (f25d9d3) + o Synchronize with upstream tinytest (6c81be7) + o Make test-changelist faster (7622d26) + o Reduce the timeout in the main/fork test. (ab14f7c) + o New evhttp function to adjust initial retry timeout (350a3c4) + o Make regression tests run over 3x faster. (67a1763) + o Use test_timeval_diff_eq more consistently (b77b43f) + o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f) + o When including an -internal.h header outside the main tree, do so + early (95e2455) + o Add a new test: test-fdleak which tests for fd leaks by creating many + sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc) + o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce) + o Test more bufferevent_ratelim features (c24f91a) + + Documentation: + o Improve evbuffer_ptr documentation (261ba63) + o added comments to describe refcounting of multicast chains (ba24f61 + Joachim Bauch) + o Add doxygen for event_base_dump_events (cad5753) + + OSX: + o Use "unlimited select" on OSX so that we can have more than + FD_SETSIZE fds (1fb5cc6) + + KQueue: + o Use SIG_IGN instead of a do-nothing handler for signal events with + kqueue (148458e Zack Weinberg) + + evprc: + o event_rpcgen.py now prints status information to stdout and errors to + stderr. (ffb0ba0 Ross Lagerwall) + + Code improvement and refactoring: + o Make event_reinit() more robust and maintainable (272033e) + o Restore fast-path event_reinit() for slower backends (2c4b5de) + o Check changelist as part of checking representational integrity (39b3f38) + o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn) + o Refactor the functions that run over every event. (c89b4e6) + o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90) + o Make event-config.h depend on Makefile.am (2958a5c) + + Build fixes: + o Don't do clang version detection when disabling some flags (083296b + Sebastian Hahn) + + C standards conformance: + o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69) + o Convert event-config.h macros to avoid reserved identifiers (68120d9) + o Generate event-config.h using the correct macros. (f82c57e) + o Convert include-guard macro convention to avoid reserved identifiers + (3f8c7cd) + o Make event_rpcgen.py output conform to identifier conventions (372bff1) + o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0) + o Make the generated event-config.h use correct include guards (639383a) + o Fix all identifiers with names beginning with underscore. (cb9da0b) + o Make event_rpcgen.py output conform to identifier conventions, more + (bcefd24) + o Fix some problems introduced by automated identifier cleanup script + (c963534) + o Have all visible internal function names end with an underscore. (8ac3c4c) + o Apply the naming convention to our EVUTIL_IS* functions (c7848fa) + o Clean up lingering _identifiers. (946b584) + o Fix doxygen to use new macro conventions (da455e9) + + Bugfixes: + o Do not use system EAI/AI values if we are not using the system + getaddrinfo. (7bcac07) + + Sample Code: + o Fix up sample/event-test.c to use newer interfaces and make it + actually work. (19bab4f Ross Lagerwall) + o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross + Lagerwall) + o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall) + o event-read-fifo: Use EV_PERSIST appropriately (24dab0b) |