11972c52dSAzat KhuzhinChanges in version 2.1.10-stable (26 May 2019) 21972c52dSAzat Khuzhin 31972c52dSAzat Khuzhin This release contains mostly fixes (some evbuffer oddity, AF_UNIX handling in 41972c52dSAzat Khuzhin http server, some UB fixes and others) but also some new functionality 51972c52dSAzat Khuzhin (without ABI breakage as usual) and now dist archive can be used for building 61972c52dSAzat Khuzhin on windows (getopt had been added into it). 71972c52dSAzat Khuzhin 81972c52dSAzat Khuzhin Above you will find changelog for this particular release (but with some 91972c52dSAzat Khuzhin trivial fixes pruned out from it - to make it a little bit more informative). 101972c52dSAzat Khuzhin 111972c52dSAzat Khuzhin To view full changelog please use git: 12*047cd8a9SAzat Khuzhin git log --format=' o %s (%h %aN)' release-2.1.9-beta...release-2.1.10-stable 131972c52dSAzat Khuzhin 141972c52dSAzat Khuzhin dist: 151972c52dSAzat Khuzhin o Add getopt into dist archive (7042ff24 Azat Khuzhin) 161972c52dSAzat Khuzhin 171972c52dSAzat Khuzhin functionality: 181972c52dSAzat Khuzhin o evdns: add DNS_OPTION_NAMESERVERS_NO_DEFAULT/EVDNS_BASE_NAMESERVERS_NO_DEFAULT 191972c52dSAzat Khuzhin (58e81106 Azat Khuzhin) 201972c52dSAzat Khuzhin o Add support for EV_TIMEOUT to event_base_active_by_fd (3f893f0a John Ohl) 211972c52dSAzat Khuzhin 221972c52dSAzat Khuzhin fixes: 231972c52dSAzat Khuzhin o Merge branch 'evbuffer-fixes-806-v2' (2fea04b3 Azat Khuzhin) 241972c52dSAzat Khuzhin o Merge branch 'issue-807-accept4-getnameinfo-AF_UNIX' (7c4da937, e2790a7f 251972c52dSAzat Khuzhin Azat Khuzhin) 261972c52dSAzat Khuzhin o kqueue: Avoid undefined behaviour. (e70e18e9 Tobias Stoeckmann) 271972c52dSAzat Khuzhin o Prevent integer overflow in kq_build_changes_list. (43a55a23 Tobias Stoeckmann) 281972c52dSAzat Khuzhin o evdns: fix lock/unlock mismatch in evdns_close_server_port() (54103883 zhuizhuhaomeng) 291972c52dSAzat Khuzhin o Merge remote-tracking branch 'official/pr/804' -- Enforce limit of NSIG 301972c52dSAzat Khuzhin signals (87fa93a8 Tobias Stoeckmann) 311972c52dSAzat Khuzhin o Protect min_heap_push_ against integer overflow. (0b46bb8c Tobias Stoeckmann) 321972c52dSAzat Khuzhin o le-proxy: initiate use of the Winsock DLL (2a1e1530 linxiaohui) 331972c52dSAzat Khuzhin o Fix leaks in error path of the bufferevent_init_common_() (bb0f8fe7 Azat Khuzhin) 341972c52dSAzat Khuzhin o buffer: make evbuffer_prepend() of zero-length array no-op (61fa7b7d Azat Khuzhin) 351972c52dSAzat Khuzhin o Merge branch 'evbuffer-empty-chain-handling' (6a3dd717 Azat Khuzhin) 361972c52dSAzat Khuzhin o Don't loose top error in SSL (3d1a7a1d Yury Korzhetsky) 371972c52dSAzat Khuzhin o Remove needless check for arc4_seeded_ok (6602a97d Seong-Joong Kim) 381972c52dSAzat Khuzhin o Merge pull request #769 from sungjungk/fix-return-handling (91084140 Nathan French) 391972c52dSAzat Khuzhin 401972c52dSAzat Khuzhin build: 411972c52dSAzat Khuzhin o Define `_GNU_SOURCE` properly/consistently per autoconf (00ba9fa2 Enji Cooper) 421972c52dSAzat Khuzhin o signal: guard __cdecl definition with #ifdef (d89045a6 Azat Khuzhin) 431972c52dSAzat Khuzhin o Link test/regress with event_core/event_extra over event (22380996 Azat Khuzhin) 441972c52dSAzat Khuzhin 451972c52dSAzat Khuzhin tests: 461972c52dSAzat Khuzhin o Use kill() over raise() for raising the signal (fixes osx 10.14 with 471972c52dSAzat Khuzhin kqueue) (3db5296b, a45f6733 Azat Khuzhin) 481972c52dSAzat Khuzhin o tinytest: implement per-test timeout (via alarm() under !win32 only) 491972c52dSAzat Khuzhin (b64dbfb6, 75d7e1ff Azat Khuzhin) 501972c52dSAzat Khuzhin 51b5126dbeSAzat KhuzhinChanges in version 2.1.9-beta (10 February 2019) 52b5126dbeSAzat Khuzhin 53b5126dbeSAzat Khuzhin This changelog will differs from other releases in the next few clauses: 54b5126dbeSAzat Khuzhin - contains only highlighted changes (so now it will not contains a lot of 55b5126dbeSAzat Khuzhin patches that fixes some stuff in regression tests, typos, leaks fixes in 56b5126dbeSAzat Khuzhin samples and so forth) 57b5126dbeSAzat Khuzhin - no authors (since merge commits breaks them anyway, but AUTHORS sections in 58b5126dbeSAzat Khuzhin README will be kept up to date) 59b5126dbeSAzat Khuzhin - group name trimmed from commit subjects trimmed 60b5126dbeSAzat Khuzhin - it's been 2 years since the previoius release, so it is pretty huge 61b5126dbeSAzat Khuzhin 62b5126dbeSAzat Khuzhin And I think that this is more useful, so from now on it will always has the 63b5126dbeSAzat Khuzhin same look (until there will too many objections of course). 64b5126dbeSAzat Khuzhin 65b5126dbeSAzat Khuzhin To view full changelog please use git: 66b5126dbeSAzat Khuzhin git log --format=' o %s (%h %aN)' release-2.1.8-stable...release-2.1.9-beta 67b5126dbeSAzat Khuzhin 68b5126dbeSAzat Khuzhin 69b5126dbeSAzat Khuzhin dist archive: 70bf0cf6ecSPierce Lopez o Add cmake rules into dist archive (bf3a67cf) 71bf0cf6ecSPierce Lopez o Add missing print-winsock-errors.c into dist archive (822d6462) 72bf0cf6ecSPierce Lopez o Include openssl-compat.h into dist archive (08658136) 73b5126dbeSAzat Khuzhin 74b5126dbeSAzat Khuzhin core: 75bf0cf6ecSPierce Lopez o Merge branch 'check-O_NONBLOCK-in-debug' (a39898f3, a8155c62) 76bf0cf6ecSPierce Lopez o Merge branch 'event-ET-#636-v2' (ca4b6404) 77b5126dbeSAzat Khuzhin o Fix visibility issues under (mostly on win32) 78bf0cf6ecSPierce Lopez (349081e1g, 802be13ag, a1f28e2f) 79b5126dbeSAzat Khuzhin o Define __EXT_POSIX2 for QNX (a2176f2c) 80bf0cf6ecSPierce Lopez o Cleanup __func__ detection (b3af7bdd) 81b5126dbeSAzat Khuzhin o Add convenience macros for user-triggered events (06ec5de6) 82bf0cf6ecSPierce Lopez o Notify event base if there are no more events, so it can exit without delay (d9d1c09e) 83bf0cf6ecSPierce Lopez o Fix base unlocking in event_del() if event_base_set() runned in another thread (4f0f40e3) 84b5126dbeSAzat Khuzhin o If precise_time is false, we should not set EVENT_BASE_FLAG_PRECISE_TIMER (27dee54d) 85b5126dbeSAzat Khuzhin o Fix race in access to ev_res from event loop with event_active() (43d92a6d) 86b5126dbeSAzat Khuzhin o Return from event_del() after the last event callback termination (876c7ac7) 87b5126dbeSAzat Khuzhin 88b5126dbeSAzat Khuzhin http: 89bf0cf6ecSPierce Lopez o Merge branch 'http-EVHTTP_CON_READ_ON_WRITE_ERROR-fixes-v2' (eb7b472b) 90b5126dbeSAzat Khuzhin o Preserve socket error from listen across closesocket cleanup (2ccd00a6) 91bf0cf6ecSPierce Lopez o fix connection retries when there more then one request for connection (d30e7bba) 92bf0cf6ecSPierce Lopez o improve error path for bufferevent_{setfd,enable,disable}() (a8cc449e) 93bf0cf6ecSPierce Lopez o Fix conceivable UAF of the bufferevent in evhttp_connection_free() (6ac2ec25) 94bf0cf6ecSPierce Lopez o Merge branch 'http-request-line-parsing' (cdcfbafe) 95b5126dbeSAzat Khuzhin o Fix evhttp_connection_get_addr() fox incomming http connections (4215c003) 96bf0cf6ecSPierce Lopez o fix leaks in evhttp_uriencode() (123362e9) 97b5126dbeSAzat Khuzhin o CONNECT method only takes an authority (7d1ffe64) 98bf0cf6ecSPierce Lopez o Allow bodies for GET/DELETE/OPTIONS/CONNECT (23eb38b9) 99b5126dbeSAzat Khuzhin o Do not crash when evhttp_send_reply_start() is called after a timeout. (826f1134) 100bf0cf6ecSPierce Lopez o Fix crashing http server when callback do not reply in place (5b40744d, b2581380) 101bf0cf6ecSPierce Lopez o fix handling of close_notify (ssl) in http with openssl bufferevents (7e91622b) 102b5126dbeSAzat Khuzhin 1038b6f67a4SPierce Lopez evrpc: 104bf0cf6ecSPierce Lopez o use *_new_with_arg() to match function prototype (a95cc9e3) 105bf0cf6ecSPierce Lopez o avoid NULL dereference on request is not EVHTTP_REQ_POST (e05136c7) 106b5126dbeSAzat Khuzhin 107b5126dbeSAzat Khuzhin regression tests: 108bf0cf6ecSPierce Lopez o Merge branch 'TT_RETRIABLE' (6ea1ec68, f9b592aa) 109b5126dbeSAzat Khuzhin 110b5126dbeSAzat Khuzhin bufferevent: 111bf0cf6ecSPierce Lopez o Merge branch 'iocp-fixes' (6bfac964) 112bf0cf6ecSPierce Lopez o Merge branch 'be-wm-overrun-v2' (3f692fff) 113b5126dbeSAzat Khuzhin o bufferevent_socket_connect{,_hostname}() missing event callback and use ret code (1dde74ef) 114b5126dbeSAzat Khuzhin o don't fail be_null_filter if bytes are copied (b92b0792) 115b5126dbeSAzat Khuzhin o Call underlying bev ctrl GET_FD on filtered bufferevents (ebfac517) 116b5126dbeSAzat Khuzhin 117b5126dbeSAzat Khuzhin bufferevent_openssl/openssl: 118bf0cf6ecSPierce Lopez o Merge branch 'ssl_bufferevent_wm_filter-fix' (30020a35) 119bf0cf6ecSPierce Lopez o be_openssl: avoid leaking of SSL structure (e86ccfe5) 120b5126dbeSAzat Khuzhin o Fix build with LibreSSL 2.7 (894ca48a) 121bf0cf6ecSPierce Lopez o Add missing includes into openssl-compat.h (01bc36c1) 122b5126dbeSAzat Khuzhin o Explicitly call SSL_clear when reseting the fd. (29b7a516) 123b5126dbeSAzat Khuzhin o Unbreak build with LibreSSL after openssl 1.1 support added (230af9f0) 124b5126dbeSAzat Khuzhin 125b5126dbeSAzat Khuzhin samples: 126bf0cf6ecSPierce Lopez o Merge branch 'sample-http-server' (b6309bcc) 127b5126dbeSAzat Khuzhin o sample/https-client: use host SSL certificate store by default (5c0132f3) 128b5126dbeSAzat Khuzhin 129b5126dbeSAzat Khuzhin listener: 130b5126dbeSAzat Khuzhin o ipv6only socket bind support (ba148796) 131bf0cf6ecSPierce Lopez o Merge branch 'listener-immediate-close' (df2ed13f) 132bf0cf6ecSPierce Lopez o Merge branch 'evconnlistener-do-not-close-client-fd' (42e851bb) 133b5126dbeSAzat Khuzhin 134b5126dbeSAzat Khuzhin evdns: 135b5126dbeSAzat Khuzhin o evdns: handle NULL filename explicitly (0033f5cc) 136bf0cf6ecSPierce Lopez o Merge branch 'evdns_getaddrinfo-race-fix' (3237d697) 137b5126dbeSAzat Khuzhin o Generating evdns_base_config_windows_nameservers docs on all platforms (3bd2ce43) 138b5126dbeSAzat Khuzhin 139b5126dbeSAzat Khuzhin utils: 140bf0cf6ecSPierce Lopez o Merge branch 'evutil_found_ifaddr-dev' (b07e43e6) 141b5126dbeSAzat Khuzhin o Avoid possible SEGVs in select() (in unit tests) (8818c86c) 142b5126dbeSAzat Khuzhin o Port `event_rpcgen.py` and `test/check-dumpevents.py` to Python 3. (532a8cc3) 143b5126dbeSAzat Khuzhin 144b5126dbeSAzat Khuzhin buffer: 145b5126dbeSAzat Khuzhin o Fix assert() condition in evbuffer_drain() for IOCP (d6326104) 146bf0cf6ecSPierce Lopez o fix incorrect unlock of the buffer mutex (for deferred callbacks) (2b4d127d) 147bf0cf6ecSPierce Lopez o Fix wrong assert in evbuffer_drain() (9f4d0dce) 148b5126dbeSAzat Khuzhin 149b5126dbeSAzat Khuzhin cmake: 150b5126dbeSAzat Khuzhin o fix checking of devpoll backend (like in autotools, by devpoll.h existence) (7f161902) 151b5126dbeSAzat Khuzhin o support static runtime (MSVC) (c8b3ec17, 61fb055a) 152bf0cf6ecSPierce Lopez o do not build both (SHARED and STATIC) for MSVC/win32 (bc7f2fd9) 153bf0cf6ecSPierce Lopez o introduce EVENT__LIBRARY_TYPE option (eb10a738) 154b5126dbeSAzat Khuzhin o ensure windows dll's are installed as well as lib files (29590718) 155b5126dbeSAzat Khuzhin o Fix generation of LibeventConfig.cmake for the installation tree (7fa08c4b) 156bf0cf6ecSPierce Lopez o fix pkgconfig generation (copy-paste typo) (cc554d87) 157bf0cf6ecSPierce Lopez o Merge branch 'cmake-missing-bits' (9806b126) 158b5126dbeSAzat Khuzhin o Fix detection of timerfd_create() in CMake. (e50af331) 159bf0cf6ecSPierce Lopez o Merge branch 'cmake-configure-fixes-v2' (a0bfe2c4) 160bf0cf6ecSPierce Lopez o Do not add epoll_sub (syscall wrappers) for epoll in cmake (cea61de6) 161b5126dbeSAzat Khuzhin o Fix RPATH for APPLE (45b1f379) 162b5126dbeSAzat Khuzhin 163b5126dbeSAzat Khuzhin autotools: 164bf0cf6ecSPierce Lopez o include win32 specific headers for socklen_t detection on win32/mingw (d7579fb9) 165bf0cf6ecSPierce Lopez o Ignore evconfig-private.h for autotools (37423849) 166b5126dbeSAzat Khuzhin o config.h can't be prefixed unconditionally (63a054f8) 167bf0cf6ecSPierce Lopez o Merge branch 'pull-628' (7e56c8b2) 168b5126dbeSAzat Khuzhin o Provide Makefile variables LIBEVENT_{CFLAGS,CPPFLAGS,LDFLAGS} (2f060c5f) 169b5126dbeSAzat Khuzhin o confirm openssl is working before using (b39ccf8e) 170b5126dbeSAzat Khuzhin o pass $(OPENSSL_INCS) for samples (FTBFS macOS) (c2495265) 171b5126dbeSAzat Khuzhin o Add configure check for midipix (d433201e) 172b5126dbeSAzat Khuzhin o Fix tests with detached builds (c46ff439) 173b5126dbeSAzat Khuzhin 174b5126dbeSAzat Khuzhin build: 175bf0cf6ecSPierce Lopez o Fix arc4random_addrandom() detecting and fallback (regression) (303d6d77) 176bf0cf6ecSPierce Lopez o Merge branch 'win32-fixes' (ebd12e6d) 177bf0cf6ecSPierce Lopez o Merge branch 'fix-openssl-linking' (e7bd9e03) 178bf0cf6ecSPierce Lopez o Merge branch 'fix-struct-linger' (8567f2f5) 179b5126dbeSAzat Khuzhin 180b5126dbeSAzat Khuzhin CI: 181b5126dbeSAzat Khuzhin o travis-ci/appveyor now uses fast_finish+allow_failures 182b5126dbeSAzat Khuzhin (5e97b6e6, dd472e7d, dfb5fc167) 183b5126dbeSAzat Khuzhin o Merge branch 'travis-ci-osx-fixes' (9f02b39c) 184b5126dbeSAzat Khuzhin o Merge branch 'win64-fixes' (aee0fcd5) 185b5126dbeSAzat Khuzhin 186b5126dbeSAzat Khuzhin 187d9eb42e0SAzat KhuzhinChanges in version 2.1.8-stable (22 January 2017) 188d9eb42e0SAzat Khuzhin 189d9eb42e0SAzat Khuzhin Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using 190d9eb42e0SAzat Khuzhin bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased 191d9eb42e0SAzat Khuzhin timeout for some tests (to reduce number of failures due to timing issues), 192d9eb42e0SAzat Khuzhin date in RFC1123 format and running tests in parallel. 193d9eb42e0SAzat Khuzhin 194d9eb42e0SAzat Khuzhin There are highlighted changes above. 195d9eb42e0SAzat Khuzhin 196d9eb42e0SAzat Khuzhin Build fixes: 197d9eb42e0SAzat Khuzhin o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin) 198d9eb42e0SAzat Khuzhin o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin) 199d9eb42e0SAzat Khuzhin o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin) 200d9eb42e0SAzat Khuzhin o evutil_time: include <unistd.h> when there is only sleep()/usleep() (3e75194c Azat Khuzhin) 201d9eb42e0SAzat Khuzhin o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin) 202d9eb42e0SAzat Khuzhin Testing environment: 203d9eb42e0SAzat Khuzhin o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*) (59e217df Azat Khuzhin) 204d9eb42e0SAzat Khuzhin Vagrant env fixes: 205d9eb42e0SAzat Khuzhin o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin) 206d9eb42e0SAzat Khuzhin o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin) 207d9eb42e0SAzat Khuzhin o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin) 208d9eb42e0SAzat Khuzhin o vagrant: add centos box (ca591c5b Azat Khuzhin) 209d9eb42e0SAzat Khuzhin Tests: 210d9eb42e0SAzat Khuzhin o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin) 211d9eb42e0SAzat Khuzhin o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin) 212d9eb42e0SAzat Khuzhin o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin) 213d9eb42e0SAzat Khuzhin o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin) 214d9eb42e0SAzat Khuzhin Bugfixes: 215d9eb42e0SAzat Khuzhin o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin) 216d9eb42e0SAzat Khuzhin o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin) 217d9eb42e0SAzat Khuzhin o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin) 218d9eb42e0SAzat Khuzhin o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin) 219d9eb42e0SAzat Khuzhin o Fix incorrect MIME type (23f9a20e johnsonlee) 220d9eb42e0SAzat Khuzhin Trivial fixes: 221d9eb42e0SAzat Khuzhin Documentation updates: 222d9eb42e0SAzat Khuzhin o Update README.md (3821cca1 Breaker) 223d9eb42e0SAzat Khuzhin 224d9eb42e0SAzat Khuzhin 22513ea9f5eSAzat KhuzhinChanges in version 2.1.7-rc (2 Novemer 2016) 22613ea9f5eSAzat Khuzhin 22713ea9f5eSAzat Khuzhin Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements 22813ea9f5eSAzat Khuzhin and plus Vagrantfile for testing under multiple OS'es. 22913ea9f5eSAzat Khuzhin 23013ea9f5eSAzat Khuzhin 23113ea9f5eSAzat Khuzhin Continious Integration: 23213ea9f5eSAzat Khuzhin o Use coveralls.io via travis (9ac000c Azat Khuzhin) 23313ea9f5eSAzat Khuzhin o travis-ci: use container-based infrastructure (7e12e96 Azat Khuzhin) 23413ea9f5eSAzat Khuzhin o travis-ci/osx: fix compiling/linking openssl libraries (9d2f8d4 Azat Khuzhin) 23513ea9f5eSAzat Khuzhin o travis-ci: use gcc-5 (fixes osx|gcc failures) (d7ceae5 Azat Khuzhin) 23613ea9f5eSAzat Khuzhin o Testing with vagrant for 6 OS and cmake+autoconf (9585338 Azat Khuzhin) 23713ea9f5eSAzat Khuzhin o travis-ci/osx: install lcov (e4e099b Azat Khuzhin) 23813ea9f5eSAzat Khuzhin 23913ea9f5eSAzat Khuzhin Build Improvements/Fixes: 24013ea9f5eSAzat Khuzhin o Fix cmake -DEVENT__COVERAGE=ON (40fbffc Azat Khuzhin) 24113ea9f5eSAzat Khuzhin o autogen.sh: learn about gmake (9376ac4 Azat Khuzhin) 24213ea9f5eSAzat Khuzhin o autogen.sh: remove all autoconf/automake caches, if any (69cce25 Azat Khuzhin) 24313ea9f5eSAzat Khuzhin o cmake: fix finding python2, and check that it is really 2 (3453c08 Azat Khuzhin) 24413ea9f5eSAzat Khuzhin o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin) 24513ea9f5eSAzat Khuzhin o cmake: cleanup (dc624ad Zonr Chang) 24613ea9f5eSAzat Khuzhin o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin) 24713ea9f5eSAzat Khuzhin o cmake: use PYTHON_EXECUTABLE to find python2 (a4d044c Azat Khuzhin) 24813ea9f5eSAzat Khuzhin o Merge branch 'force-disable-clockgettime' (83c7cdf Azat Khuzhin) 24913ea9f5eSAzat Khuzhin 25013ea9f5eSAzat Khuzhin Code Improvements (core) 25113ea9f5eSAzat Khuzhin o use ev_uint16_t instead of unsigned short for port (e983712 Thomas Bernard) 25213ea9f5eSAzat Khuzhin o Merge branch 'contrib-guide-v2' (b9c5077 Azat Khuzhin) 25313ea9f5eSAzat Khuzhin o poll: Prevent libevent from spinning if POLLNVAL occurs (675974c Tim Hentenaar) 25413ea9f5eSAzat Khuzhin 25513ea9f5eSAzat Khuzhin Testing: 25613ea9f5eSAzat Khuzhin o test/regress: cover a polling of invalid fd (cb0df5c Tim Hentenaar) 25713ea9f5eSAzat Khuzhin 25813ea9f5eSAzat Khuzhin Code Improvements (bufferevent_openssl) 25913ea9f5eSAzat Khuzhin o Make it build using OpenSSL 1.1.0 (3e9e0a0 Kurt Roeckx) 26013ea9f5eSAzat Khuzhin o Don't call BIO_number_{read|written} on NULL BIOs. (6702da1 Adam Langley) 26113ea9f5eSAzat Khuzhin o Switch from a 512 to 2048-bit RSA key. (f9803a6 Adam Langley) 26213ea9f5eSAzat Khuzhin 26313ea9f5eSAzat Khuzhin Trivial fixes: 26413ea9f5eSAzat Khuzhin o Ignore temporary configure files (8fb08ae Azat Khuzhin) 26513ea9f5eSAzat Khuzhin o README.md: fix typo: ar -> are (2361616 Simone Basso) 26613ea9f5eSAzat Khuzhin o be: just a simple mistake, reinclude the <errno.h> (7521664 Seven) 26713ea9f5eSAzat Khuzhin 268ea2cee72SAzat KhuzhinChanges in version 2.1.6-beta (4 July 2016) 269ea2cee72SAzat Khuzhin 27081d21932SAzat Khuzhin Libevent 2.1.6-beta contains mostly bug fixes (evbuffers, evthread, evdns, 27181d21932SAzat Khuzhin bufferevents, core, http, samples), improvements but mostly to fix some 27281d21932SAzat Khuzhin possible issues (EVHTTP_CON_LINGERING_CLOSE), a lot of new unit tests and new 27381d21932SAzat Khuzhin appveyor integration. 27481d21932SAzat Khuzhin 275ea2cee72SAzat Khuzhin Security Fixes (utils) 276ea2cee72SAzat Khuzhin o evutil_parse_sockaddr_port(): fix buffer overflow (329acc1 Azat Khuzhin) 277ea2cee72SAzat Khuzhin 278ea2cee72SAzat Khuzhin Security Fixes (evdns) 279ea2cee72SAzat Khuzhin o evdns: name_parse(): fix remote stack overread (96f64a0 Azat Khuzhin) 280ea2cee72SAzat Khuzhin o evdns: fix searching empty hostnames (ec65c42 Azat Khuzhin) 281ea2cee72SAzat Khuzhin 282ea2cee72SAzat Khuzhin New APIs (evdns) 283ea2cee72SAzat Khuzhin o New function to get address for nameserver. (537177d Nick Mathewson) 284ea2cee72SAzat Khuzhin 285ea2cee72SAzat Khuzhin New APIs (bufferevents) 286ea2cee72SAzat Khuzhin o expose bufferevent_incref/decref (with fewer modifications) (1ed6718 Mark Ellzey) 287ea2cee72SAzat Khuzhin 288ea2cee72SAzat Khuzhin New APIs (internal) 289ea2cee72SAzat Khuzhin o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin) 290ea2cee72SAzat Khuzhin 291ea2cee72SAzat Khuzhin New APIs/Improvements (http) 292ea2cee72SAzat Khuzhin o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin) 293ea2cee72SAzat Khuzhin o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin) 294ea2cee72SAzat Khuzhin o http: read server response even after server closed the connection (680742e Azat Khuzhin) 295ea2cee72SAzat Khuzhin o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin) 296ea2cee72SAzat Khuzhin o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin) 297ea2cee72SAzat Khuzhin o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin) 298ea2cee72SAzat Khuzhin 299ea2cee72SAzat Khuzhin Bugfixes (core) 300ea2cee72SAzat Khuzhin o Fix getaddrinfo under solaris (for multiprotocol case) (40730ae Azat Khuzhin) 301ea2cee72SAzat Khuzhin o Check for Mac OS X 10.4 kqueue bug properly (df6f99e Mark Mentovai) 302ea2cee72SAzat Khuzhin o event_reinit: make signals works after fork() without evsig_add() (88640aa Nicholas Marriott) 303ea2cee72SAzat Khuzhin o event_reinit: always re-init signal's socketpair (ad0c237 Nicholas Marriott) 304ea2cee72SAzat Khuzhin o Free event queues even for recursive finalizers (7c8d015 Azat Khuzhin) 305ea2cee72SAzat Khuzhin o Fix checking for make_base_notifiable() (f337296 Azat Khuzhin) 306ea2cee72SAzat Khuzhin o Set correct socklen for PF_INET6 sockaddr len (3499ad9 Mark Ellzey) 307ea2cee72SAzat Khuzhin o Fix garbage value in socketpair util function, stdint? (043ae74 Mark Ellzey) 308ea2cee72SAzat Khuzhin o fix the return value of event_deferred_cb_schedule_ (38cef64 Greg Hazel) 309ea2cee72SAzat Khuzhin o event_free_debug_globals_locks(): disable lock debugging (e5c87d1 Azat Khuzhin) 310ea2cee72SAzat Khuzhin o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin) 311ea2cee72SAzat Khuzhin o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin) 312ea2cee72SAzat Khuzhin 313ea2cee72SAzat Khuzhin Bugfixes (evthread) 314ea2cee72SAzat Khuzhin o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin) 315ea2cee72SAzat Khuzhin o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin) 316ea2cee72SAzat Khuzhin 317ea2cee72SAzat Khuzhin Bugfixes (evdns) 318ea2cee72SAzat Khuzhin o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin) 319ea2cee72SAzat Khuzhin o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin) 320ea2cee72SAzat Khuzhin o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin) 321ea2cee72SAzat Khuzhin o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin) 322ea2cee72SAzat Khuzhin 323ea2cee72SAzat Khuzhin Bugfixes (bufferevents) 324ea2cee72SAzat Khuzhin o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin) 325ea2cee72SAzat Khuzhin o be_filter: avoid data stuck under active watermarks (b627ad8 Eduardo Panisset) 326ea2cee72SAzat Khuzhin o Fix bufferevent_pair to properly set BEV_EVENT_{READING,WRITING} on flush. (2851889 David Paschich) 327ea2cee72SAzat Khuzhin o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin) 328ea2cee72SAzat Khuzhin o be_sock: cancel in-progress dns requests (86dfd2c Azat Khuzhin) 329ea2cee72SAzat Khuzhin o be_sock: unfreeze buffers on fd changing (255525d Azat Khuzhin) 330ea2cee72SAzat Khuzhin o be_sock: bufferevent_socket_connect_hostname(): make it thread-safe (809bb39 Azat Khuzhin) 331ea2cee72SAzat Khuzhin o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin) 332ea2cee72SAzat Khuzhin o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin) 333ea2cee72SAzat Khuzhin o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin) 334ea2cee72SAzat Khuzhin o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan) 335ea2cee72SAzat Khuzhin o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin) 336ea2cee72SAzat Khuzhin o be_openssl: don't call set_open_callbacks() if fd == -1 (e8a2da9 Azat Khuzhin) 337ea2cee72SAzat Khuzhin o be_openssl: get rid off hackish "fd_is_set", to fix some corner cases (40b0379 Azat Khuzhin) 338ea2cee72SAzat Khuzhin o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin) 339ea2cee72SAzat Khuzhin o Call underlying bev ctrl SET_FD on filtered bufferevents (c2aa7dc Mark Ellzey) 340ea2cee72SAzat Khuzhin o be_pair: release shared lock with the latest of bufferevent_pair (92a359e Azat Khuzhin) 341ea2cee72SAzat Khuzhin 342ea2cee72SAzat Khuzhin Bugfixes (http) 343ea2cee72SAzat Khuzhin o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey) 344ea2cee72SAzat Khuzhin o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin) 345ea2cee72SAzat Khuzhin o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin) 346ea2cee72SAzat Khuzhin o http: avoid leaking of fd in evhttp_connection_free() (f0e1341 Azat Khuzhin) 347ea2cee72SAzat Khuzhin o http: get fd from be layer during connection reset (4a53c54 Azat Khuzhin) 348ea2cee72SAzat Khuzhin o http: fix EVHTTP_CON_READ_ON_WRITE_ERROR when it doesn't supported by OS (2ff164a Azat Khuzhin) 349ea2cee72SAzat Khuzhin o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin) 350ea2cee72SAzat Khuzhin o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin) 351ea2cee72SAzat Khuzhin o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin) 352ea2cee72SAzat Khuzhin o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin) 353ea2cee72SAzat Khuzhin o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin) 354ea2cee72SAzat Khuzhin o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin) 355ea2cee72SAzat Khuzhin o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin) 356ea2cee72SAzat Khuzhin o http: fix detecting EOF without write (7ed02ac Azat Khuzhin) 357ea2cee72SAzat Khuzhin o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl) 358ea2cee72SAzat Khuzhin o Fix evhttp_uriencode() regression. (c6b1ec1 Mark Ellzey) 359ea2cee72SAzat Khuzhin o removed unused vars (e94250c Mark Ellzey) 360ea2cee72SAzat Khuzhin o pointer overflow checks for evhttp_uriencode (72afe4c Zonr Chang) 361ea2cee72SAzat Khuzhin 362ea2cee72SAzat Khuzhin Bugfixes (evbuffers) 363ea2cee72SAzat Khuzhin o buffer: fix overflow check in evbuffer_expand_singlechain() (a3f4ccd Azat Khuzhin) 364ea2cee72SAzat Khuzhin o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin) 365ea2cee72SAzat Khuzhin o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin) 366ea2cee72SAzat Khuzhin o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault) 367ea2cee72SAzat Khuzhin o evbuffer_add: Use last_with_datap if set, not last. (a8769ef Marcus Sundberg) 368ea2cee72SAzat Khuzhin o EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD (8674e4f jer-gentoo) 369ea2cee72SAzat Khuzhin 370ea2cee72SAzat Khuzhin Bugfixes (evconnlistener) 371ea2cee72SAzat Khuzhin o listener: unlock lev on error in listener_read_cb() (2a71b33 Azat Khuzhin) 372ea2cee72SAzat Khuzhin o Fix potential fd leak in listener_read_cb() (a695a72 Mark Ellzey) 373ea2cee72SAzat Khuzhin 374ea2cee72SAzat Khuzhin Testing 375ea2cee72SAzat Khuzhin o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin) 376ea2cee72SAzat Khuzhin o test: replace sleeping with syncing pair in main/fork (16d220c Azat Khuzhin) 377ea2cee72SAzat Khuzhin o test/http: do not run tests that based on backlog filling (freebsd) (500b6b7 Azat Khuzhin) 378ea2cee72SAzat Khuzhin o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin) 379ea2cee72SAzat Khuzhin o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin) 380ea2cee72SAzat Khuzhin o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin) 381ea2cee72SAzat Khuzhin o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin) 382ea2cee72SAzat Khuzhin o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin) 383ea2cee72SAzat Khuzhin o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin) 384ea2cee72SAzat Khuzhin o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin) 385ea2cee72SAzat Khuzhin o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin) 386ea2cee72SAzat Khuzhin o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset) 387ea2cee72SAzat Khuzhin o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin) 388ea2cee72SAzat Khuzhin o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (aabf1c2 Azat Khuzhin) 389ea2cee72SAzat Khuzhin o test/buffer: fix leak in test_evbuffer_prepend() (c08d90b Azat Khuzhin) 390ea2cee72SAzat Khuzhin o test/buffer: avoid errors with --no-fork (reinitialize static vars) (e7d1e39 Azat Khuzhin) 391ea2cee72SAzat Khuzhin o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin) 392ea2cee72SAzat Khuzhin o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin) 393ea2cee72SAzat Khuzhin o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin) 394ea2cee72SAzat Khuzhin o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin) 395ea2cee72SAzat Khuzhin o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg) 396ea2cee72SAzat Khuzhin o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin) 397ea2cee72SAzat Khuzhin o test/http: localize evhttp server structure (cbc3209 Azat Khuzhin) 398ea2cee72SAzat Khuzhin o test/dns: regression for empty hostname (d7348ba Azat Khuzhin) 399ea2cee72SAzat Khuzhin o test/http: fix SERVER_TIMEOUT tests under win32 (d49a658 Azat Khuzhin) 400ea2cee72SAzat Khuzhin o test/http: add a helper for creating timedout/failed request (376f107 Azat Khuzhin) 401ea2cee72SAzat Khuzhin o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin) 402ea2cee72SAzat Khuzhin o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin) 403ea2cee72SAzat Khuzhin o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin) 404ea2cee72SAzat Khuzhin o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin) 405ea2cee72SAzat Khuzhin o regress_clean_dnsserver(): reset global port vars (351207f Azat Khuzhin) 406ea2cee72SAzat Khuzhin o test/http: read_on_write_error: fix it for win32 (3b58169 Azat Khuzhin) 407ea2cee72SAzat Khuzhin o test/http: separate coverage for EVHTTP_CON_READ_ON_WRITE_ERROR (5c2b4c1 Azat Khuzhin) 408ea2cee72SAzat Khuzhin o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin) 409ea2cee72SAzat Khuzhin o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin) 410ea2cee72SAzat Khuzhin o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin) 411ea2cee72SAzat Khuzhin o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin) 412ea2cee72SAzat Khuzhin o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin) 413ea2cee72SAzat Khuzhin o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin) 414ea2cee72SAzat Khuzhin o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin) 415ea2cee72SAzat Khuzhin o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin) 416ea2cee72SAzat Khuzhin o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin) 417ea2cee72SAzat Khuzhin o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc (f062bbe Azat Khuzhin) 418ea2cee72SAzat Khuzhin o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin) 419ea2cee72SAzat Khuzhin o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin) 420ea2cee72SAzat Khuzhin o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin) 421ea2cee72SAzat Khuzhin o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin) 422ea2cee72SAzat Khuzhin o test/dns: check exit code of evdns_getaddrinfo() (0b9d432 Azat Khuzhin) 423ea2cee72SAzat Khuzhin o test/dns: cover evdns_getaddrinfo() and evdns_base_free() with @fail_requests (4ad3483 Azat Khuzhin) 424ea2cee72SAzat Khuzhin o test/dns: cover @fail_requests for evdns_base_free() (d6c6fb4 Azat Khuzhin) 425ea2cee72SAzat Khuzhin o test/dns: more graceful coverage of @fail_requests (123d372 Azat Khuzhin) 426ea2cee72SAzat Khuzhin o test/ssl: cover busy-loop (i.e. {read,write}-blocked-on-{write,read} stuff) (da0ea7a Azat Khuzhin) 427ea2cee72SAzat Khuzhin o test/http: write_during_read for https (23c77b6 Azat Khuzhin) 428ea2cee72SAzat Khuzhin o test/http: connection_fail for https (7ea26f7 Azat Khuzhin) 429ea2cee72SAzat Khuzhin o test/http: stream_out for https (ac04968 Azat Khuzhin) 430ea2cee72SAzat Khuzhin o test/http: chunk_out for https (a71ffb9 Azat Khuzhin) 431ea2cee72SAzat Khuzhin o test/regress: fix ssl-less builds (need to make this prettier) (3160716 Azat Khuzhin) 432ea2cee72SAzat Khuzhin o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin) 433ea2cee72SAzat Khuzhin o test/http: https basic (59714b4 Azat Khuzhin) 434ea2cee72SAzat Khuzhin o test/http: incomplete{,_timeout} for https (615490d Azat Khuzhin) 435ea2cee72SAzat Khuzhin o test/http: add simplest test for http/https/https_dirty_shutdown (93b19dc Azat Khuzhin) 436ea2cee72SAzat Khuzhin o test/http: https: retry coverage (7c2d24a Azat Khuzhin) 437ea2cee72SAzat Khuzhin o test/http: https server support (plus some helpers) (a7088ad Azat Khuzhin) 438ea2cee72SAzat Khuzhin o test/http: more sanity checks (a27c53c Azat Khuzhin) 439ea2cee72SAzat Khuzhin o test/ssl: export getkey()/getcert()/get_ssl_ctx()/init_ssl() for https (0c4c387 Azat Khuzhin) 440ea2cee72SAzat Khuzhin o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin) 441ea2cee72SAzat Khuzhin o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin) 442ea2cee72SAzat Khuzhin o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin) 443ea2cee72SAzat Khuzhin o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin) 444ea2cee72SAzat Khuzhin o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin) 445ea2cee72SAzat Khuzhin o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin) 446ea2cee72SAzat Khuzhin o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin) 447ea2cee72SAzat Khuzhin o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin) 448ea2cee72SAzat Khuzhin o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin) 449ea2cee72SAzat Khuzhin o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin) 450ea2cee72SAzat Khuzhin o test/regress_be: introduce fake_listener_create() (37dc9e0 Azat Khuzhin) 451ea2cee72SAzat Khuzhin o test/regress_http: cover evhttp_request_own() (6f6fa0d Azat Khuzhin) 452ea2cee72SAzat Khuzhin o test/regress_http: cover write during read (3d15aeb Azat Khuzhin) 453ea2cee72SAzat Khuzhin o test/regress_http: verify that closecb will be called without multiple write (4be6c70 Azat Khuzhin) 454ea2cee72SAzat Khuzhin o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin) 455ea2cee72SAzat Khuzhin o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin) 456ea2cee72SAzat Khuzhin o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin) 457ea2cee72SAzat Khuzhin o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin) 458ea2cee72SAzat Khuzhin o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin) 459ea2cee72SAzat Khuzhin o test/regress_ssl: cover fd manipulations (b78a829 Azat Khuzhin) 460ea2cee72SAzat Khuzhin o test/regress_ssl: convert open_ssl_bufevs() to mask (46bba73 Azat Khuzhin) 461ea2cee72SAzat Khuzhin o test/regress_ssl: convert client/server to mask too (3455991 Azat Khuzhin) 462ea2cee72SAzat Khuzhin o test/regress_ssl: cover "allow_dirty_shutdown" (0430327 Azat Khuzhin) 463ea2cee72SAzat Khuzhin o test/regress_ssl: convert regress_bufferevent_openssl() to bitmask (342e116 Azat Khuzhin) 464ea2cee72SAzat Khuzhin o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin) 465ea2cee72SAzat Khuzhin o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin) 466ea2cee72SAzat Khuzhin o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin) 467ea2cee72SAzat Khuzhin o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin) 468ea2cee72SAzat Khuzhin o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin) 469ea2cee72SAzat Khuzhin 470ea2cee72SAzat Khuzhin Sample code 471ea2cee72SAzat Khuzhin o Fix memory leak in signal-test.c (666db91 basavesh.as) 472ea2cee72SAzat Khuzhin o sample/hello-world: exAmple, not eXMple (2d3cd35 kirillDanshin) 473ea2cee72SAzat Khuzhin o dns-example: allow to set ns from args (df19a97 Azat Khuzhin) 474ea2cee72SAzat Khuzhin o dns-example: convert to getopt() (32f8592 Azat Khuzhin) 475ea2cee72SAzat Khuzhin o http-connect: make it win32 compilable (1bf7595 Azat Khuzhin) 476ea2cee72SAzat Khuzhin o sample/https-client: allow to change path to ca-certificates (fdf713a Azat Khuzhin) 477ea2cee72SAzat Khuzhin o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin) 478ea2cee72SAzat Khuzhin o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin) 479ea2cee72SAzat Khuzhin o sample/https-client: add -timeout option (4637aa8 Azat Khuzhin) 480ea2cee72SAzat Khuzhin o sample/https-client: don't try to free uninitialized SSL (f3d7ff5 Azat Khuzhin) 481ea2cee72SAzat Khuzhin o sample/https-client: graceful exit with freeing memory (to make valgrind happy) (24a1f25 Azat Khuzhin) 482ea2cee72SAzat Khuzhin o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin) 483ea2cee72SAzat Khuzhin o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin) 484ea2cee72SAzat Khuzhin o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin) 485ea2cee72SAzat Khuzhin o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin) 486ea2cee72SAzat Khuzhin o Update dns-example. (620ff24 Mark Ellzey) 487ea2cee72SAzat Khuzhin 488ea2cee72SAzat Khuzhin Documentation 489ea2cee72SAzat Khuzhin o Update README.md (b8ec70c Mark Ellzey) 490ea2cee72SAzat Khuzhin o Update README.md (80faee9 Mark Ellzey) 491ea2cee72SAzat Khuzhin o Update README.md (ad4a897 Mark Ellzey) 492ea2cee72SAzat Khuzhin o Update README.md (a2b2e1e Mark Ellzey) 493ea2cee72SAzat Khuzhin o Update README.md (0dfa5dc Mark Ellzey) 494ea2cee72SAzat Khuzhin 495ea2cee72SAzat Khuzhin Code Improvements (evthread) 496ea2cee72SAzat Khuzhin o evthread: add evthread_get_{lock,condition}_callbacks() helpers (c0b34f6 Azat Khuzhin) 497ea2cee72SAzat Khuzhin 498ea2cee72SAzat Khuzhin Code Improvements (core) 499ea2cee72SAzat Khuzhin o util: make @sa const for evutil_socket_connect_() (a8d32c2 Azat Khuzhin) 500ea2cee72SAzat Khuzhin 501ea2cee72SAzat Khuzhin Code Improvements (http) 502ea2cee72SAzat Khuzhin o http: assert's that evbuffer_drain() success on connection reset (2185e63 Azat Khuzhin) 503ea2cee72SAzat Khuzhin o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin) 504ea2cee72SAzat Khuzhin o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin) 505ea2cee72SAzat Khuzhin 506ea2cee72SAzat Khuzhin Code Improvements (bufferevents) 507ea2cee72SAzat Khuzhin o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin) 508ea2cee72SAzat Khuzhin o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin) 509ea2cee72SAzat Khuzhin o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin) 510ea2cee72SAzat Khuzhin o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin) 511ea2cee72SAzat Khuzhin o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin) 512ea2cee72SAzat Khuzhin o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin) 513ea2cee72SAzat Khuzhin 514ea2cee72SAzat Khuzhin Cleanups (core) 515ea2cee72SAzat Khuzhin o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths) 516ea2cee72SAzat Khuzhin o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin) 517ea2cee72SAzat Khuzhin o tab (6e7a580 Greg Hazel) 518ea2cee72SAzat Khuzhin 519ea2cee72SAzat Khuzhin Cleanups (evbuffers) 520ea2cee72SAzat Khuzhin o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin) 521ea2cee72SAzat Khuzhin 522ea2cee72SAzat Khuzhin Cleanups (bufferevents) 523ea2cee72SAzat Khuzhin o be_sock: evutil_getaddrinfo_async_() always return 0 (dbff101 Azat Khuzhin) 524ea2cee72SAzat Khuzhin o be_sock: drop be_sock_add() macro (useless and debug unfriendly) (fad5fe2 Azat Khuzhin) 525ea2cee72SAzat Khuzhin o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin) 526ea2cee72SAzat Khuzhin o be: add_event: use evutil_timerisset() (a96b73b Azat Khuzhin) 527ea2cee72SAzat Khuzhin o be_openssl: introduce be_openssl_auto_fd() helper (2a8a711 Azat Khuzhin) 528ea2cee72SAzat Khuzhin o be_openssl: introduce set_open_callbacks_auto() (510da71 Azat Khuzhin) 529ea2cee72SAzat Khuzhin 530ea2cee72SAzat Khuzhin Cleanups (http) 531ea2cee72SAzat Khuzhin o http: make fallback for EVHTTP_CON_READ_ON_WRITE_ERROR more cleaner (d405492 Azat Khuzhin) 532ea2cee72SAzat Khuzhin o http: coding style issue (365f181 Azat Khuzhin) 533ea2cee72SAzat Khuzhin 534ea2cee72SAzat Khuzhin Cleanups (evdns) 535ea2cee72SAzat Khuzhin o evnds: inline TEST_NAME macro to make debuggin easier (0c615f4 Azat Khuzhin) 536ea2cee72SAzat Khuzhin 537ea2cee72SAzat Khuzhin Portability Fixes 538ea2cee72SAzat Khuzhin o [#372] check for errno.h (3031617 Mark Ellzey) 539ea2cee72SAzat Khuzhin o Fixed Unicode issue in error messages. (e8b7895 Mattes D) 540ea2cee72SAzat Khuzhin o Assume that ke_udata is an integer type on CloudABI. (5602e45 Ed Schouten) 541ea2cee72SAzat Khuzhin o Add missing include of <netinet/in.h>. (b2c68bc Ed Schouten) 542ea2cee72SAzat Khuzhin o Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally. (c1404b5 Ed Schouten) 543ea2cee72SAzat Khuzhin o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten) 544ea2cee72SAzat Khuzhin o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley) 545ea2cee72SAzat Khuzhin o Don't use BSD u_* types. (fd36647 Ed Schouten) 546ea2cee72SAzat Khuzhin o Remove BSD-ism: TIMEVAL_TO_TIMESPEC(). (193c7de Ed Schouten) 547ea2cee72SAzat Khuzhin o be: include all variations of headers for sockaddr_in6 struct (c212291 Azat Khuzhin) 548ea2cee72SAzat Khuzhin o be: fix sockaddr_in6 type definition for win32 (c42bc6b Azat Khuzhin) 549ea2cee72SAzat Khuzhin 550ea2cee72SAzat Khuzhin Continious Integration: 551ea2cee72SAzat Khuzhin o travis: split long lines, and make it cleaner (685a6a1 Azat Khuzhin) 552ea2cee72SAzat Khuzhin o travis: fix autotools on osx by reinstalling libtool (088ea5e Azat Khuzhin) 553ea2cee72SAzat Khuzhin o appveyor/autotools: link with openssl by passing LDFLAGS/CFLAGS (6fcfa25 Azat Khuzhin) 554ea2cee72SAzat Khuzhin o appveyor: image already had openssl installed (4634b85 Azat Khuzhin) 555ea2cee72SAzat Khuzhin o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin) 556ea2cee72SAzat Khuzhin o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin) 557ea2cee72SAzat Khuzhin o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin) 558ea2cee72SAzat Khuzhin o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin) 559ea2cee72SAzat Khuzhin o travis-ci/osx: relink gcc/g++ instead of clang (481481d Azat Khuzhin) 560ea2cee72SAzat Khuzhin o travis-ci: enable multi-os mode (osx, linux) (79917e4 Azat Khuzhin) 561ea2cee72SAzat Khuzhin o travis-ci: increase matrix (--disable-foo) (59649f7 Azat Khuzhin) 562ea2cee72SAzat Khuzhin o travis-ci: adjust alignment (c8be339 Azat Khuzhin) 563ea2cee72SAzat Khuzhin o travis: add builds without debug mode into matrix (3e56da2 Azat Khuzhin) 564ea2cee72SAzat Khuzhin o test: run regress with EVENT_DEBUG_MODE=1 and without (cf2cf2a Azat Khuzhin) 565ea2cee72SAzat Khuzhin o Update travis config for status updates (37453ab Mark Ellzey) 566ea2cee72SAzat Khuzhin o Use autotools for appveyor until cmake is fixed. (1cc2e29 Mark Ellzey) 567ea2cee72SAzat Khuzhin o Fix the link for appveyor OpenSSL installer (WIN32) (107d565 Mark Ellzey) 568ea2cee72SAzat Khuzhin o Forgot to install OpenSSL for appveyor (26164a5 Joakim Söderberg) 569ea2cee72SAzat Khuzhin o Add support for appveyor.com windows CI (5f89c37 Joakim Söderberg) 570ea2cee72SAzat Khuzhin 571ea2cee72SAzat Khuzhin Build Improvements/Fixes: 572ea2cee72SAzat Khuzhin o evutil: mark ai_find_protocol() static (prototype-less) (5a157c8 Azat Khuzhin) 573ea2cee72SAzat Khuzhin o cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections (dc95823 Azat Khuzhin) 574ea2cee72SAzat Khuzhin o cmake/solaris: fix building (link with socket,nsl) (050bfc7 Azat Khuzhin) 575ea2cee72SAzat Khuzhin o cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers (c4dfb93 Azat Khuzhin) 576ea2cee72SAzat Khuzhin o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin) 577ea2cee72SAzat Khuzhin o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin) 578ea2cee72SAzat Khuzhin o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin) 579ea2cee72SAzat Khuzhin o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin) 580ea2cee72SAzat Khuzhin o cmake: do not use stderr for notifications/version-info (38716c6 Azat Khuzhin) 581ea2cee72SAzat Khuzhin o autoconf: fix --disable-thread-support build under win32 (bb09535 Azat Khuzhin) 582ea2cee72SAzat Khuzhin o buffer: don't mix code and declarations (8892f4c Azat Khuzhin) 583ea2cee72SAzat Khuzhin o Update gitignore file to ignore cscope gen'ed files (0aaa4fb Neeraj Badlani) 584ea2cee72SAzat Khuzhin o For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid (b5ca365 Rainer Keller) 585ea2cee72SAzat Khuzhin o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin) 586ea2cee72SAzat Khuzhin o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin) 587ea2cee72SAzat Khuzhin o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin) 588ea2cee72SAzat Khuzhin o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen) 589ea2cee72SAzat Khuzhin o Ignore verify_tests.bat (win32 version) (0f2de10 Azat Khuzhin) 590ea2cee72SAzat Khuzhin o cmake: require 3.1 only for win32 to make it work under ubunty precise (87f7238 Azat Khuzhin) 591ea2cee72SAzat Khuzhin o cmake: require at least 3.1 for target_sources() (c46ead5 Azat Khuzhin) 592ea2cee72SAzat Khuzhin o cmake: fix adding of compiler flags, and now it will (36588e1 Azat Khuzhin) 593ea2cee72SAzat Khuzhin o Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too (f29f59e Azat Khuzhin) 594ea2cee72SAzat Khuzhin o test/regress_ssl: Fix compile problems for win32 (73d0360 Trond Norbye) 595ea2cee72SAzat Khuzhin o util: fix "%zu" format on TDM-gcc/MinGW-w64 (79b69d8 Azat Khuzhin) 596ea2cee72SAzat Khuzhin o cmake: don't define EVENT__NEED_DLLIMPORT always (fixes VS2013 static build) (49bd790 Azat Khuzhin) 597ea2cee72SAzat Khuzhin o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson) 598ea2cee72SAzat Khuzhin o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin) 599ea2cee72SAzat Khuzhin o visibility: align it to make it more readable (bb6b53d Azat Khuzhin) 600ea2cee72SAzat Khuzhin o cmake: Fix detection of ssize_t/SSIZE_T (7707f6b Azat Khuzhin) 601ea2cee72SAzat Khuzhin o Ignore more configure stuff (configure.lineno) (8d34302 Azat Khuzhin) 602ea2cee72SAzat Khuzhin o Fixed issue with cmake version generation (d56efd9 Mark Ellzey) 603ea2cee72SAzat Khuzhin o Cmake is now officially working. (7f9646d Mark Ellzey) 604ea2cee72SAzat Khuzhin o More cmake updates, lot's of missing definitions (49a5381 Mark Ellzey) 605ea2cee72SAzat Khuzhin o CMake syntax fixes fo .in files (6aad23d Mark Ellzey) 606ea2cee72SAzat Khuzhin o Revert "The Windows socket type is defined as SOCKET." (a264da8 Mark Ellzey) 607ea2cee72SAzat Khuzhin o CMAKE CMAKE CMAKE CLEANUPS (a9db46a Mark Ellzey) 608ea2cee72SAzat Khuzhin o Lot's of cmake updates (8b228e2 Mark Ellzey) 609ea2cee72SAzat Khuzhin 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) 610ea2cee72SAzat Khuzhin o The Windows socket type is defined as SOCKET. (c9e6c3d billsegall) 611ea2cee72SAzat Khuzhin o autotools: fix getservbyname() detection (959a4c2 Azat Khuzhin) 612ea2cee72SAzat Khuzhin o Add missing <string.h> for openssl_hostname_validation module (3316a21 Azat Khuzhin) 613ea2cee72SAzat Khuzhin o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard) 614ea2cee72SAzat Khuzhin o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin) 615ea2cee72SAzat Khuzhin o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin) 616ea2cee72SAzat Khuzhin o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn) 617ea2cee72SAzat Khuzhin o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin) 618ea2cee72SAzat Khuzhin o Updated gitignore (1dbb55d Mark Ellzey) 619ea2cee72SAzat Khuzhin o Update bench_httpclient.c (cb96931 Seungmo Koo) 620ea2cee72SAzat Khuzhin o *fix: bench_httpclient to support win32 (4e9325e zeliard) 621ea2cee72SAzat Khuzhin o Commented out a WIN32 threading / timing test for now (e84e269 Mark Ellzey) 622ea2cee72SAzat Khuzhin o Fix mixed declarations and code (forbidden by ISO C90) (0c7f217 Thomas Bernard) 623ea2cee72SAzat Khuzhin o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard) 624ea2cee72SAzat Khuzhin o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg) 625ea2cee72SAzat Khuzhin o changed strtotimeval signature as per #211 (bdbc823 Xiao Bao Clark) 626ea2cee72SAzat Khuzhin o Added cmake-generated files to ignore list. (6c12bfe Matyas Dolak) 627ea2cee72SAzat Khuzhin o Ignore `make dist` generated files (8a2c6c7 Azat Khuzhin) 628ea2cee72SAzat Khuzhin 629ea2cee72SAzat Khuzhin Debugging 630ea2cee72SAzat Khuzhin o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey) 631ea2cee72SAzat Khuzhin 632ea2cee72SAzat Khuzhin 633ea2cee72SAzat Khuzhin 634683f5568SNick MathewsonChanges in version 2.1.5-beta (5 January 2015) 635d9469d39SNick Mathewson 6360b49ae34SNick Mathewson Security Fixes (evbuffers) 6370b49ae34SNick Mathewson o Avoid integer overflow bugs in evbuffer_add() and related functions. See CVE-2014-6272 advisory for more information. (d49bc0e88b81a5812116074dc007f1db0ca1eecd) 638d9469d39SNick Mathewson 639d9469d39SNick Mathewson New APIs (evconnlistener) 640d9469d39SNick Mathewson o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak) 641d9469d39SNick Mathewson 642d9469d39SNick Mathewson Bugfixes (core) 643d9469d39SNick Mathewson o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl) 6440eb39194SNick Mathewson o Fix race caused by event_active (3c7d6fc vjpai) 645d9469d39SNick Mathewson 646d9469d39SNick Mathewson Bugfixes (evbuffer) 647d9469d39SNick Mathewson o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923) 648d9469d39SNick Mathewson o Consistently check for failure from evbuffer_pullup() (60f8f72) 6490eb39194SNick Mathewson o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a) 650d9469d39SNick Mathewson 651d9469d39SNick Mathewson Bugfixes (windows, IOCP) 652d9469d39SNick Mathewson o be async: avoid double close() (f133b86 Azat Khuzhin) 653d9469d39SNick Mathewson 654d9469d39SNick Mathewson Bugfixes (bufferevents) 655d9469d39SNick Mathewson o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE (2c82aa0 John Ohl) 656d9469d39SNick Mathewson o make bufferevent_getwatermark api more robust (a21e510 ufo2243) 657d9469d39SNick Mathewson o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243) 658d9469d39SNick Mathewson o bufferevent_openssl: reset fd_is_set when setfd with -1 is called (3da84c2 Azat Khuzhin) 659d9469d39SNick Mathewson o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg) 660d9469d39SNick Mathewson 661d9469d39SNick Mathewson New APIs (evhttp) 662d9469d39SNick Mathewson o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests (12c29b0 Azat Khuzhin) 663d9469d39SNick Mathewson o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl) 664d9469d39SNick Mathewson 6650eb39194SNick Mathewson New APIs (core) 6660eb39194SNick Mathewson o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard) 6670eb39194SNick Mathewson 668d9469d39SNick Mathewson Bugfixes (evdns) 669d9469d39SNick Mathewson o Load hosts file on Windows. (a0b247c Vilmos Nebehaj) 670d9469d39SNick Mathewson o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj) 671d9469d39SNick Mathewson o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749) 672d9469d39SNick Mathewson o evdns: avoid read-after-free in evdns_request_timeout_callback() (61262a0 Azat Khuzhin) 673d9469d39SNick Mathewson o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15) 674d9469d39SNick Mathewson o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin) 675d9469d39SNick Mathewson o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin) 676d9469d39SNick Mathewson o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin) 677d9469d39SNick Mathewson 678d9469d39SNick Mathewson Bugfixes (evhttp) 679d9469d39SNick Mathewson o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin) 680d9469d39SNick Mathewson 681d9469d39SNick Mathewson 682d9469d39SNick Mathewson Testing 683d9469d39SNick Mathewson o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin) 684d9469d39SNick Mathewson o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin) 685d9469d39SNick Mathewson o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC (42aefeb Azat Khuzhin) 686d9469d39SNick Mathewson o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin) 687d9469d39SNick Mathewson o Update to a more recent tinytest_macros. (8da5a18) 688d9469d39SNick Mathewson o test/regress: add simplestsignal: to track reorder bugs separately (b897bef Azat Khuzhin) 689d9469d39SNick Mathewson o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin) 690d9469d39SNick Mathewson o More evbuffer_peek() test cases (154006a) 691d9469d39SNick Mathewson o use correct tt macro for pointer compare (08c88ea) 692d9469d39SNick Mathewson o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov) 693d9469d39SNick Mathewson o Fix a use-after-free in unit tests. CID 752027 (3739057) 694d9469d39SNick Mathewson o Fix a dead-code warning in unit tests. CID 1193548 (c119f24) 695d9469d39SNick Mathewson o Use evutil_weakrand() in unit tests. (a677b72, 364c110) 696d9469d39SNick Mathewson o Use a more precise calculation for max in time-ratelim.c (ca5b5c7) 697d9469d39SNick Mathewson o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from() (fb57b8b) 698d9469d39SNick Mathewson o Fix several memory leaks in the unit tests. (89c1a3b) 699d9469d39SNick Mathewson o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl) 7000eb39194SNick Mathewson o Fix annoying heisenbug in test-time.c (cb73704) 701d9469d39SNick Mathewson 702d9469d39SNick Mathewson Sample code 703d9469d39SNick Mathewson o Make http-server.c output into good html5 (6d72bdc) 704d9469d39SNick Mathewson o Use FindClose for handle from FindFirstFile in http-server.c (6466e88) 705d9469d39SNick Mathewson o https-client: add -retries argument, for connection retries (d9da844 Azat Khuzhin) 706d9469d39SNick Mathewson 707d9469d39SNick Mathewson Bugfixes (build) 708d9469d39SNick Mathewson o Add missing headerfile for cmake (15d90cc Trond Norbye) 709d9469d39SNick Mathewson o ignore one more test binary (b6593aa Michael Richardson) 710d9469d39SNick Mathewson o ignore config.cache/test-driver files (c83f333 Mike Frysinger) 711d9469d39SNick Mathewson o add a --disable-samples configure flag (0c492b3 Mike Frysinger) 712d9469d39SNick Mathewson o Add a few files created by "make verify" to .gitignore. (1a8295a Pierre Phaneuf) 713d9469d39SNick Mathewson o updates in cmake build (27bd9fa Sergey Nikulov) 714d9469d39SNick Mathewson o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang) 7150eb39194SNick Mathewson o Fix CMake shared library build (e69d910 Nobuaki Sukegawa) 7160eb39194SNick Mathewson o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl) 7170eb39194SNick Mathewson o Fix mixed declarations and code (forbidden by ISO C90) (8afbdbc Thomas Bernard) 718d9469d39SNick Mathewson 719d9469d39SNick Mathewson Bugfixes (miscellaneous) 720d9469d39SNick Mathewson o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin) 721d9469d39SNick Mathewson o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin) 722d9469d39SNick Mathewson o [Bugfix] fix grammer error (3a4d249 ufo2243) 723d9469d39SNick Mathewson o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389) 724d9469d39SNick Mathewson o Fix a c90 warning (76643dd) 725d9469d39SNick Mathewson o Fix a typo in a doxygen comment. Reported by 亦得. (be1aeff) 726d9469d39SNick Mathewson o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet) 727d9469d39SNick Mathewson 728d9469d39SNick Mathewson Bugfixes (FreeBSD) 729d9469d39SNick Mathewson 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) 730d9469d39SNick Mathewson 731d9469d39SNick Mathewson 732de268febSNick Mathewson 73350093afcSNick MathewsonChanges in version 2.1.4-alpha (21 Mar 2014) 734c11e7d91SNick Mathewson 735e6c6f120SNick Mathewson Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make 736e6c6f120SNick Mathewson Libevent more useful, including support for early close detection with 737e6c6f120SNick Mathewson epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more 738e6c6f120SNick Mathewson evhttp callbacks, and more. There are also numerous bugfixes, including 739e6c6f120SNick Mathewson a number for finalize-related issues from 2.1.3-alpha; and an 740e6c6f120SNick Mathewson alternative (non-primary!) cmake-based build mechanism. 741c11e7d91SNick Mathewson 742e6c6f120SNick Mathewson New APIs (core) 743e6c6f120SNick Mathewson o Added event_base_get_num_events() (0fa107d Mobai Zhang) 744e6c6f120SNick Mathewson o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0) 745e6c6f120SNick Mathewson o Add event_base_active_by_signal by analogy (4865943) 746e6c6f120SNick Mathewson o Add access to max event count stats (5173bef, efbd3dc, 26230a2 747e6c6f120SNick Mathewson Andrew Sweeney) 748e6c6f120SNick Mathewson o Implemented EV_CLOSED event for epoll backend 749e6c6f120SNick Mathewson (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52 750e6c6f120SNick Mathewson Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e) 751e6c6f120SNick Mathewson 752e6c6f120SNick Mathewson New APIs (evutil_secure_rng) 753e6c6f120SNick Mathewson o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7) 754e6c6f120SNick Mathewson 755e6c6f120SNick Mathewson New APIs (bufferevents) 756e6c6f120SNick Mathewson o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey) 757e6c6f120SNick Mathewson o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb 758e6c6f120SNick Mathewson Mark Ellzey) 759e6c6f120SNick Mathewson o Add watermark introspection (4ce242b Ondřej Kuzník) 760e6c6f120SNick Mathewson o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník) 761e6c6f120SNick Mathewson o Add an option to trigger bufferevent event callbacks (a7384c7 762e6c6f120SNick Mathewson Ondřej Kuzník) 763e6c6f120SNick Mathewson o Clarifications in response to merge req. comments (bd41947 Ondřej 764e6c6f120SNick Mathewson Kuzník) 765e6c6f120SNick Mathewson o Minor optimizations on bufferevent_trigger options (a3172a4) 766e6c6f120SNick Mathewson 767e6c6f120SNick Mathewson New APIs (evhttp) 768e6c6f120SNick Mathewson o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion) 769e6c6f120SNick Mathewson o add a http default content type option (5a5acd9 Nicolas Martyanoff) 770e6c6f120SNick Mathewson o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat 771e6c6f120SNick Mathewson Khuzhin) 772e6c6f120SNick Mathewson o Add a variant of evhttp_send_reply_chunk() with a callback on 773e6c6f120SNick Mathewson evhttp_write_buffer() (8d8decf Julien BLACHE) 774e6c6f120SNick Mathewson o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey) 775e6c6f120SNick Mathewson o Provide on request complete callback facility (b083ca0 Andrew Sweeney) 776e6c6f120SNick Mathewson o evhttp_request_set_on_complete_cb to be more specific about what 777e6c6f120SNick Mathewson the function actually does and usage (da86dda Andrew Sweeney) 778e6c6f120SNick Mathewson o Update unit test to make sure that the callback happens after the 779e6c6f120SNick Mathewson output data is written (b85f398 Andrew Sweeney) 780e6c6f120SNick Mathewson 781e6c6f120SNick Mathewson Features (evdns) 782e6c6f120SNick Mathewson o bug fix for issues #293 evdns_base_load_hosts doesn't remove 783e6c6f120SNick Mathewson outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta) 784e6c6f120SNick Mathewson 785e6c6f120SNick Mathewson Features: (cmake build support) 786e6c6f120SNick Mathewson o Initial CMake commit. (e415196 Joakim Soderberg) 787e6c6f120SNick Mathewson o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg) 788e6c6f120SNick Mathewson o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg) 789e6c6f120SNick Mathewson o Generate a dummy evconfig-private.h so things build 790e6c6f120SNick Mathewson properly. (ce14def Joakim Soderberg) 791e6c6f120SNick Mathewson o Link libm on unix platforms. (58fcd42 Joakim Soderberg) 792e6c6f120SNick Mathewson o Added some GCC specific options. (19222e5 Joakim Soderberg) 793e6c6f120SNick Mathewson o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg) 794e6c6f120SNick Mathewson o Add copyright and licensing files for CMake modules. (c259d53 795e6c6f120SNick Mathewson Joakim Soderberg) 796e6c6f120SNick Mathewson o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg) 797e6c6f120SNick Mathewson o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg) 798e6c6f120SNick Mathewson o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg) 799e6c6f120SNick Mathewson o Only test the event backends available on the system. (7ea4159 800e6c6f120SNick Mathewson Joakim Soderberg) 801e6c6f120SNick Mathewson o Added a "make verify" target. (e053c4f Joakim Soderberg) 802e6c6f120SNick Mathewson o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg) 803e6c6f120SNick Mathewson o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516 804e6c6f120SNick Mathewson Joakim Söderberg) 805e6c6f120SNick Mathewson o Fix kqueue support. (a831f2f Joakim Söderberg) 806e6c6f120SNick Mathewson o Added a test for testing if kqueue works with pipes. (2799b35 807e6c6f120SNick Mathewson Joakim Söderberg) 808e6c6f120SNick Mathewson o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg) 809e6c6f120SNick Mathewson o Minimum required python version is 2.4. (968e97b Joakim Soderberg) 810e6c6f120SNick Mathewson o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg) 811e6c6f120SNick Mathewson o Add a "make verify_coverage" target generation coverage 812e6c6f120SNick Mathewson info. (f2483f8 Joakim Soderberg) 813e6c6f120SNick Mathewson o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg) 814e6c6f120SNick Mathewson o Only look for ZLib when it is used (if tests are 815e6c6f120SNick Mathewson included). (f780593 Joakim Soderberg) 816e6c6f120SNick Mathewson o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into 817e6c6f120SNick Mathewson errors. (dd413bd Joakim Soderberg) 818e6c6f120SNick Mathewson o Add CMake config and install targets. (f3446ed Joakim Soderberg) 819e6c6f120SNick Mathewson o Fix typo (4b754df Joakim Soderberg) 820e6c6f120SNick Mathewson o Some work on making it possible to simply do add_subdirectory() on 821e6c6f120SNick Mathewson the project. (49ab363 Joakim Soderberg) 822e6c6f120SNick Mathewson o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg) 823e6c6f120SNick Mathewson o Fix so that old nmake project still builds. (24d6466 Joakim 824e6c6f120SNick Mathewson Soderberg) 825e6c6f120SNick Mathewson o Rename README to README.md and use markdown to format. (d2bc39a 826e6c6f120SNick Mathewson Joakim Soderberg) 827e6c6f120SNick Mathewson o Update README with CMake build instructions. (604b8cc Joakim Soderberg) 828e6c6f120SNick Mathewson o Clean up the README some. (8d4cb35 JoakimSoderberg) 829e6c6f120SNick Mathewson o Forgotten headers for old nmake project compatability. (8697b99 830e6c6f120SNick Mathewson Joakim Soderberg) 831e6c6f120SNick Mathewson o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg) 832e6c6f120SNick Mathewson o Fix include bug. (2024467 Joakim Söderberg) 833e6c6f120SNick Mathewson o Check if we're on OSX before disabling deprecation in le-proxy 834e6c6f120SNick Mathewson (8b40a5b Joakim Söderberg) 835e6c6f120SNick Mathewson o Fix broken autotools build. (ae1bd82 Joakim Söderberg) 836e6c6f120SNick Mathewson o Disclaimerize cmake a little in the README (d03b5bf) 837e6c6f120SNick Mathewson o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim 838e6c6f120SNick Mathewson Söderberg) 839e6c6f120SNick Mathewson o CMake: Get rid of python not found warning when regress tests 840e6c6f120SNick Mathewson turned off. (d38d798 Joakim Söderberg) 841e6c6f120SNick Mathewson o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg) 842e6c6f120SNick Mathewson o Guard against EVENT_NOWIN32 being set during testing. (f1715b4 843e6c6f120SNick Mathewson Joakim Soderberg) 844e6c6f120SNick Mathewson o Check for OSX when checking for clang. (e212c54 Joakim Soderberg) 845e6c6f120SNick Mathewson o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg) 846e6c6f120SNick Mathewson o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye) 847e6c6f120SNick Mathewson o Rename event_extras to event_extra (a0dd5df Trond Norbye) 848e6c6f120SNick Mathewson o Add option to build shared library (4545fa9 Trond Norbye) 849e6c6f120SNick Mathewson o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye) 850e6c6f120SNick Mathewson o Add cmake-related files to .gitignore (e061321 Trond Norbye) 851e6c6f120SNick Mathewson o Export event_extra not event_extras. (2b41bcf Joakim Söderberg) 852e6c6f120SNick Mathewson 853e6c6f120SNick Mathewson Bugfixes (core) 854e6c6f120SNick Mathewson o If evsel->del() fails, don't leave the evmap in an inconsistent 855e6c6f120SNick Mathewson state (9b5a527 Maxime Henrion) 856e6c6f120SNick Mathewson o Move event_debug_note_teardown_ before mm_free. (69b5c64) 857e6c6f120SNick Mathewson o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3) 858e6c6f120SNick Mathewson o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe) 859e6c6f120SNick Mathewson o Tweaked callbacks to prevent race condition 860e6c6f120SNick Mathewson (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed 861e6c6f120SNick Mathewson John Ohl) 862e6c6f120SNick Mathewson o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE 863e6c6f120SNick Mathewson case (9805972) 864e6c6f120SNick Mathewson 865e6c6f120SNick Mathewson Bugfixes (evhttp) 866e6c6f120SNick Mathewson o Fix a double close() bug in evhttp when the underlying bufferevent uses 867e6c6f120SNick Mathewson BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion) 868e6c6f120SNick Mathewson o Fix an unlikely but possible error case for http connections (f22049e) 869e6c6f120SNick Mathewson o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum) 870e6c6f120SNick Mathewson 871e6c6f120SNick Mathewson Bugfixes on 2.0 (Windows) 872e6c6f120SNick Mathewson o Use windows vsnprintf fixup logic on all windows environments (e826f19) 873e6c6f120SNick Mathewson o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) 874e6c6f120SNick Mathewson (b8f5980 Frank Denis) 875e6c6f120SNick Mathewson 876e6c6f120SNick Mathewson Bugfixes (evutil_secure_rng) 877e6c6f120SNick Mathewson o When we seed from /proc/sys/kernel/random/uuid, count it as success 878e6c6f120SNick Mathewson (e35b540) 879e6c6f120SNick Mathewson o We should return after arc4random_buf() (1ea1f26 Makoto Kato) 880e6c6f120SNick Mathewson o Avoid other RNG initialization FS reads when urandom file is 881e6c6f120SNick Mathewson specified (9695e9c) 882e6c6f120SNick Mathewson o Really remove RNG seeds from the stack (f5ced88) 883e6c6f120SNick Mathewson o Fix another arc4random_buf-related warning (e64a2b0) 884e6c6f120SNick Mathewson 885e6c6f120SNick Mathewson Bugfixes (bufferevents) 886e6c6f120SNick Mathewson o Initialize async bufferevent timeout CBs unconditionally (af9b2a7) 887c11e7d91SNick Mathewson 888c11e7d91SNick Mathewson Bugfixes (evdns) 889c11e7d91SNick Mathewson o Checking request nameserver for NULL, before using it. (5c710c0 890c11e7d91SNick Mathewson Belobrov Andrey) 891e6c6f120SNick Mathewson o Fix SEGFAULT after evdns_base_resume if no nameservers 892e6c6f120SNick Mathewson installed. (14971a8 Azat Khuzhin) 893c11e7d91SNick Mathewson o Actually use the log facility for reporting evdns problems. (e1766a1) 894e6c6f120SNick Mathewson o Fix SEGFAULT after evdns_base_resume if no nameservers 895e6c6f120SNick Mathewson installed. (f8d7df8 Azat Khuzhin) 896e6c6f120SNick Mathewson o fix for ServFail from RIPE Atlas release (62f596b Antony Antony) 897c11e7d91SNick Mathewson 898e6c6f120SNick Mathewson Bugfixes (compilation) 899c11e7d91SNick Mathewson o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7) 900c11e7d91SNick Mathewson o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e) 901e6c6f120SNick Mathewson o Don't use return since return type is void and build error occurs 902e6c6f120SNick Mathewson using clang (838161d Makoto Kato) 903c11e7d91SNick Mathewson o Use void casts to suppress some "unchecked return value" warns (7080d55) 904e6c6f120SNick Mathewson o rpcgen: Generate regress.gen.[c,h] in build rather than src dir 905e6c6f120SNick Mathewson (243386c Ross Lagerwall) 906e6c6f120SNick Mathewson o Fix a compiler warning when checking for arc4random_buf linker 907e6c6f120SNick Mathewson breakage. (5cb3865) 908e6c6f120SNick Mathewson o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES 909e6c6f120SNick Mathewson (239d834) 910e6c6f120SNick Mathewson 911e6c6f120SNick Mathewson o Fix a c90 warning (c207682) 912e6c6f120SNick Mathewson o Fix consts in WIN32-Code/getopt*.[ch] (57abb35) 913c11e7d91SNick Mathewson 914c11e7d91SNick Mathewson Bugfixes (locks, synchronization) 915c11e7d91SNick Mathewson o Missed lock acquire/release in event_base_cancel_single_callback_() 916c11e7d91SNick Mathewson (d3d999a Azat Khuzhin) 917c11e7d91SNick Mathewson o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion) 918c11e7d91SNick Mathewson 919c11e7d91SNick Mathewson Bugfixes (leaks) 920c11e7d91SNick Mathewson o Avoid leaking segment mappings when offset is not a page multiple (d409514) 921c11e7d91SNick Mathewson 922c11e7d91SNick Mathewson Testing 923c11e7d91SNick Mathewson o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin) 924c11e7d91SNick Mathewson o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin) 925e6c6f120SNick Mathewson o Add checks for evhttp_connection_get_server() in unit 926e6c6f120SNick Mathewson tests. (fbc323b Maxime Henrion) 927c11e7d91SNick Mathewson o Fix a (failure-only) null dereference in the unit tests (1104d0b) 928c11e7d91SNick Mathewson o Fix a logic error in test_evbuffer_freeze (7765884) 929c11e7d91SNick Mathewson o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506) 930c11e7d91SNick Mathewson o Fix some crash-on-fail cases in DNS regression tests (87cd6f0) 931c11e7d91SNick Mathewson o DNS tests: add a missing check (f314900) 932c11e7d91SNick Mathewson o Finalize tests: add a missing check (82b6956) 933c11e7d91SNick Mathewson o test_evutil_rtrim: add another missing check. (e193c95) 934e6c6f120SNick Mathewson o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset 935e6c6f120SNick Mathewson (611e28b Azat Khuzhin) 936e6c6f120SNick Mathewson o regress_http: add tests for evhttp_connection_get_addr() (4dd500c 937e6c6f120SNick Mathewson Azat Khuzhin) 938e6c6f120SNick Mathewson o Update to the latest version of tinytest (7a80476) 939e6c6f120SNick Mathewson o Heap-allocate zlib data structure in regress_zlib tests (4947c18) 940c11e7d91SNick Mathewson 941c11e7d91SNick Mathewson Performance tweaks (core) 942c11e7d91SNick Mathewson o Avoid redundant syscall to make a nonblocking socket nonblocking 943c11e7d91SNick Mathewson (42c03da Maxime Henrion) 944c11e7d91SNick Mathewson o Avoid redundant syscall if making a socket cloexec twice (1f29b18) 945c11e7d91SNick Mathewson o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) 946c11e7d91SNick Mathewson 947c11e7d91SNick Mathewson Documentation 948c11e7d91SNick Mathewson o Document that arc4random is not a great cryptographic PRNG. (6e49696) 949c11e7d91SNick Mathewson o Small doxygen tweaks (6e67b51) 950c11e7d91SNick Mathewson o Try another doxygen tweak (ccf432b) 951e6c6f120SNick Mathewson o Clarify event_base_loop exit conditions (031a803) 952e6c6f120SNick Mathewson o Fix a typo (be7bf2c Ondřej Kuzník) 953e6c6f120SNick Mathewson o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník) 954e6c6f120SNick Mathewson o Typo fixes from Linus Nordberg (cec62cb, 8cd695b) 955e6c6f120SNick Mathewson o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee) 956c11e7d91SNick Mathewson 957e6c6f120SNick Mathewson Code Improvements (coverity) 958e6c6f120SNick Mathewson o Fix a pile of coverity warnings in the unit tests (867f401) 959e6c6f120SNick Mathewson o Fix coverity warnings in benchmark tools. (ff7f739) 960e6c6f120SNick Mathewson o Whoops; fix compilation in bench.c (544cf88) 961e6c6f120SNick Mathewson o Remove spurious checks in evrpc.c error cases (coverity) (991b362) 962e6c6f120SNick Mathewson o Fix a couple of compilation warnings in regress_http.c (860767e) 963e6c6f120SNick Mathewson o Fix even more coverity warnings. (d240328) 964e6c6f120SNick Mathewson o Stop checking for inet_aton; we don't use it. (f665d5c) 965e6c6f120SNick Mathewson o Add an include to evrpc-internal to fix openbsd compilation warning 966e6c6f120SNick Mathewson (5e161c6) 967c11e7d91SNick Mathewson 968c11e7d91SNick Mathewson Cleanups 969c11e7d91SNick Mathewson o Remove an unreachable return statement in minheap-internal.h (e639a9e) 970e6c6f120SNick Mathewson o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e) 971e6c6f120SNick Mathewson o Fix needless bufferevent includes in evdns.c (254c04e) 972e6c6f120SNick Mathewson o Fix a couple of "#ifdef WIN32" instances (88ecda3) 973e6c6f120SNick Mathewson o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd) 974c11e7d91SNick Mathewson 975c11e7d91SNick Mathewson Sample code 976e6c6f120SNick Mathewson o le-proxy: Fail more gracefully if opening listener fails (44b2491) 977e6c6f120SNick Mathewson o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin) 978e6c6f120SNick Mathewson o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky) 979e6c6f120SNick Mathewson o https-client: code cleanup (29af65e Alexey Ozeritsky) 980e6c6f120SNick Mathewson o https-client: Small tweaks to https-client.c (90786eb) 981e6c6f120SNick Mathewson o https-client: Set hostname for SNI extension (by f69m) (d1976f8) 982e6c6f120SNick Mathewson o https-client: add a cast to https-client.c (462e6b6) 983f8d80a28SNick Mathewson 984f8d80a28SNick Mathewson 985f8d80a28SNick Mathewson 98657cbfcd6SNick MathewsonChanges in version 2.1.3-alpha (1 May 2013) 987e6cdd17bSNick Mathewson 988e6cdd17bSNick Mathewson Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans 989e6cdd17bSNick Mathewson up the code in a couple of places. It has a new callback in evhttp for 990e6cdd17bSNick Mathewson reporting errors during a request, a new feature for allowing evdns to 991e6cdd17bSNick Mathewson not keep the event_base looping when there are no requests inflight, and 992e6cdd17bSNick Mathewson example code for writing an https client. 993e6cdd17bSNick Mathewson 994e6cdd17bSNick Mathewson Libevent 2.1.3-alpha also has an important new (experimental) event 995e6cdd17bSNick Mathewson finalization feature to allow safe event teardown in multithreaded 996e6cdd17bSNick Mathewson programs. This ought to fix the longstanding bug with deadlocks in 997e6cdd17bSNick Mathewson multithreaded use of SSL-based bufferevents that some people have been 998e6cdd17bSNick Mathewson experiencing since Libevent 2.0. 999e6cdd17bSNick Mathewson 1000e6cdd17bSNick Mathewson 1001e6cdd17bSNick Mathewson Core (event finalization) 1002e6cdd17bSNick Mathewson o Implement event_finalize() and related functions to avoid certain 1003e6cdd17bSNick Mathewson deadlocks (8eedeab) 1004e6cdd17bSNick Mathewson o Use finalization feature so bufferevents can avoid deadlocks (02fbf68) 1005e6cdd17bSNick Mathewson o Always run pending finalizers when event_base_free() is called (e9ebef8) 1006e6cdd17bSNick Mathewson o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a) 1007e6cdd17bSNick Mathewson o More documentation for finalization feature (a800b91) 1008e6cdd17bSNick Mathewson o Make the event_finalize* functions return an error code (5d11f4f) 1009e6cdd17bSNick Mathewson o Mark the finalize stuff as experiemental in case it needs to 1010e6cdd17bSNick Mathewson change (23e2e29) 1011e6cdd17bSNick Mathewson 1012e6cdd17bSNick Mathewson Evdns 1013e6cdd17bSNick Mathewson o evdns: New flag to make evdns not prevent the event loop from 1014e6cdd17bSNick Mathewson exiting (6b7fa62 Azat Khuzhin) 1015e6cdd17bSNick Mathewson 1016e6cdd17bSNick Mathewson Bugfixes (Core) 1017e6cdd17bSNick Mathewson o Make event_remove_timer behave correctly with persistent timers (5623e80) 1018e6cdd17bSNick Mathewson o Unit test for event_remove_timer with EV_PERSIST. (96150dd) 1019e6cdd17bSNick Mathewson o Double-check next timeout when adding events (9443868 Nate Rosenblum) 1020e6cdd17bSNick Mathewson o event_base_update_cache_time should be a no-op if the loop isn't 1021e6cdd17bSNick Mathewson running (5e6fa2a) 1022e6cdd17bSNick Mathewson 1023e6cdd17bSNick Mathewson Bugfixes (evhttp, crash fix, from 2.0) 1024e6cdd17bSNick Mathewson o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel) 1025e6cdd17bSNick Mathewson 1026e6cdd17bSNick Mathewson Bugfixes (compilation and portability, from 2.0) 1027e6cdd17bSNick Mathewson o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739) 1028e6cdd17bSNick Mathewson o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan) 1029e6cdd17bSNick Mathewson o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) 1030e6cdd17bSNick Mathewson (74d4c44 Kevin Bowling) 1031e6cdd17bSNick Mathewson o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1032e6cdd17bSNick Mathewson 1.13 compat (817ea36) 1033e6cdd17bSNick Mathewson o Rename configure.in to configure.ac to appease newer autoconfs (0c79787) 1034e6cdd17bSNick Mathewson o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e) 1035e6cdd17bSNick Mathewson 1036e6cdd17bSNick Mathewson Bugfixes (resource leaks/lock errors on error, from 2.0) 1037e6cdd17bSNick Mathewson o Avoid leaking fds on evconnlistener with no callback set (69db261) 1038e6cdd17bSNick Mathewson o Avoid double-close on getsockname error in evutil_ersatz_socketpair 1039e6cdd17bSNick Mathewson (0a822a6) 1040e6cdd17bSNick Mathewson o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e) 1041e6cdd17bSNick Mathewson 1042e6cdd17bSNick Mathewson Documentation Fixes (from 2.0) 1043e6cdd17bSNick Mathewson o Fix a mistake in evbuffer_remove() arguments in example http server code 1044e6cdd17bSNick Mathewson (c322c20 Gyepi Sam) 1045e6cdd17bSNick Mathewson o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5) 1046e6cdd17bSNick Mathewson 1047e6cdd17bSNick Mathewson Documentation Fixes 1048e6cdd17bSNick Mathewson o minor documentation typos (809586a Patrick Pelletier) 1049e6cdd17bSNick Mathewson o Fix cut-and-paste err in whatsnew-2.1 (49905ac) 1050e6cdd17bSNick Mathewson o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian 1051e6cdd17bSNick Mathewson Hahn) 1052e6cdd17bSNick Mathewson o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke) 1053e6cdd17bSNick Mathewson o fix some hinky indentation in evhttp_make_request (80e220e Patrick 1054e6cdd17bSNick Mathewson Pelletier) 1055e6cdd17bSNick Mathewson o "buffer" spelling (a452811 Patrick Pelletier) 1056e6cdd17bSNick Mathewson o Specify return behavior in header for evbuffer_pullup() in corner case 1057e6cdd17bSNick Mathewson (cf8d1cd Dan Petro) 1058e6cdd17bSNick Mathewson o Clarify an important point about event_base_foreach_event() (920a5e6) 1059e6cdd17bSNick Mathewson 1060e6cdd17bSNick Mathewson Compilation Fixes/Tool Support 1061e6cdd17bSNick Mathewson o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick 1062e6cdd17bSNick Mathewson Pelletier) 1063e6cdd17bSNick Mathewson o Fix harmless clang enum warning (b452a43 Sebastian Hahn) 1064e6cdd17bSNick Mathewson o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick 1065e6cdd17bSNick Mathewson Pelletier) 1066e6cdd17bSNick Mathewson o Make --disable-libevent-regress work again (787fd74) 1067e6cdd17bSNick Mathewson o Do not build strlcpy.c when it will have no code. (4914620) 1068e6cdd17bSNick Mathewson 1069e6cdd17bSNick Mathewson Portability Fixes 1070e6cdd17bSNick Mathewson o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff) 1071e6cdd17bSNick Mathewson o Preliminary changes for Minix3. (0dda56a Nicholas Heath) 1072e6cdd17bSNick Mathewson o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 1073e6cdd17bSNick Mathewson compat (bf278b) 1074e6cdd17bSNick Mathewson o Avoid using $(top_srcdir) in TESTS. (2863c83) 1075e6cdd17bSNick Mathewson o build test/test-script.sh on systems with a less-featureful $< (f935e21) 1076e6cdd17bSNick Mathewson o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d) 1077e6cdd17bSNick Mathewson 1078e6cdd17bSNick Mathewson Evhttp changes: 1079e6cdd17bSNick Mathewson o Fix ipv6 support for http. When URL contain domain, not IP 1080e6cdd17bSNick Mathewson address. (71e709c Azat Khuzhin) 1081e6cdd17bSNick Mathewson o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat 1082e6cdd17bSNick Mathewson Khuzhin) 1083e6cdd17bSNick Mathewson o uri decode: changed the test for the existence of the next character 1084e6cdd17bSNick Mathewson (e1903e3 Azat Khuzhin) 1085e6cdd17bSNick Mathewson o Move prototype of evhttp_decode_uri_internal() to http-internal.h 1086e6cdd17bSNick Mathewson (de8101a Azat Khuzhin) 1087e6cdd17bSNick Mathewson o Test: decoding just part of string with evhttp_decode_uri_internal() 1088e6cdd17bSNick Mathewson (1367653 Azat Khuzhin) 1089e6cdd17bSNick Mathewson o Add new error_cb for actual reporting of HTTP request errors. (7b07719 1090e6cdd17bSNick Mathewson Azat Khuzhin) 1091e6cdd17bSNick Mathewson o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217 1092e6cdd17bSNick Mathewson Azat Khuzhin) 1093e6cdd17bSNick Mathewson o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin) 1094e6cdd17bSNick Mathewson 1095e6cdd17bSNick Mathewson Testing 1096e6cdd17bSNick Mathewson o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin) 1097e6cdd17bSNick Mathewson o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug 1098e6cdd17bSNick Mathewson mode (2fad0f3) 1099e6cdd17bSNick Mathewson o Add a test with an active_later event at event_base_free time. (1c3147f) 1100e6cdd17bSNick Mathewson o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f) 1101e6cdd17bSNick Mathewson o Add some verbose notes to bufferevent unit tests (9d893c9) 1102e6cdd17bSNick Mathewson o New test for active_later->active transition on event_active (a153874) 1103e6cdd17bSNick Mathewson o New tests for event_base_foreach_event() (0b096ef) 1104e6cdd17bSNick Mathewson o Unit tests for event_base_gettimeofday_cached() and 1105e6cdd17bSNick Mathewson event_base_update_cache_time() (30ea291) 1106e6cdd17bSNick Mathewson o A test for event_get_assignment() (f09629e) 1107e6cdd17bSNick Mathewson o More unit tests for initializing common timeouts. (d596739) 1108e6cdd17bSNick Mathewson o Fix a bug in the new main/event_foreach test (702c9aa) 1109e6cdd17bSNick Mathewson 1110e6cdd17bSNick Mathewson Windows: 1111e6cdd17bSNick Mathewson o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af 1112e6cdd17bSNick Mathewson Patrick Pelletier) 1113e6cdd17bSNick Mathewson o a program to print out the error strings for winsock errors (7296512 1114e6cdd17bSNick Mathewson Patrick Pelletier) 1115e6cdd17bSNick Mathewson o Fix a warning introduced in 0c6ec5d8 (eeb700c) 1116e6cdd17bSNick Mathewson o Fix another warning introduced in 0c6ec5d8 (ed26561) 1117e6cdd17bSNick Mathewson 1118e6cdd17bSNick Mathewson Examples (http) 1119e6cdd17bSNick Mathewson o Add sample/https-client.c, an example of stacking evhttp as a client on 1120e6cdd17bSNick Mathewson top of bufferevent_ssl. (be46c99 Catalin Patulea) 1121e6cdd17bSNick Mathewson o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier) 1122e6cdd17bSNick Mathewson o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick 1123e6cdd17bSNick Mathewson Pelletier) 1124e6cdd17bSNick Mathewson o better handling of OpenSSL errors (5754d96 Patrick Pelletier) 1125e6cdd17bSNick Mathewson o use Debian's default root certificate location (aacd674 Patrick Pelletier) 1126e6cdd17bSNick Mathewson o use iSECPartners code to validate hostname in certificate (64d9f16 1127e6cdd17bSNick Mathewson Patrick Pelletier) 1128e6cdd17bSNick Mathewson o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5 1129e6cdd17bSNick Mathewson Patrick Pelletier) 1130e6cdd17bSNick Mathewson o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier) 1131e6cdd17bSNick Mathewson o Another tweak to https-client.c (95acdaa) 1132e6cdd17bSNick Mathewson o Remove http_struct.h usage in sample/https-client.c (8a90a85) 1133e6cdd17bSNick Mathewson 113440b95ae2SNick Mathewson 113540b95ae2SNick Mathewson 1136143cb613SNick MathewsonChanges in version 2.1.2-alpha (18 Nov 2012) 1137143cb613SNick Mathewson 1138143cb613SNick Mathewson Libevent 2.1.2-alpha includes more portable for monotonic timers, 1139143cb613SNick Mathewson refactors much of Libevent's internal and external infrastructure, 1140143cb613SNick Mathewson closes some longstanding gaps in the interface, makde other 1141143cb613SNick Mathewson improvements. Ths log below tries to organize features by rough area of 1142143cb613SNick Mathewson effect. It omits a few commits which were pure bugfixes on other commits 1143143cb613SNick Mathewson listed below. For more detail, see the git changelogs. For more 1144143cb613SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent 1145143cb613SNick Mathewson 2.1.2-alpha distribution. 1146143cb613SNick Mathewson 1147143cb613SNick Mathewson Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable 1148143cb613SNick Mathewson through 2.0.21-stable inclusive. 1149143cb613SNick Mathewson 1150143cb613SNick Mathewson Performance (core): 1151143cb613SNick Mathewson o Replace pipe-based notification with EVFILT_USER where possible. This 1152143cb613SNick Mathewson should make multithreaded programs on OSX and *BSD alert the main thread a 1153143cb613SNick Mathewson little faster. (53a07fe) 1154143cb613SNick Mathewson o Make th_base_lock nonrecursive. (9cd5acb) 1155143cb613SNick Mathewson 1156143cb613SNick Mathewson New/Changed API Functions: 1157143cb613SNick Mathewson o New event_get_priority() function to return an event's priority (f90e255) 1158143cb613SNick Mathewson o Add a bufferevent_get_priority() function (bd39554) 1159143cb613SNick Mathewson o Add an event_base_loopcontinue() to tell Libevent to rescan for more 1160143cb613SNick Mathewson events right away (7d6aa5e) 1161143cb613SNick Mathewson o Add a new callback to get called on evbuffer_file_segment free 1162143cb613SNick Mathewson (e9f8feb yangacer, 64051b9) 1163143cb613SNick Mathewson o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman 1164143cb613SNick Mathewson Puls, 232055e, ffe1643) 1165143cb613SNick Mathewson o Add an event_remove_timer() to remove timer on an event without 1166143cb613SNick Mathewson deleting it (e3b2e08) 1167143cb613SNick Mathewson o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible 1168143cb613SNick Mathewson semantics (9dee36b) 1169143cb613SNick Mathewson o Rename event_enable_lock_debuging() to ..._debugging(). (The old name 1170143cb613SNick Mathewson should still work.) (07e132e) 1171143cb613SNick Mathewson o Add missing implementation for event_enable_debug_logging (3b3e21d) 1172143cb613SNick Mathewson 1173143cb613SNick Mathewson PORTABLE MONOTONIC TIMERS: 1174143cb613SNick Mathewson 1175143cb613SNick Mathewson Libevent 2.1.2 includes internal support for monotonic timers on 1176143cb613SNick Mathewson (nearly) all supported platforms, including Windows, and OSX. Libevent 1177143cb613SNick Mathewson applications should now be more resilient to jumps forwards or backwards 1178143cb613SNick Mathewson in the system clock. Also, on Linux systems with epoll, we now 1179143cb613SNick Mathewson optionally support microsecond-level timeouts (whereas epoll only 1180143cb613SNick Mathewson supports millisecond-precision timeouts). 1181143cb613SNick Mathewson 1182143cb613SNick Mathewson o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9) 1183143cb613SNick Mathewson o Do not track use_monotonic field when is no monotonic clock (cb653a0) 1184143cb613SNick Mathewson o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision 1185143cb613SNick Mathewson (ddd69d3) 1186143cb613SNick Mathewson o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7) 1187143cb613SNick Mathewson o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a) 1188143cb613SNick Mathewson o Refactor monotonic timer handling into a new type and set of 1189143cb613SNick Mathewson functions; add a gettimeofday-based ratcheting implementation (f5e4eb0) 1190143cb613SNick Mathewson o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow 1191143cb613SNick Mathewson timer (a2598ec) 1192143cb613SNick Mathewson o Implement fast/precise monotonic clocks on Windows (2c47045) 1193143cb613SNick Mathewson o Simple unit tests for monotonic timers (630f077) 1194143cb613SNick Mathewson o Improve the monotonic-time unit test: make it check the step size (7428c78) 1195143cb613SNick Mathewson o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond 1196143cb613SNick Mathewson precision (26c7582) 1197143cb613SNick Mathewson o Split out time-related evutil functions into a new evutil_time.c (c419485) 1198143cb613SNick Mathewson o Split out time-related prototypes into time-internal.h (71bca50) 1199143cb613SNick Mathewson o Add evutil_time.obj to Makefile.nmake (0ba0683) 1200143cb613SNick Mathewson o Avoid giving a spurious warning when timerfd support is unavailable 1201143cb613SNick Mathewson (1aaf9f0 Dave Hart) 1202143cb613SNick Mathewson o Make test_evutil_monotonic a little more tolerant (def3b83) 1203143cb613SNick Mathewson o Avoid unused-var warning on systems with clock_gettime but without 1204143cb613SNick Mathewson CLOCK_MONOTONIC_COARSE (9be5468) 1205143cb613SNick Mathewson 1206143cb613SNick MathewsonEVENT_BASE_ONCE LEAKS: 1207143cb613SNick Mathewson If a callback added by event_base_once() is never invoked, Libevent no 1208143cb613SNick Mathewson longer leaks internal memory. 1209143cb613SNick Mathewson 1210143cb613SNick Mathewson o Free dangling event_once objects on event_base_free() (c17dd59) 1211143cb613SNick Mathewson o Add a unit test in which an event is created with event_base_once() 1212143cb613SNick Mathewson but never fires (4343edf) 1213143cb613SNick Mathewson 1214143cb613SNick MathewsonTESTING SUPPORT, FIXES AND IMPROVEMENTS: 1215143cb613SNick Mathewson 1216143cb613SNick Mathewson Libevent now disables by default its unit tests that would touch the 1217143cb613SNick Mathewson network, or that tend to fail on heavily-loaded systems. To re-enable 1218143cb613SNick Mathewson them, invoke the ./test/regress program with the @all alias. 1219143cb613SNick Mathewson 1220143cb613SNick Mathewson o Simplify test.sh code significantly. (9b856fd Ross Lagerwall) 1221143cb613SNick Mathewson o Make all tests that hit the network disabled by default (f2cea87) 1222143cb613SNick Mathewson o Avoid a resource leak on error in http client benchmark (ea92fba) 1223143cb613SNick Mathewson o Update to latest tinytest (911b4f0349377) (ef7c4f7) 1224143cb613SNick Mathewson o Avoid (unlikely) overflow in bench_httpclient.c (5671033) 1225143cb613SNick Mathewson o Shave 700 msec off the persistent_timeout_jump test (21205b8) 1226143cb613SNick Mathewson o Check return value of write() in regress.c (c8009d2) 1227143cb613SNick Mathewson o Make load-dependent monotonic timer tests off-by-default (2b6fe8b) 1228143cb613SNick Mathewson o Add deferred_cb_skew to list of timing-dependent tests (34c8f31) 1229143cb613SNick Mathewson o Avoid test -e; older shs don't have one. (f1bd938) 1230143cb613SNick Mathewson o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) 1231143cb613SNick Mathewson o Fix a couple of compile warnings in the unit tests (5a9a014) 1232143cb613SNick Mathewson 1233143cb613SNick MathewsonMISC: 1234143cb613SNick Mathewson o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas 1235143cb613SNick Mathewson Marriott, 3aa4415) 1236143cb613SNick Mathewson 1237143cb613SNick MathewsonINFRASTRUCTURE (Active-later events): 1238143cb613SNick Mathewson As a simplification and optimization to Libevent's "deferred callback" 1239143cb613SNick Mathewson logic (introduced in 2.0 to avoid callback recursion), Libevent now 1240143cb613SNick Mathewson treats all of its deferrable callback types using the same logic it uses 1241143cb613SNick Mathewson for active events. Now deferred events no longer cause priority 1242143cb613SNick Mathewson inversion, no longer require special code to cancel them, and so on. 1243143cb613SNick Mathewson 1244143cb613SNick Mathewson o Refactor the callback part of an event into its own event_callback 1245143cb613SNick Mathewson type (cba59e5) 1246143cb613SNick Mathewson o Add "active later" event_callbacks to supersede deferred (745a63d) 1247143cb613SNick Mathewson o event_base_assert_ok: check value of event_active_count for 1248143cb613SNick Mathewson correctness (fec8bae) 1249143cb613SNick Mathewson o Replace deferred_cbs with event_callback-based implementation. (ae2b84b) 1250143cb613SNick Mathewson o Replace more deferred_cb names with event_callback (a4079aa) 1251143cb613SNick Mathewson o Give event_base_process_active a single exit path (581b5be) 1252143cb613SNick Mathewson o Restore our priority-inversion-prevention code with deferreds (c0e425a) 1253143cb613SNick Mathewson o Refactor event_persist_closure: raise and extract some common logic 1254143cb613SNick Mathewson (bec22b4) 1255143cb613SNick Mathewson o Remove the unused bits from EVLIST_ALL (9889a3d) 125637145c56SNick Mathewson||||||| merged common ancestors 125737145c56SNick MathewsonChanges in version 2.0.22-stable (?? Dec 2013) 125837145c56SNick Mathewson 125937145c56SNick Mathewson (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.) 1260959c1428SNick Mathewson 1261f9284c3eSNick MathewsonBUGFIXES (evhttp) 1262f9284c3eSNick Mathewson o fix #73 and fix http_connection_fail_test to catch it (crash fix) (b618204 Greg Hazel) 1263f9284c3eSNick Mathewson o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum) 1264959c1428SNick Mathewson 1265959c1428SNick MathewsonBUGFIXES (compilation and portability) 1266959c1428SNick Mathewson o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739) 1267959c1428SNick Mathewson o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan) 1268959c1428SNick Mathewson o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (74d4c44 Kevin Bowling) 1269959c1428SNick Mathewson o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (817ea36) 1270959c1428SNick Mathewson o Rename configure.in to configure.ac to appease newer autoconfs (0c79787) 1271959c1428SNick Mathewson o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e) 1272f9284c3eSNick Mathewson o Use windows vsnprintf fixup logic on all windows environments (e826f19) 1273f9284c3eSNick Mathewson o Fix a compiler warning when checking for arc4random_buf linker breakage. (5cb3865) 1274f9284c3eSNick Mathewson o Fix another arc4random_buf-related warning (e64a2b0) 1275959c1428SNick Mathewson 1276959c1428SNick MathewsonBUGFIXES (resource leaks/lock errors on error) 1277959c1428SNick Mathewson o Avoid leaking fds on evconnlistener with no callback set (69db261) 1278959c1428SNick Mathewson o Avoid double-close on getsockname error in evutil_ersatz_socketpair (0a822a6) 1279959c1428SNick Mathewson o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e) 1280f9284c3eSNick Mathewson o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis) 1281f9284c3eSNick Mathewson 1282f9284c3eSNick MathewsonBUGFIXES (miscellaneous) 128337145c56SNick Mathewson o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471) 1284f9284c3eSNick Mathewson o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62) 1285f9284c3eSNick Mathewson 1286f9284c3eSNick MathewsonBUFGIXES (evdns) 1287f9284c3eSNick Mathewson o Checking request nameserver for NULL, before using it. (5c710c0 Belobrov Andrey) 1288f9284c3eSNick Mathewson o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (f8d7df8 Azat Khuzhin) 1289f9284c3eSNick Mathewson 1290f9284c3eSNick MathewsonBUGFIXES (evutil_secure_random) 1291f9284c3eSNick Mathewson o When we seed from /proc/sys/kernel/random/uuid, count it as success (e35b540) 1292f9284c3eSNick Mathewson o Document that arc4random is not a great cryptographic PRNG. (6e49696) 1293f9284c3eSNick Mathewson o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7) 1294f9284c3eSNick Mathewson o Really remove RNG seeds from the stack (f5ced88) 1295f9284c3eSNick Mathewson 1296959c1428SNick Mathewson 1297959c1428SNick MathewsonDOCUMENTATION FIXES 1298959c1428SNick Mathewson o Fix a mistake in evbuffer_remove() arguments in example http server code (c322c20 Gyepi Sam) 1299959c1428SNick Mathewson o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5) 130037145c56SNick Mathewson 1301f7d92c63SNick Mathewson 1302f7d92c63SNick Mathewson 13031c5517c9SNick MathewsonChanges in version 2.0.21-stable (18 Nov 2012) 13041c5517c9SNick MathewsonBUGFIXES: 13051c5517c9SNick Mathewson o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) 13061c5517c9SNick Mathewson o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) 13071c5517c9SNick Mathewson o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) 13081c5517c9SNick Mathewson o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) 13091c5517c9SNick Mathewson o build: Use python2 rather than python (0eb0109 Ross Lagerwall) 13101c5517c9SNick Mathewson o build: Compile without warnings on mingw64 (94866c2) 13111c5517c9SNick Mathewson o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) 13121c5517c9SNick Mathewson o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) 13131c5517c9SNick Mathewson o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) 13141c5517c9SNick Mathewson o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) 13151c5517c9SNick Mathewson o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) 13161c5517c9SNick Mathewson o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) 13171c5517c9SNick Mathewson o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) 1318484e93c1SNick Mathewson 1319484e93c1SNick Mathewson 132041d77a7cSNick MathewsonChanges in version 2.0.20-stable (23 Aug 2012) 1321fc43cbdcSNick MathewsonBUGFIXES: 1322fc43cbdcSNick Mathewson o core: Make event_pending() threadsafe. (be7a95c Simon Liu) 1323fc43cbdcSNick Mathewson o win32: avoid crash when waiting forever on zero fds. (160e58b) 1324fc43cbdcSNick Mathewson o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31) 1325fc43cbdcSNick Mathewson o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c) 1326fc43cbdcSNick Mathewson o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67) 1327fc43cbdcSNick Mathewson o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3) 1328fc43cbdcSNick Mathewson o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel) 1329fc43cbdcSNick Mathewson o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43) 1330fc43cbdcSNick Mathewson 1331fc43cbdcSNick Mathewson 1332fc43cbdcSNick MathewsonPORTABILITY FIXES: 1333fc43cbdcSNick Mathewson o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel) 1334fc43cbdcSNick Mathewson o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn) 1335fc43cbdcSNick Mathewson o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6) 1336fc43cbdcSNick Mathewson 1337fc43cbdcSNick MathewsonBUILD FIXES: 1338fc43cbdcSNick Mathewson o Add GCC annotations so that the vsprintf functions get checked properly (117e327) 1339fc43cbdcSNick Mathewson o Fix an unused variable warning on *BSD. (c0720c1) 1340fc43cbdcSNick Mathewson 1341fc43cbdcSNick MathewsonUNIT TEST FIXES: 1342fc43cbdcSNick Mathewson o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall) 1343fc43cbdcSNick Mathewson o Remove deadcode in http regression tests. Found by coverity. (5553346) 1344fc43cbdcSNick Mathewson o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777) 1345fc43cbdcSNick Mathewson o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d) 1346fc43cbdcSNick Mathewson o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d) 1347fc43cbdcSNick Mathewson o Fix resource leaks in the unit tests; found by coverity (270f279) 1348fc43cbdcSNick Mathewson o Add some missing null checks to unit tests; found by coverity (f021c3d) 1349fc43cbdcSNick Mathewson o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf) 1350fc43cbdcSNick Mathewson o Remove unused variable; spotted by coverity (6355b2a) 1351fc43cbdcSNick Mathewson o Add checks to various return values in unit tests. Found by coverity (b9e7329) 1352fc43cbdcSNick Mathewson o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0) 1353fc43cbdcSNick Mathewson 1354faa92253SNick Mathewson 1355faa92253SNick Mathewson 13568a9b0cdfSNick MathewsonChanges in version 2.0.19-stable (3 May 2012) 1357cecb111bSNick MathewsonBUGFIXES (CORE): 1358cecb111bSNick Mathewson o Refactor event_persist_closure: raise and extract some common logic (bec22b4) 1359cecb111bSNick Mathewson o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c) 1360cecb111bSNick Mathewson o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40) 1361cecb111bSNick Mathewson 1362cecb111bSNick MathewsonBUGFIXES (SSL): 1363cecb111bSNick Mathewson o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey) 1364cecb111bSNick Mathewson 1365cecb111bSNick MathewsonBUGFIXES (DNS): 1366cecb111bSNick Mathewson o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel) 1367cecb111bSNick Mathewson o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel) 1368cecb111bSNick Mathewson o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a) 1369cecb111bSNick Mathewson 1370cecb111bSNick MathewsonDOCUMENTATION FIXES: 1371cecb111bSNick Mathewson o Fix a typo in the bufferevent documentation (98e9119) 1372cecb111bSNick Mathewson o Add missing ) to changelog; spotted by rransom (4c7ee6b) 1373cecb111bSNick Mathewson o Fix the website URL in the readme (f775521) 1374cecb111bSNick Mathewson 1375cecb111bSNick MathewsonCOMPILATION FIXES: 1376cecb111bSNick Mathewson o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae) 1377cecb111bSNick Mathewson o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn) 1378cecb111bSNick Mathewson o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg) 1379cecb111bSNick Mathewson 1380cecb111bSNick MathewsonFORWARD-COMPATIBILITY: 1381cecb111bSNick Mathewson o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2) 1382cecb111bSNick Mathewson 1383cecb111bSNick MathewsonTESTING/DEBUGGING SUPPORT: 1384cecb111bSNick Mathewson o dns-example.c can now take a resolv.conf file on the commandline (6610fa5) 1385cecb111bSNick Mathewson o Make some evdns.c debug logs more verbose (d873d67) 1386cecb111bSNick Mathewson o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd) 1387cecb111bSNick Mathewson 138825a424fbSNick Mathewson 138925a424fbSNick Mathewson 139077342926SNick MathewsonChanges in version 2.0.18-stable (22 Mar 2012) 139177342926SNick MathewsonBUGFIXES (core): 139277342926SNick Mathewson o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42) 139377342926SNick Mathewson 139477342926SNick MathewsonBUGFIXES (kqueue): 139577342926SNick Mathewson o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn) 139677342926SNick Mathewson 139777342926SNick MathewsonBUILD FIXES: 139877342926SNick Mathewson o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey) 139977342926SNick Mathewson o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey) 140077342926SNick Mathewson o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn) 140177342926SNick Mathewson 140277342926SNick MathewsonBUGFIXES (dns): 140377342926SNick Mathewson o Stop crashing in evdns when nameserver probes give a weird error (bec5068) 140477342926SNick Mathewson 14050c483170SNick Mathewson 14060cdbd642SNick MathewsonChanges in version 2.0.17-stable (10 Feb 2012) 1407edc6d7d7SNick Mathewson 1408edc6d7d7SNick MathewsonBUGFIXES (core): 1409edc6d7d7SNick Mathewson o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5) 1410edc6d7d7SNick Mathewson o check for sysctl before we use it (358c745 Mike Frysinger) 1411edc6d7d7SNick Mathewson o Remove bogus casts of socket to int before calling ev_callback (f032516) 1412edc6d7d7SNick Mathewson o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720) 1413edc6d7d7SNick Mathewson o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc) 1414edc6d7d7SNick Mathewson o Fix a fd leak in event_reinit() (3f18ad1) 14156f6cebe3SNick Mathewson o Do a memberwise comparison of threading function tables (c94a5f2 Nate R) 14166f6cebe3SNick Mathewson o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill) 14174c7ee6b0SNick Mathewson o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6) 14180cdbd642SNick Mathewson o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott) 1419edc6d7d7SNick Mathewson 1420edc6d7d7SNick MathewsonBUGFIXES (evbuffer and bufferevents): 1421edc6d7d7SNick Mathewson o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg) 14226f6cebe3SNick Mathewson o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812) 1423edc6d7d7SNick Mathewson 1424edc6d7d7SNick MathewsonBUGFIXES (evhttp): 1425edc6d7d7SNick Mathewson o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea) 1426edc6d7d7SNick Mathewson 14276f6cebe3SNick MathewsonBUGFIXES (evdns): 14286f6cebe3SNick Mathewson o evdns: fix a bug in circular-queue implementation (d6094b1) 14296f6cebe3SNick Mathewson 1430edc6d7d7SNick MathewsonBUILD FIXES: 1431edc6d7d7SNick Mathewson o Fix a silly compilation error with the sun compiler (1927776 Colin Watt) 1432edc6d7d7SNick Mathewson o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c) 1433edc6d7d7SNick Mathewson 1434edc6d7d7SNick MathewsonDOCUMENTATION FIXES: 1435edc6d7d7SNick Mathewson o Slightly clarify evbuffer_peek documentation (7bbf6ca) 14360cdbd642SNick Mathewson o Update copyright notices to 2012 (e49e289) 1437edc6d7d7SNick Mathewson 1438edc6d7d7SNick MathewsonNEW APIS: 1439edc6d7d7SNick Mathewson o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker) 1440edc6d7d7SNick Mathewson 1441edc6d7d7SNick MathewsonTESTS AND TEST FIXES: 1442edc6d7d7SNick Mathewson o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7) 1443edc6d7d7SNick Mathewson o Add function to check referential integrity of an event_base (27737d5) 1444edc6d7d7SNick Mathewson o Check event_base correctness at end of each unit test (3312b02) 1445edc6d7d7SNick Mathewson o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187) 14466f6cebe3SNick Mathewson o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259) 1447edc6d7d7SNick Mathewson 144831c99bd2SNick MathewsonChanges in version 2.0.16-stable (18 Nov 2011) 144931c99bd2SNick MathewsonBUGFIXES (core): 145031c99bd2SNick Mathewson o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov) 145134045c8fSNick Mathewson o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles) 145234045c8fSNick Mathewson o Fix compile warning from saying event2/*.h inside a comment (447b0ba) 145334045c8fSNick Mathewson o Warn when unable to construct base because of failing make_base_notifiable (4e797f3) 145434045c8fSNick Mathewson o Don't try to make notifiable event_base when no threading fns are configured (e787413) 145534045c8fSNick Mathewson 145631c99bd2SNick MathewsonBUGFIXES (evbuffer): 145731c99bd2SNick Mathewson o unit test for remove_buffer bug (90bd620 Greg Hazel) 145834045c8fSNick Mathewson o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c) 145934045c8fSNick Mathewson 146031c99bd2SNick MathewsonBUGFIXES (bufferevent_openssl): 146131c99bd2SNick Mathewson o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey) 146231c99bd2SNick Mathewson o Move SSL rate-limit enforcement into bytes_to_read() (96c562f) 146331c99bd2SNick Mathewson o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey) 146431c99bd2SNick Mathewson 146531c99bd2SNick MathewsonBUGFIXES (dns) 146634045c8fSNick Mathewson o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov) 146734045c8fSNick Mathewson 146834045c8fSNick MathewsonTESTING: 146934045c8fSNick Mathewson o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov) 147034045c8fSNick Mathewson o Test for commit aff6ba1 (f7841bf Leonid Evdokimov) 147131c99bd2SNick Mathewson o Style and comment tweaks for dns/leak* tests (5e42202) 147234045c8fSNick Mathewson o improve test to remove at least one buffer from src (7eb52eb Greg Hazel) 147334045c8fSNick Mathewson 147431c99bd2SNick MathewsonDOCUMENTATION: 147534045c8fSNick Mathewson o Add note about evhttp_send_reply_end to its doxygen (724bfb5) 147631c99bd2SNick Mathewson o Update copyright dates to 2011. (3c824bd) 147734045c8fSNick Mathewson o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid) 147831c99bd2SNick Mathewson o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem) 147934045c8fSNick Mathewson 148034045c8fSNick Mathewson 148134045c8fSNick Mathewson 14827c3e0612SNick MathewsonChanges in version 2.0.15-stable (12 Oct 2011) 14837c3e0612SNick MathewsonBUGFIXES (DNS): 14847c3e0612SNick Mathewson o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov) 14857c3e0612SNick Mathewson o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov) 14867c3e0612SNick Mathewson 14877c3e0612SNick MathewsonBUFGIXES (bufferevents and evbuffers): 1488c54c2358SNick Mathewson o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex) 14897c3e0612SNick Mathewson o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9) 14907c3e0612SNick Mathewson 14917c3e0612SNick MathewsonBUGFIXES (event loop): 14927c3e0612SNick Mathewson o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a) 14937c3e0612SNick Mathewson 14947c3e0612SNick MathewsonDOCUMENTATION FIXES: 14957c3e0612SNick Mathewson o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov) 14967c3e0612SNick Mathewson o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel) 14977c3e0612SNick Mathewson 14987c3e0612SNick MathewsonBUILD AND TESTING FIXES: 14997c3e0612SNick Mathewson o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev) 15007c3e0612SNick Mathewson o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382) 15017c3e0612SNick Mathewson o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey) 15027c3e0612SNick Mathewson o Make write-checking fixes use tt_fail_perror (2b76847) 15037c3e0612SNick Mathewson o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7) 15047c3e0612SNick Mathewson 15057c3e0612SNick Mathewson 1506a718b6c3SNick Mathewson 1507da90a9beSNick MathewsonChanges in version 2.0.14-stable (31 Aug 2011) 15086476d92dSNick MathewsonBUGFIXES (bufferevents and evbuffers): 15096476d92dSNick Mathewson o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch) 15106476d92dSNick Mathewson o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn) 15116476d92dSNick Mathewson o Fix handling of group rate limits under 64 bytes of burst (6d5440e) 15126476d92dSNick Mathewson o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf) 15136476d92dSNick Mathewson o Make rate limiting work with common_timeout logic (5b18f13) 151485976ddfSNick Mathewson o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch) 15156476d92dSNick Mathewson 15166476d92dSNick MathewsonBUGFIXES (IOCP): 15176476d92dSNick Mathewson o IOCP: don't launch reads or writes on an unconnected socket (495c227) 15186476d92dSNick Mathewson o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b) 15196476d92dSNick Mathewson o Have test-ratelim.c support IOCP (0ff2c5a) 15206476d92dSNick Mathewson o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd) 15216476d92dSNick Mathewson o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d) 15226476d92dSNick Mathewson 15236476d92dSNick MathewsonBUGFIXES (other): 15246476d92dSNick Mathewson o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov) 15256476d92dSNick Mathewson o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov) 15266476d92dSNick Mathewson 15276476d92dSNick MathewsonBUILD AND TESTING FIXES: 15286476d92dSNick Mathewson o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston) 15296476d92dSNick Mathewson o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart) 15306476d92dSNick Mathewson o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn) 15316476d92dSNick Mathewson 15326476d92dSNick Mathewson 153362b8ce58SNick MathewsonChanges in version 2.0.13-stable (18 Jul 2011) 153462b8ce58SNick MathewsonBUGFIXES 153562b8ce58SNick Mathewson o Avoid race-condition when initializing global locks (b683cae) 153662b8ce58SNick Mathewson o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch) 153762b8ce58SNick Mathewson o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey) 153862b8ce58SNick Mathewson o Avoid a segfault when all methods are disabled or broken (27ce38b) 153962b8ce58SNick Mathewson o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a) 154062b8ce58SNick Mathewson o Add some missing checks for mm_calloc failures (89d5e09) 154162b8ce58SNick Mathewson o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d) 154262b8ce58SNick Mathewson o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab) 154362b8ce58SNick Mathewson o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid) 154462b8ce58SNick Mathewson o Use the correct printf args when formatting size_t (3203f88) 154562b8ce58SNick Mathewson o Complain if the caller tries to change threading cbs after setting them (cb6ecee) 154660c1426fSNick Mathewson 154762b8ce58SNick MathewsonDOCUMENTATION FIXES AND IMPROVEMENTS 154862b8ce58SNick Mathewson o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac) 154962b8ce58SNick Mathewson o Update Doxyfile to produce more useful output (aea0555) 155062b8ce58SNick Mathewson 155162b8ce58SNick MathewsonTEST FIXES 155262b8ce58SNick Mathewson o Fix up test_evutil_snprintf (caf695a) 155362b8ce58SNick Mathewson o Fix tinytest invocation from windows shell (57def34 Ed Day) 155462b8ce58SNick Mathewson 155562b8ce58SNick MathewsonBUILD FIXES 155662b8ce58SNick Mathewson o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d) 155762b8ce58SNick Mathewson o Fix select.c compilation on systems with no NFDBITS (49d1136) 155862b8ce58SNick Mathewson o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott) 155962b8ce58SNick Mathewson o Don't break when building tests from git without python installed (b031adf) 156062b8ce58SNick Mathewson o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn) 156162b8ce58SNick Mathewson o Fix AIX build issue with TAILQ_FOREACH definition (e934096) 156260c1426fSNick Mathewson 156360c1426fSNick Mathewson 1564452a8342SNick MathewsonChanges in version 2.0.12-stable (4 Jun 2011) 1565c3555837SNick MathewsonBUGFIXES 1566c3555837SNick Mathewson o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0) 1567c3555837SNick Mathewson o Fix an assert-inducing fencepost bug in the select backend (d90149d) 1568c3555837SNick Mathewson o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko) 1569c3555837SNick Mathewson o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1) 1570c3555837SNick Mathewson o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid) 1571c3555837SNick Mathewson o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey) 1572c3555837SNick Mathewson o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey) 1573c3555837SNick Mathewson 1574c3555837SNick MathewsonDOCUMENTATION: 1575c3555837SNick Mathewson o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d) 1576c3555837SNick Mathewson 1577c3555837SNick MathewsonBUILD FIXES 1578c3555837SNick Mathewson o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin) 1579c3555837SNick Mathewson o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin) 1580c3555837SNick Mathewson o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn) 1581c3555837SNick Mathewson o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn) 1582c3555837SNick Mathewson o Correctly detect openssl on windows (6619385 Sebastian Hahn) 1583c3555837SNick Mathewson o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn) 1584c3555837SNick Mathewson o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart) 1585c3555837SNick Mathewson o Fix new warnings from GCC 4.6 (06a714f) 1586c3555837SNick Mathewson o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin) 1587c3555837SNick Mathewson o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin) 1588c3555837SNick Mathewson o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin) 1589c3555837SNick Mathewson o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin) 1590c3555837SNick Mathewson o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin) 1591c3555837SNick Mathewson o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin) 1592c3555837SNick Mathewson o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin) 1593c3555837SNick Mathewson o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin) 1594c3555837SNick Mathewson o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn) 1595c3555837SNick Mathewson o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin) 1596c3555837SNick Mathewson o cygwin: make it possible to build DLLs (d54d3fc) 1597c3555837SNick Mathewson 1598c3555837SNick Mathewson 1599c3555837SNick Mathewson 1600d30466fcSNick MathewsonChanges in version 2.0.11-stable (27 Apr 2011) 1601d30466fcSNick Mathewson [Autogenerated from the Git log, sorted and cleaned by hand.] 1602d30466fcSNick MathewsonBUGFIXES: 1603d30466fcSNick Mathewson o Fix evport handling of POLLHUP and POLLERR (b42ce4b) 1604d30466fcSNick Mathewson o Fix compilation on Windows with NDEBUG (cb8059d) 1605d30466fcSNick Mathewson o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye) 1606d30466fcSNick Mathewson o Detect and handle more allocation failures. (666b096 Jardel Weyrich) 1607d30466fcSNick Mathewson o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich) 1608d30466fcSNick Mathewson o Handle resize failures in the select backend better. (83e805a) 1609d30466fcSNick Mathewson o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b) 1610d30466fcSNick Mathewson o Make --enable-gcc-warnings a no-op if not using gcc (3267703) 1611d30466fcSNick Mathewson o Fix a type error in our (unused) arc4random_stir() (f736198) 1612d30466fcSNick Mathewson o Correctly detect and stop non-chunked http requests when the body is too long (63a715e) 1613d30466fcSNick Mathewson o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7) 1614d30466fcSNick Mathewson o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko) 1615d30466fcSNick Mathewson o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot) 1616d30466fcSNick Mathewson o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko) 1617d30466fcSNick Mathewson o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko) 1618d30466fcSNick Mathewson o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko) 1619d30466fcSNick Mathewson o Fix a crash bug in evdns server circular list code (00e91b3) 1620d30466fcSNick Mathewson o Handle calloc failure in evdns. (Found by Dave Hart) (364291e) 1621d30466fcSNick Mathewson o Fix a memory leak on win32 socket->event map. (b4f89f0) 1622d30466fcSNick Mathewson o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn) 1623d30466fcSNick Mathewson o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn) 1624d30466fcSNick Mathewson 1625d30466fcSNick MathewsonPORTABILITY: 1626d30466fcSNick Mathewson o Fall back to sscanf if we have no other way to implement strtoll (453317b) 1627d30466fcSNick Mathewson o Build correctly on platforms without sockaddr_storage (9184563) 1628d30466fcSNick Mathewson o Try to build correctly on platforms with no IPv6 support (713c254) 1629d30466fcSNick Mathewson o Build on systems without AI_PASSIVE (cb92113) 1630d30466fcSNick Mathewson o Fix http unit test on non-windows platforms without getaddrinfo (6092f12) 1631d30466fcSNick Mathewson o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0) 1632d30466fcSNick Mathewson o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn) 1633d30466fcSNick Mathewson o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn) 1634d30466fcSNick Mathewson o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn) 1635d30466fcSNick Mathewson o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn) 1636d30466fcSNick Mathewson o Check for allocation failures in apply_socktype_protocol_hack (637d17a) 1637d30466fcSNick Mathewson o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b) 1638d30466fcSNick Mathewson o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68) 1639d30466fcSNick Mathewson 1640d30466fcSNick MathewsonDEFENSIVE PROGRAMMING: 1641d30466fcSNick Mathewson o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7) 1642d30466fcSNick Mathewson 1643d30466fcSNick MathewsonBUGS IN TESTS: 1644d30466fcSNick Mathewson o Fix test.sh output on solaris (b4f89b6 Dave Hart) 1645d30466fcSNick Mathewson o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn) 1646d30466fcSNick Mathewson o Use %s with printf in test.sh (039b9bd) 1647d30466fcSNick Mathewson o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn) 1648d30466fcSNick Mathewson o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn) 1649d30466fcSNick Mathewson o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn) 1650d30466fcSNick Mathewson o add some (void) casts for unused variables (65707d7 Sebastian Hahn) 1651d30466fcSNick Mathewson o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn) 1652d30466fcSNick Mathewson o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn) 1653d30466fcSNick Mathewson o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn) 1654d30466fcSNick Mathewson o Remote some dead code from dns-example.c (744c745 Sebastian Hahn) 1655d30466fcSNick Mathewson o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn) 1656d30466fcSNick Mathewson 1657d30466fcSNick MathewsonBUILD FIXES: 1658d30466fcSNick Mathewson o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn) 1659d30466fcSNick Mathewson o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn) 1660d30466fcSNick Mathewson o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn) 1661d30466fcSNick Mathewson o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart) 1662d30466fcSNick Mathewson o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart) 1663d30466fcSNick Mathewson o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn) 1664d30466fcSNick Mathewson 1665d30466fcSNick MathewsonFEATURES: 1666d30466fcSNick Mathewson o Make URI parser able to tolerate nonconformant URIs. (95060b5) 1667d30466fcSNick Mathewson 1668d30466fcSNick MathewsonDOCUMENTATION: 1669d30466fcSNick Mathewson o Clarify event_set_mem_functions doc (926f816) 1670d30466fcSNick Mathewson o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924) 1671d30466fcSNick Mathewson o fix spelling mistake in whatsnew-2.0.txt (deb2f73) 1672d30466fcSNick Mathewson o Fix sample/http-server ipv6 fixes (eb692be) 1673d30466fcSNick Mathewson o Comment internal headers used in sample code. (4eb281c) 1674d30466fcSNick Mathewson o Be explicit about how long event loops run in event.h documentation (f95bafb) 1675d30466fcSNick Mathewson o Add comment to configure.in to explain gc-sections test logic (c621359) 1676d30466fcSNick Mathewson o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665) 1677d30466fcSNick Mathewson 167837145c56SNick Mathewson 1679143cb613SNick Mathewson 1680143cb613SNick MathewsonBUILD IMPROVEMENTS: 1681143cb613SNick Mathewson Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes 1682143cb613SNick Mathewson numerous other build system. Parallel builds should be faster, and all 1683143cb613SNick Mathewson builds should be quieter. 1684143cb613SNick Mathewson 1685143cb613SNick Mathewson o Split long lists in Makefile.am into one-item-per-line (2711cda) 1686143cb613SNick Mathewson o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) 1687143cb613SNick Mathewson o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) 1688143cb613SNick Mathewson o Use newer syntax for autoconf/automake init (7d60ba8) 1689143cb613SNick Mathewson o Enable silent build rules by default. Override with V=1 (7b18e5c) 1690143cb613SNick Mathewson o Switch to non-recursive makefiles (7092f3b) 1691143cb613SNick Mathewson o Rename subordinate Makefile.ams to include.am (6cdfeeb) 1692143cb613SNick Mathewson o Make quiet build even quieter (371a123) 1693143cb613SNick Mathewson o New --quiet option for event_rpcgen.py (aa59c1e) 1694143cb613SNick Mathewson o Be quiet when making regress.gen.[ch] (607a8ff) 1695143cb613SNick Mathewson o Fix handling of no-python case for nonrecursive make (1e3123d) 1696143cb613SNick Mathewson o We now require automake 1.9 or later. Modernize! (b7f6e89) 1697143cb613SNick Mathewson o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) 1698143cb613SNick Mathewson o Use correct openssl libs and includes in pkgconfig file (d70af27) 1699143cb613SNick Mathewson o Use the same CFLAGS for openssl when building unit tests as with 1700143cb613SNick Mathewson libevent (1d9d511) 1701143cb613SNick Mathewson 1702143cb613SNick MathewsonDOCUMENTATION 1703143cb613SNick Mathewson o Note that make_base_notifiable should not be necessary (26ee5f9) 1704143cb613SNick Mathewson o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) 1705143cb613SNick Mathewson o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) 1706143cb613SNick Mathewson o Make it more clear that NOLOCK means "I promise, no multithreading" 1707143cb613SNick Mathewson (9444524) 1708143cb613SNick Mathewson o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) 1709143cb613SNick Mathewson o Make the Makefile.nmake warning slightly less dire (e7bf4c8) 1710143cb613SNick Mathewson o Fix typo : events instead of evets (05f1aca Azat Khuzhin) 1711143cb613SNick Mathewson o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart 1712143cb613SNick Mathewson (6bde2ef Patrick Pelletier) 1713143cb613SNick Mathewson 1714143cb613SNick MathewsonEVHTTP: 1715143cb613SNick Mathewson o ignore LWS after field-content in headers (370a2c0 Artem Germanov) 1716143cb613SNick Mathewson o Clean up rtrim implementation (aa59d80) 1717143cb613SNick Mathewson o Remove trailing tabs in HTTP headers as well. (ac42519) 1718143cb613SNick Mathewson o Remove internal ws from multiline http headers correctly (c6ff381) 1719143cb613SNick Mathewson o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) 1720143cb613SNick Mathewson o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) 1721143cb613SNick Mathewson o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in 1722143cb613SNick Mathewson evhttp_connection_fail_ (7afbd60) 1723143cb613SNick Mathewson o preserve errno in evhttp_connection_fail_ for inspection by the 1724143cb613SNick Mathewson callback (36d0ee5 Patrick Pelletier) 1725143cb613SNick Mathewson 1726143cb613SNick MathewsonBUGFIXES: 1727143cb613SNick Mathewson o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) 1728143cb613SNick Mathewson o Avoid double-free on error in evbuffer_add_file. Found by 1729143cb613SNick Mathewson coverity. (6a81b1f) 1730143cb613SNick Mathewson o Fix another possible uninitialized read in dns regression tests. Found 1731143cb613SNick Mathewson by coverity. (13525c5) 1732143cb613SNick Mathewson o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) 1733143cb613SNick Mathewson o Avoid memory leak in test_event_calloc unit test; found by coverity 1734143cb613SNick Mathewson (92817a1) 1735143cb613SNick Mathewson o Fix a shadowed variable in addfile_test_readcb; found by coverity 1736143cb613SNick Mathewson (225344c) 1737143cb613SNick Mathewson o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by 1738143cb613SNick Mathewson coverity (6487f63) 1739143cb613SNick Mathewson o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 1740143cb613SNick Mathewson Joachim Bauch) 1741143cb613SNick Mathewson o Make event_base_getnpriorities work with old "implicit base" code 1742143cb613SNick Mathewson (c46cb9c) 1743143cb613SNick Mathewson o Simplify and correct evutil_open_closeonexec_ (0de587f) 1744143cb613SNick Mathewson o Fix event_dlist definition when sys/queue not included (81b6209 1745143cb613SNick Mathewson Derrick Pallas) 1746143cb613SNick Mathewson 1747143cb613SNick Mathewson 1748d9a55153SNick Mathewson 17492dedff36SNick MathewsonChanges in version 2.1.1-alpha (4 Apr 2012) 1750d30466fcSNick Mathewson 17512dedff36SNick Mathewson Libevent 2.1.1-alpha includes a number of new features and performance 17522dedff36SNick Mathewson improvements. The log below tries to organize them by rough area of 17532dedff36SNick Mathewson effect. It omits some commits which were pure bugfixes on other commits 17542dedff36SNick Mathewson listed below. For more detail, see the git changelogs. For more 17552dedff36SNick Mathewson insight, see the "whatsnew-2.1.txt" document included in the Libevent 17562dedff36SNick Mathewson 2.1.1-alpha distribution. 1757d30466fcSNick Mathewson 17582dedff36SNick Mathewson Performance: Core 17592dedff36SNick Mathewson o Replace several TAILQ users with LIST. LIST can be a little faster than 17602dedff36SNick Mathewson TAILQ for cases where we don't need queue-like behavior. (f9db33d, 17612dedff36SNick Mathewson 6494772, d313c29, 974d004) 17622dedff36SNick Mathewson o Disabled code to optimize the case where we reinsert an existing 17632dedff36SNick Mathewson timeout (e47042f, 09cbc3d) 17642dedff36SNick Mathewson o Remove a needless base-notify when rescheduling the first timeout (77a96fd) 17652dedff36SNick Mathewson o Save a needless comparison when removing/adjusting timeouts (dd5189b) 17662dedff36SNick Mathewson o Possible optimization: split event_queue_insert/remove into 17672dedff36SNick Mathewson separate functions. needs testing (efc4dc5) 176888b4f0bbSNick Mathewson o Make event_count maintenance branchless at the expense of an 17692dedff36SNick Mathewson extra shift. Needs benchmarking (d1cee3b) 17702dedff36SNick Mathewson o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime 17712dedff36SNick Mathewson comparison (2a83ecc) 17722dedff36SNick Mathewson o Optimization in event_process_active(): ignore maxcb & endtime 17732dedff36SNick Mathewson for highest priority events. (a9866aa Alexander Drozdov) 17742dedff36SNick Mathewson o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95) 17752dedff36SNick Mathewson o Remove the eventqueue list and the ev_next pointers. (604569b 066775e) 1776d30466fcSNick Mathewson 17772dedff36SNick Mathewson Performance: Evbuffers 17782dedff36SNick Mathewson o Roughly 20% speed increase when line-draining a buffer using 17792dedff36SNick Mathewson EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib) 17802dedff36SNick Mathewson o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139) 17812dedff36SNick Mathewson o Fix a bug in the improved EOL_CRLF code (d927965) 17822dedff36SNick Mathewson o Remove a needless branch in evbuffer_drain() (d19a326) 1783d30466fcSNick Mathewson 17842dedff36SNick Mathewson Performance: Linux 17852dedff36SNick Mathewson o Infrastructure for using faster/fewer syscalls when creating 17862dedff36SNick Mathewson sockets (a1c042b) 17872dedff36SNick Mathewson o Minimize syscalls during socket creation in listener.c (7e9e289) 17882dedff36SNick Mathewson o Use a wrapper function to create the notification 17892dedff36SNick Mathewson pipe/socketpair/eventfd (ca76cd9) 17902dedff36SNick Mathewson o Use pipes for telling signals to main thread when possible (a35f396) 17912dedff36SNick Mathewson o Save syscalls when constructing listener sockets for evhttp (af6c9d8) 17922dedff36SNick Mathewson o Save some syscalls when creating evdns sockets (713e570) 17932dedff36SNick Mathewson o Save some syscalls when constructing a socket for a bufferevent (33fca62) 17942dedff36SNick Mathewson o Prefer epoll_create1 on Linuxen that have it (bac906c) 1795d30466fcSNick Mathewson 17962dedff36SNick Mathewson Performance: Epoll backend 17972dedff36SNick Mathewson o Use current event set rather than current pending change when 17982dedff36SNick Mathewson deciding whether to no-op a del (04ba27e Mike Smellie) 17992dedff36SNick Mathewson o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6) 18002dedff36SNick Mathewson o Clean up error handling in epoll_apply_one_change() a little (2d55a19) 1801d30466fcSNick Mathewson 18022dedff36SNick Mathewson Performance: Evport backend 18032dedff36SNick Mathewson o evport: use evmap_io to track fdinfo status. Should save time and 18042dedff36SNick Mathewson RAM. (4687ce4) 18052dedff36SNick Mathewson o evport: Remove a linear search over recent events when 18062dedff36SNick Mathewson reactivating them (0f77efe) 18072dedff36SNick Mathewson o evport: Use portev_user to remember fdinfo struct (276ec0e) 18082dedff36SNick Mathewson o evport: don't scan more events in ed_pending than needed (849a5cf) 18092dedff36SNick Mathewson o evport: Remove artificial low limit on max events per getn call (c04d927) 18102dedff36SNick Mathewson o Reenable main/many_events_slow_add for evport in 2.1 (e903db3) 1811d30466fcSNick Mathewson 18122dedff36SNick Mathewson Performance: Windows 18132dedff36SNick Mathewson o Use GetSystemTimeAsFileTime to implement gettimeofday on 18142dedff36SNick Mathewson win32. It's faster and more accurate than our old 18152dedff36SNick Mathewson approach. (b8b8aa5) 1816d30466fcSNick Mathewson 18172dedff36SNick Mathewson New functions and features: debugging 18182dedff36SNick Mathewson o Add event_enable_debug_logging() to control use of debug logs (e30a82f) 1819d30466fcSNick Mathewson 18202dedff36SNick Mathewson New functions and features: core 18212dedff36SNick Mathewson o Add event_config function to limit time/callbacks between calls 18222dedff36SNick Mathewson to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd) 18232dedff36SNick Mathewson o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no 18242dedff36SNick Mathewson events are pending (084e68f) 18252dedff36SNick Mathewson o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov) 18262dedff36SNick Mathewson o Make evbase_priority_init() and evbase_get_npriorities() 18272dedff36SNick Mathewson threadsafe (3c55b5e) 18282dedff36SNick Mathewson o New event_base_update_cache_time() to set cached_tv to current 18292dedff36SNick Mathewson time (212533e Abel Mathew) 18302dedff36SNick Mathewson o Add event_self_cbarg() to be used in conjunction with 18312dedff36SNick Mathewson event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c, 18322dedff36SNick Mathewson 33e43ef) 18332dedff36SNick Mathewson o Add a new libevent_global_shutdown() to free all globals before 18342dedff36SNick Mathewson exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b) 18352dedff36SNick Mathewson o Use getifaddrs to detect our interfaces if possible (7085a45) 18362dedff36SNick Mathewson o Add event_base_get_running_event() to get the event* whose cb we 18372dedff36SNick Mathewson are in (c5732fd, 13dad99) 1838d30466fcSNick Mathewson 18392dedff36SNick Mathewson New functions and features: building 18402dedff36SNick Mathewson o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn) 1841d30466fcSNick Mathewson 18422dedff36SNick Mathewson New functions and features: evbuffers 18432dedff36SNick Mathewson o Add evbuffer_add_file_segment() so one fd can be used efficiently 18442dedff36SNick Mathewson in more than one evbuffer_add_file at a time (e72afae, c2d9884, 18452dedff36SNick Mathewson 3f405d2, 0aad014) 18462dedff36SNick Mathewson o Fix windows file segment mappings (8254de7) 18472dedff36SNick Mathewson o Allow evbuffer_ptr_set to yield a point just after the end of the 18482dedff36SNick Mathewson buffer. (e6fe1da) 18492dedff36SNick Mathewson o Allow evbuffer_ptr to point to position 0 in an empty evbuffer 18502dedff36SNick Mathewson (7aeb2fd Nir Soffer) 185188b4f0bbSNick Mathewson o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer) 18522dedff36SNick Mathewson o support adding buffers to other buffers non-destructively 18532dedff36SNick Mathewson (9d7368a Joachim Bauch) 18542dedff36SNick Mathewson o prevent nested multicast references, reworked locking (26041a8 18552dedff36SNick Mathewson Joachim Bauch) 18562dedff36SNick Mathewson o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an 18572dedff36SNick Mathewson evbuffer (d7a8b36 Andrea Montefusco, 54142c9) 18582dedff36SNick Mathewson o Make evbuffer_file_segment_types adaptable (c6bbbf1) 18592dedff36SNick Mathewson o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398) 18602dedff36SNick Mathewson o Add evbuffer_copyout_from to copy data from the middle of a 18612dedff36SNick Mathewson buffer (27e2225) 1862d30466fcSNick Mathewson 18632dedff36SNick Mathewson New functions and features: bufferevents 18642dedff36SNick Mathewson o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea) 18652dedff36SNick Mathewson o Tweak allow_dirty_shutdown documentation (a44cd2b) 18662dedff36SNick Mathewson o Fix two issues in the allow_dirty_shutdown code. (f3b89de) 18672dedff36SNick Mathewson o Add a bufferevent_getcb() to find a bufferevent's current 18682dedff36SNick Mathewson callbacks (a650394) 18692dedff36SNick Mathewson o bufferevent: Add functions to set/get max_single_read/write 18702dedff36SNick Mathewson values. (998c813 Alexander Drozdov) 18712dedff36SNick Mathewson o bev_ssl: Be more specific in event callbacks. evhttp in particular gets 18722dedff36SNick Mathewson confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a 18732dedff36SNick Mathewson Catalin Patulea) 1874d30466fcSNick Mathewson 18752dedff36SNick Mathewson New functions and features: evconnlisteners 18762dedff36SNick Mathewson o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey, 18772dedff36SNick Mathewson a270728) 18782dedff36SNick Mathewson o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728) 18792dedff36SNick Mathewson o Allow evconnlistener to be created in disabled state. (9593a33 18802dedff36SNick Mathewson Alexander Drozdov) 18812dedff36SNick Mathewson o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener 18822dedff36SNick Mathewson sockets too (4970329) 1883d30466fcSNick Mathewson 18842dedff36SNick Mathewson Evhttp: 18852dedff36SNick Mathewson o Add new evhttp_{connection_}set_timeout_tv() functions to set 18862dedff36SNick Mathewson finger-grained http timeouts (6350e6c Constantine Verutin) 18872dedff36SNick Mathewson o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey) 18882dedff36SNick Mathewson o Add missing break to evhttp_parse_request_line (0fcc536) 18892dedff36SNick Mathewson o Add evhttp callback for bufferevent creation; this lets evhttp 18902dedff36SNick Mathewson support SSL. (8d3a850) 18912dedff36SNick Mathewson o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758) 18922dedff36SNick Mathewson o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra) 1893d30466fcSNick Mathewson 18942dedff36SNick Mathewson Build improvements: 18952dedff36SNick Mathewson o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on 18962dedff36SNick Mathewson patches for correctness and robustness. (1fa7dbe Kevin Bowling) 18972dedff36SNick Mathewson o Filter '# define' statements from autoconf and generate 18982dedff36SNick Mathewson event-private.h (321b558 Kevin Bowling) 18992dedff36SNick Mathewson o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling) 19002dedff36SNick Mathewson o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93 19012dedff36SNick Mathewson Kevin Bowling) 19022dedff36SNick Mathewson o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling) 19032dedff36SNick Mathewson o Use a Configuration Header Template for evconfig-private.h (868f888 19042dedff36SNick Mathewson Kevin Bowling) 19052dedff36SNick Mathewson o Fix a comment warning and add evconfig-private.h to .gitignore 19062dedff36SNick Mathewson (f6d66bc Kevin Bowling) 19072dedff36SNick Mathewson o Include evconfig-private.h in internal files for great good. (0915ca0 19082dedff36SNick Mathewson Kevin Bowling) 19092dedff36SNick Mathewson o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) 19102dedff36SNick Mathewson (ad03952 Kevin Bowling) 19112dedff36SNick Mathewson o Prefer the ./configure evconfig-private.h in MinGW, just in 19122dedff36SNick Mathewson case. (f964b72 Kevin Bowling) 19132dedff36SNick Mathewson o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling) 19142dedff36SNick Mathewson o Add evconfig-private to remaining files (ded0a09 Kevin Bowling) 19152dedff36SNick Mathewson o Allow use of --enable-silent-rules for quieter compilation with 19162dedff36SNick Mathewson automake 1.11 (f1f8514 Dave Hart) 19172dedff36SNick Mathewson o Use "_WIN32", not WIN32: it's standard and we don't need to fake it 19182dedff36SNick Mathewson (9f560b) 19192dedff36SNick Mathewson o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin) 19202dedff36SNick Mathewson o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin) 19212dedff36SNick Mathewson o Provide the autoconf m4 macros for the new OpenSSL via pkg-config 19222dedff36SNick Mathewson stuff. (674dc3d Harlan Stenn) 19232dedff36SNick Mathewson o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn) 19242dedff36SNick Mathewson o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b 19252dedff36SNick Mathewson Harlan Stenn) 19262dedff36SNick Mathewson o Fix OSX build: $(OPENSSL_INCS) needs to be after 19272dedff36SNick Mathewson $(AM_CPPFLAGS). (46f1769 Zack Weinberg) 19282dedff36SNick Mathewson o Make gcc warnings on by default, and --enable-gcc-warnings only add 19292dedff36SNick Mathewson -Werror (d46517e Sebastian Hahn) 19302dedff36SNick Mathewson o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad) 19312dedff36SNick Mathewson o Move libevent 1.x headers to include/, to put all public headers in 19322dedff36SNick Mathewson one place. (bbea8d6) 19332dedff36SNick Mathewson o Put #ifdef around some files to support alternate build 19342dedff36SNick Mathewson systems. (76d4c92 Ross Lagerwall) 19352dedff36SNick Mathewson o Also make win32select.c conditional for IDE users (bf2c5a7) 1936d30466fcSNick Mathewson 19372dedff36SNick Mathewson Debugging: 19382dedff36SNick Mathewson o Add a magic number to debug_locks to better catch lock-coding 19392dedff36SNick Mathewson errors. (b4a29c0 Dave Hart) 19402dedff36SNick Mathewson o munge the debug_lock signature before freeing it: it might help us 19412dedff36SNick Mathewson catch use-after-free (f28084d) 19422dedff36SNick Mathewson o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey) 19432dedff36SNick Mathewson o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey) 19442dedff36SNick Mathewson o Added usec debug in another area for debug (3baab0d Mark Ellzey) 19452dedff36SNick Mathewson o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey) 19462dedff36SNick Mathewson o more event dbg updates (6727543 Mark Ellzey) 19472dedff36SNick Mathewson o Clarify event_enable_debug_logging a little (6207826) 19482dedff36SNick Mathewson o Make --enable-verbose-debug option match its help text (10c3450) 19492dedff36SNick Mathewson o Add argument checks to some memory functions in `event.c'. (c8953d1 19502dedff36SNick Mathewson Mansour Moufid) 1951d30466fcSNick Mathewson 19522dedff36SNick Mathewson Testing: 19532dedff36SNick Mathewson o More abstraction in test.sh (cd74c4e) 19542dedff36SNick Mathewson o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer) 19552dedff36SNick Mathewson o Tweaks to return types with end-of-buf ptrs (9ab8ab8) 19562dedff36SNick Mathewson o Add an (internal) usleep function for use by unit tests (f25d9d3) 19572dedff36SNick Mathewson o Synchronize with upstream tinytest (6c81be7) 19582dedff36SNick Mathewson o Make test-changelist faster (7622d26) 19592dedff36SNick Mathewson o Reduce the timeout in the main/fork test. (ab14f7c) 19602dedff36SNick Mathewson o New evhttp function to adjust initial retry timeout (350a3c4) 19612dedff36SNick Mathewson o Make regression tests run over 3x faster. (67a1763) 19622dedff36SNick Mathewson o Use test_timeval_diff_eq more consistently (b77b43f) 19632dedff36SNick Mathewson o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f) 19642dedff36SNick Mathewson o When including an -internal.h header outside the main tree, do so 19652dedff36SNick Mathewson early (95e2455) 19662dedff36SNick Mathewson o Add a new test: test-fdleak which tests for fd leaks by creating many 19672dedff36SNick Mathewson sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc) 19682dedff36SNick Mathewson o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce) 19692dedff36SNick Mathewson o Test more bufferevent_ratelim features (c24f91a) 1970d30466fcSNick Mathewson 19712dedff36SNick Mathewson Documentation: 19722dedff36SNick Mathewson o Improve evbuffer_ptr documentation (261ba63) 197388b4f0bbSNick Mathewson o added comments to describe refcounting of multicast chains (ba24f61 19742dedff36SNick Mathewson Joachim Bauch) 19752dedff36SNick Mathewson o Add doxygen for event_base_dump_events (cad5753) 1976d30466fcSNick Mathewson 19772dedff36SNick Mathewson OSX: 19782dedff36SNick Mathewson o Use "unlimited select" on OSX so that we can have more than 19792dedff36SNick Mathewson FD_SETSIZE fds (1fb5cc6) 1980d30466fcSNick Mathewson 19812dedff36SNick Mathewson KQueue: 19822dedff36SNick Mathewson o Use SIG_IGN instead of a do-nothing handler for signal events with 19832dedff36SNick Mathewson kqueue (148458e Zack Weinberg) 1984d30466fcSNick Mathewson 19852dedff36SNick Mathewson evprc: 19862dedff36SNick Mathewson o event_rpcgen.py now prints status information to stdout and errors to 19872dedff36SNick Mathewson stderr. (ffb0ba0 Ross Lagerwall) 1988d30466fcSNick Mathewson 19892dedff36SNick Mathewson Code improvement and refactoring: 19902dedff36SNick Mathewson o Make event_reinit() more robust and maintainable (272033e) 19912dedff36SNick Mathewson o Restore fast-path event_reinit() for slower backends (2c4b5de) 19922dedff36SNick Mathewson o Check changelist as part of checking representational integrity (39b3f38) 19932dedff36SNick Mathewson o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn) 19942dedff36SNick Mathewson o Refactor the functions that run over every event. (c89b4e6) 19952dedff36SNick Mathewson o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90) 19962dedff36SNick Mathewson o Make event-config.h depend on Makefile.am (2958a5c) 1997d30466fcSNick Mathewson 19982dedff36SNick Mathewson Build fixes: 19992dedff36SNick Mathewson o Don't do clang version detection when disabling some flags (083296b 20002dedff36SNick Mathewson Sebastian Hahn) 2001d30466fcSNick Mathewson 20022dedff36SNick Mathewson C standards conformance: 20032dedff36SNick Mathewson o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69) 20042dedff36SNick Mathewson o Convert event-config.h macros to avoid reserved identifiers (68120d9) 20052dedff36SNick Mathewson o Generate event-config.h using the correct macros. (f82c57e) 20062dedff36SNick Mathewson o Convert include-guard macro convention to avoid reserved identifiers 20072dedff36SNick Mathewson (3f8c7cd) 200888b4f0bbSNick Mathewson o Make event_rpcgen.py output conform to identifier conventions (372bff1) 20092dedff36SNick Mathewson o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0) 20102dedff36SNick Mathewson o Make the generated event-config.h use correct include guards (639383a) 20112dedff36SNick Mathewson o Fix all identifiers with names beginning with underscore. (cb9da0b) 201288b4f0bbSNick Mathewson o Make event_rpcgen.py output conform to identifier conventions, more 20132dedff36SNick Mathewson (bcefd24) 20142dedff36SNick Mathewson o Fix some problems introduced by automated identifier cleanup script 20152dedff36SNick Mathewson (c963534) 20162dedff36SNick Mathewson o Have all visible internal function names end with an underscore. (8ac3c4c) 20172dedff36SNick Mathewson o Apply the naming convention to our EVUTIL_IS* functions (c7848fa) 20182dedff36SNick Mathewson o Clean up lingering _identifiers. (946b584) 20192dedff36SNick Mathewson o Fix doxygen to use new macro conventions (da455e9) 2020d30466fcSNick Mathewson 20212dedff36SNick Mathewson Bugfixes: 20222dedff36SNick Mathewson o Do not use system EAI/AI values if we are not using the system 20232dedff36SNick Mathewson getaddrinfo. (7bcac07) 2024d30466fcSNick Mathewson 20252dedff36SNick Mathewson Sample Code: 20262dedff36SNick Mathewson o Fix up sample/event-test.c to use newer interfaces and make it 20272dedff36SNick Mathewson actually work. (19bab4f Ross Lagerwall) 20282dedff36SNick Mathewson o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross 20292dedff36SNick Mathewson Lagerwall) 20302dedff36SNick Mathewson o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall) 20312dedff36SNick Mathewson o event-read-fifo: Use EV_PERSIST appropriately (24dab0b) 203215be0493SNick Mathewson 20331aa6826fSNiels Provos 203487bef9e9SNiels Provos 203511a0a9e4SNiels Provos 2036