xref: /freebsd/contrib/ntp/sntp/libevent/ChangeLog (revision a466cc55373fc3cf86837f09da729535b57e69a1)
1*a466cc55SCy SchubertChanges in version 2.1.12-stable (05 Jul 2020)
2*a466cc55SCy Schubert
3*a466cc55SCy Schubert This release contains mostly bug fixes (I decided not to port some features
4*a466cc55SCy Schubert that can be ported even without ABI breakage, if you cannot find feature that
5*a466cc55SCy Schubert you are interested in, please give us a note!)
6*a466cc55SCy Schubert
7*a466cc55SCy Schubert Since 2.1.12 libevent will use github actions as main CI, since
8*a466cc55SCy Schubert it recommends itself better then travis/appveyor (and had been removed from
9*a466cc55SCy Schubert upstream).
10*a466cc55SCy Schubert
11*a466cc55SCy Schubert Look carefully at "slightly touches the behaviour" section.
12*a466cc55SCy Schubert
13*a466cc55SCy Schubert Below you will find some of changes (this list has been cleaned up from the
14*a466cc55SCy Schubert patches that touches only tests and similar):
15*a466cc55SCy Schubert
16*a466cc55SCy Schubert CI:
17*a466cc55SCy Schubert  o Backport github actions to 2.1 (be3acd7c Azat Khuzhin)
18*a466cc55SCy Schubert  o Merge branch 'event_rpcgen.py-cleanup' (f0ded5f3, 48e04887 Enji Cooper)
19*a466cc55SCy Schubert  o Add API/ABI checker (using LVC) (709210d4, 2af1f6cc yuangongji)
20*a466cc55SCy Schubert
21*a466cc55SCy Schubert test:
22*a466cc55SCy Schubert  o tinytest: support timeout on Windows (794e8f75 yuangongji)
23*a466cc55SCy Schubert  o Merge branch 'osx-clock' (e85afbe3 Azat Khuzhin)
24*a466cc55SCy Schubert  o test-ratelim: calculate timers bias (for slow CPUs) to avoid false-positive (8ad26d0b Azat Khuzhin)
25*a466cc55SCy Schubert
26*a466cc55SCy Schubert fixes:
27*a466cc55SCy Schubert  o buffer: do not pass NULL to memcpy() from evbuffer_pullup() (5b063049 Azat Khuzhin)
28*a466cc55SCy Schubert  o http: fix undefined-shift in EVUTIL_IS*_ helpers (6b8d02a7 Azat Khuzhin)
29*a466cc55SCy Schubert  o Check error code of evhttp_add_header_internal() in evhttp_parse_query_impl() (97e28f09 Azat Khuzhin)
30*a466cc55SCy Schubert  o http: fix EVHTTP_CON_AUTOFREE in case of timeout (and some else) (1be25938 Azat Khuzhin)
31*a466cc55SCy Schubert  o evdns: Add additional validation for values of dns options (c2972453 ayuseleznev)
32*a466cc55SCy Schubert  o There is typo in GetAdaptersAddresses windows library. It should be iphlpapi.dll (891adda9 Aleksandr-Melnikov)
33*a466cc55SCy Schubert  o Merge branch 'EV_CLOSED-and-EV_ET-fixes' (db2efdf5 Azat Khuzhin)
34*a466cc55SCy Schubert  o Fix memory corruption in EV_CLOSURE_EVENT_FINALIZE with debug enabled (8ccd8f56 Jan Kasiak)
35*a466cc55SCy Schubert  o increase segment refcnt only if evbuffer_add_file_segment() succeeds (30662a3c yuangongji)
36*a466cc55SCy Schubert  o evdns: fix a crash when evdns_base with waiting requests is freed (6f8e0e97 ayuseleznev)
37*a466cc55SCy Schubert  o event_base_once: fix potential null pointer threat (2e9ceb16 chenguolong)
38*a466cc55SCy Schubert  o http: do not assume body for CONNECT (1b42270b Azat Khuzhin)
39*a466cc55SCy Schubert  o evbuffer_add_file: fix freeing of segment in the error path (5f017bde Azat Khuzhin)
40*a466cc55SCy Schubert  o Fix checking return value of the evdns_base_resolv_conf_parse() (fc51bf2c Azat Khuzhin)
41*a466cc55SCy Schubert  o Merge branch 'fix-signal-leak' (poll/select now needs reinit) (1c9cc07b Azat Khuzhin)
42*a466cc55SCy Schubert
43*a466cc55SCy Schubert improvements:
44*a466cc55SCy Schubert  o evutil_time: improve evutil_gettimeofday on Windows (a8219143 Nick Grifka)
45*a466cc55SCy Schubert  o Support EV_CLOSED on linux for poll(2) (2530e7c6 Azat Khuzhin)
46*a466cc55SCy Schubert  o Parse IPv6 scope IDs. (f602211f Philip Homburg)
47*a466cc55SCy Schubert  o evutil_time: Implements usleep() using wait funtion on Windows (d42240d1 yuangongji)
48*a466cc55SCy Schubert  o evutil_time: detect and use _gmtime64_s()/_gmtime64() (f4a6152c yuangongji)
49*a466cc55SCy Schubert
50*a466cc55SCy Schubert slightly touches the behaviour:
51*a466cc55SCy Schubert  o bufferevent: allow setting priority on socket and openssl type (4dd3acdd Nicolas J. Bouliane)
52*a466cc55SCy Schubert  o Fix EV_CLOSED detection/reporting (epoll only) (1df324d4 Azat Khuzhin) (XXX)
53*a466cc55SCy Schubert  o Revert "Warn if forked from the event loop during event_reinit()" (71f5c0d3 Azat Khuzhin)
54*a466cc55SCy Schubert
55*a466cc55SCy Schubert samples:
56*a466cc55SCy Schubert  o https-client: load certificates from the system cert store on Windows (e9478640 yuangongji)
57*a466cc55SCy Schubert
58*a466cc55SCy Schubert build fixes:
59*a466cc55SCy Schubert  o Do not use sysctl.h on linux (it had been deprecated) (d2871a37 Azat Khuzhin)
60*a466cc55SCy Schubert  o cmake: avoid problems from use of CMAKE_USE_PTHREADS_INIT (a62ec765 Paul Osborne)
61*a466cc55SCy Schubert  o Update list of cmake files for autotools dist archive (2016f017 Azat Khuzhin)
62*a466cc55SCy Schubert  o LibeventConfig.cmake: restore CMAKE_FIND_LIBRARY_SUFFIXES and LIBEVENT_STATIC_LINK default (640f9cf6 Mario Emmenlauer)
63*a466cc55SCy Schubert  o cmake: fix getaddrinfo checking error (dea51c2e yuangongji)
64*a466cc55SCy Schubert  o autoconf: fix getaddrinfo checking errors on mingw (b9bf7fa7 yuangongji)
65*a466cc55SCy Schubert  o Do not use shared global structures on CYGWIN (8a9b5655 Azat Khuzhin)
66*a466cc55SCy Schubert  o Added uninstall target check to cmakelists (3f1fb1f9 Dimo Markov)
67*a466cc55SCy Schubert  o Fix compilation without OPENSSL_API_COMPAT (921bdcdd Azat Khuzhin)
68*a466cc55SCy Schubert  o cmake: improve package config file (1c047618, baec84f2 yuangongji)
69*a466cc55SCy Schubert  o Link with iphlpapi only on windows (976f7d34 Azat Khuzhin)
70*a466cc55SCy Schubert  o autotools: fails build when need but can not find openssl (93174bb5 yuangongji)
71*a466cc55SCy Schubert  o Merge branch 'http-connect' (e2424229 Azat Khuzhin)
72*a466cc55SCy Schubert  o Fix compat with NetBSD >= 10 (5febb4e1 Kamil Rytarowski)
73*a466cc55SCy Schubert  o cmake: fix getrandom() detection (e0e5f3bd Azat Khuzhin)
74*a466cc55SCy Schubert  o arc4random: replace sysctl() with getrandom (on linux) (66ec78fd Azat Khuzhin)
75*a466cc55SCy Schubert  o Upgrade autoconf (after upgrading minimum required to 2.67) (45da7d9d yuangongji)
76*a466cc55SCy Schubert  o eliminate some C4267 warnings in Windows (9e468c77 yuangongji)
77*a466cc55SCy Schubert  o autotools: attach doxygen target into all target (5d1e8570 yuangongji)
78*a466cc55SCy Schubert  o cmake: attach doxygen target into all target (7a85300a yuangongji)
79*a466cc55SCy Schubert  o Change the minimum version of automake to 1.13 and autoconf to 2.67 (fdb8fb66 ygj6)
80*a466cc55SCy Schubert  o Add Uninstall.cmake.in into dist archive (877f2355 Azat Khuzhin)
81*a466cc55SCy Schubert
82*a466cc55SCy SchubertChanges in version 2.1.11-stable (01 Aug 2019)
83*a466cc55SCy Schubert
84*a466cc55SCy Schubert This release contains one ABI breakage fix (that had been introduced in
85*a466cc55SCy Schubert 2.1.10, and strictly speaking this release breaks ABI again to make it
86*a466cc55SCy Schubert compatible with 2.1.9 and less, please take a look at 18104973 for more
87*a466cc55SCy Schubert details). Apart from that it contains some bug fixes, that grouped below.
88*a466cc55SCy Schubert
89*a466cc55SCy Schubert And even though the return value for evbuffer_setcb() had been changed it
90*a466cc55SCy Schubert should ABI compatible (anyway that function is in -compat.h header).
91*a466cc55SCy Schubert
92*a466cc55SCy Schubert There is also one patch that introduce new functionality, this is 546a366c,
93*a466cc55SCy Schubert to tune SO_RCVBUF/SO_SNDBUF in evdns, but one can count it as a bug-fix on
94*a466cc55SCy Schubert the application level, since before you cannot tune this settings and hence
95*a466cc55SCy Schubert you could stumble on problems.
96*a466cc55SCy Schubert
97*a466cc55SCy Schubert ABI breakage:
98*a466cc55SCy Schubert  o Protect min_heap_push_ against integer overflow. (8c899768 Tobias Stoeckmann)
99*a466cc55SCy Schubert  o Revert "Protect min_heap_push_ against integer overflow." (18104973 Azat Khuzhin)
100*a466cc55SCy Schubert
101*a466cc55SCy Schubert functionality:
102*a466cc55SCy Schubert  o evdns: add new options -- so-rcvbuf/so-sndbuf (546a366c Azat Khuzhin)
103*a466cc55SCy Schubert
104*a466cc55SCy Schubert build:
105*a466cc55SCy Schubert  o Change autoconf version to 2.62 and automake version to 1.11.2 (2a333008 yuangongji)
106*a466cc55SCy Schubert  o cmake: install shared library only if it was requested (596855f7 Azat Khuzhin)
107*a466cc55SCy Schubert  o Missing <winerror.h> on win7/MinGW(MINGW32_NT-6.1)/MSYS (9559349c yuangongji)
108*a466cc55SCy Schubert  o cmake: set library names to be the same as with autotools (305251b9 yuangongji)
109*a466cc55SCy Schubert  o Enable _GNU_SOURCE for Android (f013fc7d Keith Smiley)
110*a466cc55SCy Schubert  o Enable kqueue for APPLE targets (3aa68a82 Keith Smiley)
111*a466cc55SCy Schubert  o autotools: do not install bufferevent_ssl.h under --disable-openssl (5349a07e Azat Khuzhin)
112*a466cc55SCy Schubert  o cmake: link against shell32.lib/advapi32.lib (c9ce638c Azat Khuzhin)
113*a466cc55SCy Schubert  o Add README.md into dist archive (3660a4cc Azat Khuzhin)
114*a466cc55SCy Schubert  o cmake: add missing autotools targets (doxygen, uninstall, event_rpcgen.py) (2d65071c yuangongji)
115*a466cc55SCy Schubert  o m4/libevent_openssl.m4: fix detection of openssl (d4056e59 Fabrice Fontaine)
116*a466cc55SCy Schubert  o Fix detection of the __has_attribute() for apple clang [ci skip] (7fd7c5ef Azat Khuzhin)
117*a466cc55SCy Schubert
118*a466cc55SCy Schubert lib:
119*a466cc55SCy Schubert  o buffer: fix possible NULL dereference in evbuffer_setcb() on ENOMEM (598f247d Azat Khuzhin)
120*a466cc55SCy Schubert  o Warn if forked from the event loop during event_reinit() (b75922ae Azat Khuzhin)
121*a466cc55SCy Schubert  o evutil: set the have_checked_interfaces in evutil_check_interfaces()
122*a466cc55SCy Schubert    (ef498aa2, a09265ac jeremyerb)
123*a466cc55SCy Schubert
124*a466cc55SCy Schubert samples:
125*a466cc55SCy Schubert  o https-client: correction error checking (a8a04565 wenyg)
126*a466cc55SCy Schubert
127*a466cc55SCy Schubert
128*a466cc55SCy SchubertChanges in version 2.1.10-stable (26 May 2019)
129*a466cc55SCy Schubert
130*a466cc55SCy Schubert This release contains mostly fixes (some evbuffer oddity, AF_UNIX handling in
131*a466cc55SCy Schubert http server, some UB fixes and others) but also some new functionality
132*a466cc55SCy Schubert (without ABI breakage as usual) and now dist archive can be used for building
133*a466cc55SCy Schubert on windows (getopt had been added into it).
134*a466cc55SCy Schubert
135*a466cc55SCy Schubert Above you will find changelog for this particular release (but with some
136*a466cc55SCy Schubert trivial fixes pruned out from it - to make it a little bit more informative).
137*a466cc55SCy Schubert
138*a466cc55SCy Schubert To view full changelog please use git:
139*a466cc55SCy Schubert   git log --format='  o %s (%h %aN)' release-2.1.9-beta...release-2.1.10-stable
140*a466cc55SCy Schubert
141*a466cc55SCy Schubert dist:
142*a466cc55SCy Schubert  o Add getopt into dist archive (7042ff24 Azat Khuzhin)
143*a466cc55SCy Schubert
144*a466cc55SCy Schubert functionality:
145*a466cc55SCy Schubert  o evdns: add DNS_OPTION_NAMESERVERS_NO_DEFAULT/EVDNS_BASE_NAMESERVERS_NO_DEFAULT
146*a466cc55SCy Schubert  (58e81106 Azat Khuzhin)
147*a466cc55SCy Schubert  o Add support for EV_TIMEOUT to event_base_active_by_fd (3f893f0a John Ohl)
148*a466cc55SCy Schubert
149*a466cc55SCy Schubert fixes:
150*a466cc55SCy Schubert  o Merge branch 'evbuffer-fixes-806-v2' (2fea04b3 Azat Khuzhin)
151*a466cc55SCy Schubert  o Merge branch 'issue-807-accept4-getnameinfo-AF_UNIX' (7c4da937, e2790a7f
152*a466cc55SCy Schubert    Azat Khuzhin)
153*a466cc55SCy Schubert  o kqueue: Avoid undefined behaviour. (e70e18e9 Tobias Stoeckmann)
154*a466cc55SCy Schubert  o Prevent integer overflow in kq_build_changes_list. (43a55a23 Tobias Stoeckmann)
155*a466cc55SCy Schubert  o evdns: fix lock/unlock mismatch in evdns_close_server_port() (54103883 zhuizhuhaomeng)
156*a466cc55SCy Schubert  o Merge remote-tracking branch 'official/pr/804' -- Enforce limit of NSIG
157*a466cc55SCy Schubert    signals (87fa93a8 Tobias Stoeckmann)
158*a466cc55SCy Schubert  o Protect min_heap_push_ against integer overflow. (0b46bb8c Tobias Stoeckmann)
159*a466cc55SCy Schubert  o le-proxy: initiate use of the Winsock DLL (2a1e1530 linxiaohui)
160*a466cc55SCy Schubert  o Fix leaks in error path of the bufferevent_init_common_() (bb0f8fe7 Azat Khuzhin)
161*a466cc55SCy Schubert  o buffer: make evbuffer_prepend() of zero-length array no-op (61fa7b7d Azat Khuzhin)
162*a466cc55SCy Schubert  o Merge branch 'evbuffer-empty-chain-handling' (6a3dd717 Azat Khuzhin)
163*a466cc55SCy Schubert  o Don't loose top error in SSL (3d1a7a1d Yury Korzhetsky)
164*a466cc55SCy Schubert  o Remove needless check for arc4_seeded_ok (6602a97d Seong-Joong Kim)
165*a466cc55SCy Schubert  o Merge pull request #769 from sungjungk/fix-return-handling (91084140 Nathan French)
166*a466cc55SCy Schubert
167*a466cc55SCy Schubert build:
168*a466cc55SCy Schubert  o Define `_GNU_SOURCE` properly/consistently per autoconf (00ba9fa2 Enji Cooper)
169*a466cc55SCy Schubert  o signal: guard __cdecl definition with #ifdef (d89045a6 Azat Khuzhin)
170*a466cc55SCy Schubert  o Link test/regress with event_core/event_extra over event (22380996 Azat Khuzhin)
171*a466cc55SCy Schubert
172*a466cc55SCy Schubert tests:
173*a466cc55SCy Schubert  o Use kill() over raise() for raising the signal (fixes osx 10.14 with
174*a466cc55SCy Schubert    kqueue) (3db5296b, a45f6733 Azat Khuzhin)
175*a466cc55SCy Schubert  o tinytest: implement per-test timeout (via alarm() under !win32 only)
176*a466cc55SCy Schubert    (b64dbfb6, 75d7e1ff Azat Khuzhin)
177*a466cc55SCy Schubert
178*a466cc55SCy SchubertChanges in version 2.1.9-beta (10 February 2019)
179*a466cc55SCy Schubert
180*a466cc55SCy Schubert This changelog will differs from other releases in the next few clauses:
181*a466cc55SCy Schubert - contains only highlighted changes (so now it will not contains a lot of
182*a466cc55SCy Schubert   patches that fixes some stuff in regression tests, typos, leaks fixes in
183*a466cc55SCy Schubert   samples and so forth)
184*a466cc55SCy Schubert - no authors (since merge commits breaks them anyway, but AUTHORS sections in
185*a466cc55SCy Schubert   README will be kept up to date)
186*a466cc55SCy Schubert - group name trimmed from commit subjects trimmed
187*a466cc55SCy Schubert - it's been 2 years since the previoius release, so it is pretty huge
188*a466cc55SCy Schubert
189*a466cc55SCy Schubert And I think that this is more useful, so from now on it will always has the
190*a466cc55SCy Schubert same look (until there will too many objections of course).
191*a466cc55SCy Schubert
192*a466cc55SCy Schubert To view full changelog please use git:
193*a466cc55SCy Schubert   git log --format='  o %s (%h %aN)' release-2.1.8-stable...release-2.1.9-beta
194*a466cc55SCy Schubert
195*a466cc55SCy Schubert
196*a466cc55SCy Schubert dist archive:
197*a466cc55SCy Schubert  o Add cmake rules into dist archive (bf3a67cf)
198*a466cc55SCy Schubert  o Add missing print-winsock-errors.c into dist archive (822d6462)
199*a466cc55SCy Schubert  o Include openssl-compat.h into dist archive (08658136)
200*a466cc55SCy Schubert
201*a466cc55SCy Schubert core:
202*a466cc55SCy Schubert  o Merge branch 'check-O_NONBLOCK-in-debug' (a39898f3, a8155c62)
203*a466cc55SCy Schubert  o Merge branch 'event-ET-#636-v2' (ca4b6404)
204*a466cc55SCy Schubert  o Fix visibility issues under (mostly on win32)
205*a466cc55SCy Schubert    (349081e1g, 802be13ag, a1f28e2f)
206*a466cc55SCy Schubert  o Define __EXT_POSIX2 for QNX (a2176f2c)
207*a466cc55SCy Schubert  o Cleanup __func__ detection (b3af7bdd)
208*a466cc55SCy Schubert  o Add convenience macros for user-triggered events (06ec5de6)
209*a466cc55SCy Schubert  o Notify event base if there are no more events, so it can exit without delay (d9d1c09e)
210*a466cc55SCy Schubert  o Fix base unlocking in event_del() if event_base_set() runned in another thread (4f0f40e3)
211*a466cc55SCy Schubert  o If precise_time is false, we should not set EVENT_BASE_FLAG_PRECISE_TIMER (27dee54d)
212*a466cc55SCy Schubert  o Fix race in access to ev_res from event loop with event_active() (43d92a6d)
213*a466cc55SCy Schubert  o Return from event_del() after the last event callback termination (876c7ac7)
214*a466cc55SCy Schubert
215*a466cc55SCy Schubert http:
216*a466cc55SCy Schubert  o Merge branch 'http-EVHTTP_CON_READ_ON_WRITE_ERROR-fixes-v2' (eb7b472b)
217*a466cc55SCy Schubert  o Preserve socket error from listen across closesocket cleanup (2ccd00a6)
218*a466cc55SCy Schubert  o fix connection retries when there more then one request for connection (d30e7bba)
219*a466cc55SCy Schubert  o improve error path for bufferevent_{setfd,enable,disable}() (a8cc449e)
220*a466cc55SCy Schubert  o Fix conceivable UAF of the bufferevent in evhttp_connection_free() (6ac2ec25)
221*a466cc55SCy Schubert  o Merge branch 'http-request-line-parsing' (cdcfbafe)
222*a466cc55SCy Schubert  o Fix evhttp_connection_get_addr() fox incomming http connections (4215c003)
223*a466cc55SCy Schubert  o fix leaks in evhttp_uriencode() (123362e9)
224*a466cc55SCy Schubert  o CONNECT method only takes an authority (7d1ffe64)
225*a466cc55SCy Schubert  o Allow bodies for GET/DELETE/OPTIONS/CONNECT (23eb38b9)
226*a466cc55SCy Schubert  o Do not crash when evhttp_send_reply_start() is called after a timeout. (826f1134)
227*a466cc55SCy Schubert  o Fix crashing http server when callback do not reply in place (5b40744d, b2581380)
228*a466cc55SCy Schubert  o fix handling of close_notify (ssl) in http with openssl bufferevents (7e91622b)
229*a466cc55SCy Schubert
230*a466cc55SCy Schubert evrpc:
231*a466cc55SCy Schubert  o use *_new_with_arg() to match function prototype (a95cc9e3)
232*a466cc55SCy Schubert  o avoid NULL dereference on request is not EVHTTP_REQ_POST (e05136c7)
233*a466cc55SCy Schubert
234*a466cc55SCy Schubert regression tests:
235*a466cc55SCy Schubert  o Merge branch 'TT_RETRIABLE' (6ea1ec68, f9b592aa)
236*a466cc55SCy Schubert
237*a466cc55SCy Schubert bufferevent:
238*a466cc55SCy Schubert  o Merge branch 'iocp-fixes' (6bfac964)
239*a466cc55SCy Schubert  o Merge branch 'be-wm-overrun-v2' (3f692fff)
240*a466cc55SCy Schubert  o bufferevent_socket_connect{,_hostname}() missing event callback and use ret code (1dde74ef)
241*a466cc55SCy Schubert  o don't fail be_null_filter if bytes are copied (b92b0792)
242*a466cc55SCy Schubert  o Call underlying bev ctrl GET_FD on filtered bufferevents (ebfac517)
243*a466cc55SCy Schubert
244*a466cc55SCy Schubert bufferevent_openssl/openssl:
245*a466cc55SCy Schubert  o Merge branch 'ssl_bufferevent_wm_filter-fix' (30020a35)
246*a466cc55SCy Schubert  o be_openssl: avoid leaking of SSL structure (e86ccfe5)
247*a466cc55SCy Schubert  o Fix build with LibreSSL 2.7 (894ca48a)
248*a466cc55SCy Schubert  o Add missing includes into openssl-compat.h (01bc36c1)
249*a466cc55SCy Schubert  o Explicitly call SSL_clear when reseting the fd. (29b7a516)
250*a466cc55SCy Schubert  o Unbreak build with LibreSSL after openssl 1.1 support added (230af9f0)
251*a466cc55SCy Schubert
252*a466cc55SCy Schubert samples:
253*a466cc55SCy Schubert  o Merge branch 'sample-http-server' (b6309bcc)
254*a466cc55SCy Schubert  o sample/https-client: use host SSL certificate store by default (5c0132f3)
255*a466cc55SCy Schubert
256*a466cc55SCy Schubert listener:
257*a466cc55SCy Schubert  o ipv6only socket bind support (ba148796)
258*a466cc55SCy Schubert  o Merge branch 'listener-immediate-close' (df2ed13f)
259*a466cc55SCy Schubert  o Merge branch 'evconnlistener-do-not-close-client-fd' (42e851bb)
260*a466cc55SCy Schubert
261*a466cc55SCy Schubert evdns:
262*a466cc55SCy Schubert  o evdns: handle NULL filename explicitly (0033f5cc)
263*a466cc55SCy Schubert  o Merge branch 'evdns_getaddrinfo-race-fix' (3237d697)
264*a466cc55SCy Schubert  o Generating evdns_base_config_windows_nameservers docs on all platforms (3bd2ce43)
265*a466cc55SCy Schubert
266*a466cc55SCy Schubert utils:
267*a466cc55SCy Schubert  o Merge branch 'evutil_found_ifaddr-dev' (b07e43e6)
268*a466cc55SCy Schubert  o Avoid possible SEGVs in select() (in unit tests) (8818c86c)
269*a466cc55SCy Schubert  o Port `event_rpcgen.py` and `test/check-dumpevents.py` to Python 3. (532a8cc3)
270*a466cc55SCy Schubert
271*a466cc55SCy Schubert buffer:
272*a466cc55SCy Schubert  o Fix assert() condition in evbuffer_drain() for IOCP (d6326104)
273*a466cc55SCy Schubert  o fix incorrect unlock of the buffer mutex (for deferred callbacks) (2b4d127d)
274*a466cc55SCy Schubert  o Fix wrong assert in evbuffer_drain() (9f4d0dce)
275*a466cc55SCy Schubert
276*a466cc55SCy Schubert cmake:
277*a466cc55SCy Schubert  o fix checking of devpoll backend (like in autotools, by devpoll.h existence) (7f161902)
278*a466cc55SCy Schubert  o support static runtime (MSVC) (c8b3ec17, 61fb055a)
279*a466cc55SCy Schubert  o do not build both (SHARED and STATIC) for MSVC/win32 (bc7f2fd9)
280*a466cc55SCy Schubert  o introduce EVENT__LIBRARY_TYPE option (eb10a738)
281*a466cc55SCy Schubert  o ensure windows dll's are installed as well as lib files (29590718)
282*a466cc55SCy Schubert  o Fix generation of LibeventConfig.cmake for the installation tree (7fa08c4b)
283*a466cc55SCy Schubert  o fix pkgconfig generation (copy-paste typo) (cc554d87)
284*a466cc55SCy Schubert  o Merge branch 'cmake-missing-bits' (9806b126)
285*a466cc55SCy Schubert  o Fix detection of timerfd_create() in CMake. (e50af331)
286*a466cc55SCy Schubert  o Merge branch 'cmake-configure-fixes-v2' (a0bfe2c4)
287*a466cc55SCy Schubert  o Do not add epoll_sub (syscall wrappers) for epoll in cmake (cea61de6)
288*a466cc55SCy Schubert  o Fix RPATH for APPLE (45b1f379)
289*a466cc55SCy Schubert
290*a466cc55SCy Schubert autotools:
291*a466cc55SCy Schubert  o include win32 specific headers for socklen_t detection on win32/mingw (d7579fb9)
292*a466cc55SCy Schubert  o Ignore evconfig-private.h for autotools (37423849)
293*a466cc55SCy Schubert  o config.h can't be prefixed unconditionally (63a054f8)
294*a466cc55SCy Schubert  o Merge branch 'pull-628' (7e56c8b2)
295*a466cc55SCy Schubert  o Provide Makefile variables LIBEVENT_{CFLAGS,CPPFLAGS,LDFLAGS} (2f060c5f)
296*a466cc55SCy Schubert  o confirm openssl is working before using (b39ccf8e)
297*a466cc55SCy Schubert  o pass $(OPENSSL_INCS) for samples (FTBFS macOS) (c2495265)
298*a466cc55SCy Schubert  o Add configure check for midipix (d433201e)
299*a466cc55SCy Schubert  o Fix tests with detached builds (c46ff439)
300*a466cc55SCy Schubert
301*a466cc55SCy Schubert build:
302*a466cc55SCy Schubert  o Fix arc4random_addrandom() detecting and fallback (regression) (303d6d77)
303*a466cc55SCy Schubert  o Merge branch 'win32-fixes' (ebd12e6d)
304*a466cc55SCy Schubert  o Merge branch 'fix-openssl-linking' (e7bd9e03)
305*a466cc55SCy Schubert  o Merge branch 'fix-struct-linger' (8567f2f5)
306*a466cc55SCy Schubert
307*a466cc55SCy Schubert CI:
308*a466cc55SCy Schubert  o travis-ci/appveyor now uses fast_finish+allow_failures
309*a466cc55SCy Schubert    (5e97b6e6, dd472e7d, dfb5fc167)
310*a466cc55SCy Schubert  o Merge branch 'travis-ci-osx-fixes' (9f02b39c)
311*a466cc55SCy Schubert  o Merge branch 'win64-fixes' (aee0fcd5)
312*a466cc55SCy Schubert
313*a466cc55SCy Schubert
314*a466cc55SCy SchubertChanges in version 2.1.8-stable (22 January 2017)
315*a466cc55SCy Schubert
316*a466cc55SCy Schubert Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using
317*a466cc55SCy Schubert bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased
318*a466cc55SCy Schubert timeout for some tests (to reduce number of failures due to timing issues),
319*a466cc55SCy Schubert date in RFC1123 format and running tests in parallel.
320*a466cc55SCy Schubert
321*a466cc55SCy Schubert There are highlighted changes above.
322*a466cc55SCy Schubert
323*a466cc55SCy Schubert Build fixes:
324*a466cc55SCy Schubert  o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin)
325*a466cc55SCy Schubert  o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin)
326*a466cc55SCy Schubert  o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin)
327*a466cc55SCy Schubert  o evutil_time: include <unistd.h> when there is only sleep()/usleep() (3e75194c Azat Khuzhin)
328*a466cc55SCy Schubert  o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin)
329*a466cc55SCy Schubert Testing environment:
330*a466cc55SCy Schubert  o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*) (59e217df Azat Khuzhin)
331*a466cc55SCy Schubert Vagrant env fixes:
332*a466cc55SCy Schubert  o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin)
333*a466cc55SCy Schubert  o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin)
334*a466cc55SCy Schubert  o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin)
335*a466cc55SCy Schubert  o vagrant: add centos box (ca591c5b Azat Khuzhin)
336*a466cc55SCy Schubert Tests:
337*a466cc55SCy Schubert  o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin)
338*a466cc55SCy Schubert  o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin)
339*a466cc55SCy Schubert  o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin)
340*a466cc55SCy Schubert  o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin)
341*a466cc55SCy Schubert Bugfixes:
342*a466cc55SCy Schubert  o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin)
343*a466cc55SCy Schubert  o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin)
344*a466cc55SCy Schubert  o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin)
345*a466cc55SCy Schubert  o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin)
346*a466cc55SCy Schubert  o Fix incorrect MIME type (23f9a20e johnsonlee)
347*a466cc55SCy Schubert Trivial fixes:
348*a466cc55SCy Schubert Documentation updates:
349*a466cc55SCy Schubert  o Update README.md (3821cca1 Breaker)
350*a466cc55SCy Schubert
351*a466cc55SCy Schubert
352*a466cc55SCy SchubertChanges in version 2.1.7-rc (2 Novemer 2016)
353*a466cc55SCy Schubert
354*a466cc55SCy Schubert Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements
355*a466cc55SCy Schubert and plus Vagrantfile for testing under multiple OS'es.
356*a466cc55SCy Schubert
357*a466cc55SCy Schubert
358*a466cc55SCy Schubert Continious Integration:
359*a466cc55SCy Schubert  o Use coveralls.io via travis (9ac000c Azat Khuzhin)
360*a466cc55SCy Schubert  o travis-ci: use container-based infrastructure (7e12e96 Azat Khuzhin)
361*a466cc55SCy Schubert  o travis-ci/osx: fix compiling/linking openssl libraries (9d2f8d4 Azat Khuzhin)
362*a466cc55SCy Schubert  o travis-ci: use gcc-5 (fixes osx|gcc failures) (d7ceae5 Azat Khuzhin)
363*a466cc55SCy Schubert  o Testing with vagrant for 6 OS and cmake+autoconf (9585338 Azat Khuzhin)
364*a466cc55SCy Schubert  o travis-ci/osx: install lcov (e4e099b Azat Khuzhin)
365*a466cc55SCy Schubert
366*a466cc55SCy Schubert Build Improvements/Fixes:
367*a466cc55SCy Schubert  o Fix cmake -DEVENT__COVERAGE=ON (40fbffc Azat Khuzhin)
368*a466cc55SCy Schubert  o autogen.sh: learn about gmake (9376ac4 Azat Khuzhin)
369*a466cc55SCy Schubert  o autogen.sh: remove all autoconf/automake caches, if any (69cce25 Azat Khuzhin)
370*a466cc55SCy Schubert  o cmake: fix finding python2, and check that it is really 2 (3453c08 Azat Khuzhin)
371*a466cc55SCy Schubert  o cmake: fix CheckFunctionExistsEx/CheckPrototypeDefinition (CMP0054) (43b69b2 Azat Khuzhin)
372*a466cc55SCy Schubert  o cmake: cleanup (dc624ad Zonr Chang)
373*a466cc55SCy Schubert  o cmake/win32: fix running regress, but fixing finding python2 interpreter (bcb990a Azat Khuzhin)
374*a466cc55SCy Schubert  o cmake: use PYTHON_EXECUTABLE to find python2 (a4d044c Azat Khuzhin)
375*a466cc55SCy Schubert  o Merge branch 'force-disable-clockgettime' (83c7cdf Azat Khuzhin)
376*a466cc55SCy Schubert
377*a466cc55SCy Schubert Code Improvements (core)
378*a466cc55SCy Schubert  o use ev_uint16_t instead of unsigned short for port (e983712 Thomas Bernard)
379*a466cc55SCy Schubert  o Merge branch 'contrib-guide-v2' (b9c5077 Azat Khuzhin)
380*a466cc55SCy Schubert  o poll: Prevent libevent from spinning if POLLNVAL occurs (675974c Tim Hentenaar)
381*a466cc55SCy Schubert
382*a466cc55SCy Schubert Testing:
383*a466cc55SCy Schubert  o test/regress: cover a polling of invalid fd (cb0df5c Tim Hentenaar)
384*a466cc55SCy Schubert
385*a466cc55SCy Schubert Code Improvements (bufferevent_openssl)
386*a466cc55SCy Schubert  o Make it build using OpenSSL 1.1.0 (3e9e0a0 Kurt Roeckx)
387*a466cc55SCy Schubert  o Don't call BIO_number_{read|written} on NULL BIOs. (6702da1 Adam Langley)
388*a466cc55SCy Schubert  o Switch from a 512 to 2048-bit RSA key. (f9803a6 Adam Langley)
389*a466cc55SCy Schubert
390*a466cc55SCy Schubert Trivial fixes:
391*a466cc55SCy Schubert  o Ignore temporary configure files (8fb08ae Azat Khuzhin)
392*a466cc55SCy Schubert  o README.md: fix typo: ar -> are (2361616 Simone Basso)
393*a466cc55SCy Schubert  o be: just a simple mistake, reinclude the <errno.h> (7521664 Seven)
394*a466cc55SCy Schubert
395*a466cc55SCy SchubertChanges in version 2.1.6-beta (4 July 2016)
396*a466cc55SCy Schubert
397*a466cc55SCy Schubert Libevent 2.1.6-beta contains mostly bug fixes (evbuffers, evthread, evdns,
398*a466cc55SCy Schubert bufferevents, core, http, samples), improvements but mostly to fix some
399*a466cc55SCy Schubert possible issues (EVHTTP_CON_LINGERING_CLOSE), a lot of new unit tests and new
400*a466cc55SCy Schubert appveyor integration.
401*a466cc55SCy Schubert
402*a466cc55SCy Schubert Security Fixes (utils)
403*a466cc55SCy Schubert   o evutil_parse_sockaddr_port(): fix buffer overflow (329acc1 Azat Khuzhin)
404*a466cc55SCy Schubert
405*a466cc55SCy Schubert Security Fixes (evdns)
406*a466cc55SCy Schubert   o evdns: name_parse(): fix remote stack overread (96f64a0 Azat Khuzhin)
407*a466cc55SCy Schubert   o evdns: fix searching empty hostnames (ec65c42 Azat Khuzhin)
408*a466cc55SCy Schubert
409*a466cc55SCy Schubert New APIs (evdns)
410*a466cc55SCy Schubert   o New function to get address for nameserver. (537177d Nick Mathewson)
411*a466cc55SCy Schubert
412*a466cc55SCy Schubert New APIs (bufferevents)
413*a466cc55SCy Schubert   o expose bufferevent_incref/decref (with fewer modifications) (1ed6718 Mark Ellzey)
414*a466cc55SCy Schubert
415*a466cc55SCy Schubert New APIs (internal)
416*a466cc55SCy Schubert   o evdns: export cancel via callbacks in util (like async lib core/extra issues) (8cbe65d Azat Khuzhin)
417*a466cc55SCy Schubert
418*a466cc55SCy Schubert New APIs/Improvements (http)
419*a466cc55SCy Schubert   o http: take EVHTTP_CON_LINGERING_CLOSE into account for "Expect: 100-Continue" (ac448a7 Azat Khuzhin)
420*a466cc55SCy Schubert   o http: lingering close (like nginx have) for entity-too-large (9fde518 Azat Khuzhin)
421*a466cc55SCy Schubert   o http: read server response even after server closed the connection (680742e Azat Khuzhin)
422*a466cc55SCy Schubert   o http: export evhttp_connection_set_family() (714fc70 Azat Khuzhin)
423*a466cc55SCy Schubert   o http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR (a50f5f0 Azat Khuzhin)
424*a466cc55SCy Schubert   o http: use IP address that we got before (if any) during retrying (54c887d Azat Khuzhin)
425*a466cc55SCy Schubert
426*a466cc55SCy Schubert Bugfixes (core)
427*a466cc55SCy Schubert   o Fix getaddrinfo under solaris (for multiprotocol case) (40730ae Azat Khuzhin)
428*a466cc55SCy Schubert   o Check for Mac OS X 10.4 kqueue bug properly (df6f99e Mark Mentovai)
429*a466cc55SCy Schubert   o event_reinit: make signals works after fork() without evsig_add() (88640aa Nicholas Marriott)
430*a466cc55SCy Schubert   o event_reinit: always re-init signal's socketpair (ad0c237 Nicholas Marriott)
431*a466cc55SCy Schubert   o Free event queues even for recursive finalizers (7c8d015 Azat Khuzhin)
432*a466cc55SCy Schubert   o Fix checking for make_base_notifiable() (f337296 Azat Khuzhin)
433*a466cc55SCy Schubert   o Set correct socklen for PF_INET6 sockaddr len (3499ad9 Mark Ellzey)
434*a466cc55SCy Schubert   o Fix garbage value in socketpair util function, stdint? (043ae74 Mark Ellzey)
435*a466cc55SCy Schubert   o fix the return value of event_deferred_cb_schedule_ (38cef64 Greg Hazel)
436*a466cc55SCy Schubert   o event_free_debug_globals_locks(): disable lock debugging (e5c87d1 Azat Khuzhin)
437*a466cc55SCy Schubert   o event: call event_disable_debug_mode() in libevent_global_shutdown() (941faae Azat Khuzhin)
438*a466cc55SCy Schubert   o ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR (597c7b2 Azat Khuzhin)
439*a466cc55SCy Schubert
440*a466cc55SCy Schubert Bugfixes (evthread)
441*a466cc55SCy Schubert   o evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case (e4556fc Azat Khuzhin)
442*a466cc55SCy Schubert   o evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown() (ccc5593 Azat Khuzhin)
443*a466cc55SCy Schubert
444*a466cc55SCy Schubert Bugfixes (evdns)
445*a466cc55SCy Schubert   o evdns: avoid double-free in evdns_base_free() for probing requests (4db15e0 Azat Khuzhin)
446*a466cc55SCy Schubert   o evdns: evdns_base_free(): fix UAF of evdns_base with @fail_requests (00313c5 Azat Khuzhin)
447*a466cc55SCy Schubert   o evdns: evdns_base_free(): free requests before namservers (14f84bb Azat Khuzhin)
448*a466cc55SCy Schubert   o evdns: fix randomize-case by make case-insensitive as required (9c238de Azat Khuzhin)
449*a466cc55SCy Schubert
450*a466cc55SCy Schubert Bugfixes (bufferevents)
451*a466cc55SCy Schubert   o be_sock: handle readv() returns ECONNREFUSED (freebsd 9.2) (3189eb0 Azat Khuzhin)
452*a466cc55SCy Schubert   o be_filter: avoid data stuck under active watermarks (b627ad8 Eduardo Panisset)
453*a466cc55SCy Schubert   o Fix bufferevent_pair to properly set BEV_EVENT_{READING,WRITING} on flush. (2851889 David Paschich)
454*a466cc55SCy Schubert   o be_openssl: clear all pending errors before SSL_*() calls (38e0f4a Azat Khuzhin)
455*a466cc55SCy Schubert   o be_sock: cancel in-progress dns requests (86dfd2c Azat Khuzhin)
456*a466cc55SCy Schubert   o be_sock: unfreeze buffers on fd changing (255525d Azat Khuzhin)
457*a466cc55SCy Schubert   o be_sock: bufferevent_socket_connect_hostname(): make it thread-safe (809bb39 Azat Khuzhin)
458*a466cc55SCy Schubert   o be_openssl: don't call do_write() directly from outbuf_cb (da52933 Azat Khuzhin)
459*a466cc55SCy Schubert   o be_openssl: use bufferevent_enable() instead of bufferevent_add_event_() (0c66d32 Azat Khuzhin)
460*a466cc55SCy Schubert   o be_openssl: don't add events during bev creation (like be_sock) (f4b6284 Azat Khuzhin)
461*a466cc55SCy Schubert   o Fix lock leak in be_pair_flush() if flush type is BEV_NORMAL (f45d39d Bill Vaughan)
462*a466cc55SCy Schubert   o be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there (877280d Azat Khuzhin)
463*a466cc55SCy Schubert   o be_openssl: don't call set_open_callbacks() if fd == -1 (e8a2da9 Azat Khuzhin)
464*a466cc55SCy Schubert   o be_openssl: get rid off hackish "fd_is_set", to fix some corner cases (40b0379 Azat Khuzhin)
465*a466cc55SCy Schubert   o be: we don't need to use getpeername() we we have conn_address (2c271e2 Azat Khuzhin)
466*a466cc55SCy Schubert   o Call underlying bev ctrl SET_FD on filtered bufferevents (c2aa7dc Mark Ellzey)
467*a466cc55SCy Schubert   o be_pair: release shared lock with the latest of bufferevent_pair (92a359e Azat Khuzhin)
468*a466cc55SCy Schubert
469*a466cc55SCy Schubert Bugfixes (http)
470*a466cc55SCy Schubert   o [Issue #313] set method to ASCII "NULL" if evhttp_method() returns NULL (17cc636 Mark Ellzey)
471*a466cc55SCy Schubert   o evhttp_have_expect(): fix -Wlogical-not-parentheses (24b5214 Azat Khuzhin)
472*a466cc55SCy Schubert   o http: set fd to -1 unconditioally, to avoid leaking of DNS requests (7a4b472 Azat Khuzhin)
473*a466cc55SCy Schubert   o http: avoid leaking of fd in evhttp_connection_free() (f0e1341 Azat Khuzhin)
474*a466cc55SCy Schubert   o http: get fd from be layer during connection reset (4a53c54 Azat Khuzhin)
475*a466cc55SCy Schubert   o http: fix EVHTTP_CON_READ_ON_WRITE_ERROR when it doesn't supported by OS (2ff164a Azat Khuzhin)
476*a466cc55SCy Schubert   o http: do not do function calls under EVUTIL_ASSERT() to fix NDEBUG builds (7c89999 Azat Khuzhin)
477*a466cc55SCy Schubert   o http: fix leaking of response_code_line (8f18a62 Azat Khuzhin)
478*a466cc55SCy Schubert   o http: fix "Expect: 100-continue" client side (0b46b39 Azat Khuzhin)
479*a466cc55SCy Schubert   o http: fix conflicts EVHTTP_CON_AUTOFREE and EVHTTP_CON_REUSE_CONNECTED_ADDR (4dc0979 Azat Khuzhin)
480*a466cc55SCy Schubert   o http: avoid epoll_ctl() on already closed fd (triggers by http/chunk_out) (ab3bc69 Azat Khuzhin)
481*a466cc55SCy Schubert   o http: install timeout for read too during connect for ssl (040000d Azat Khuzhin)
482*a466cc55SCy Schubert   o http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases (b0d3964 Azat Khuzhin)
483*a466cc55SCy Schubert   o http: fix detecting EOF without write (7ed02ac Azat Khuzhin)
484*a466cc55SCy Schubert   o evhttp: Fix failure to send all output data for POST/PUT requests (24eea0d John Ohl)
485*a466cc55SCy Schubert   o Fix evhttp_uriencode() regression. (c6b1ec1 Mark Ellzey)
486*a466cc55SCy Schubert   o removed unused vars (e94250c Mark Ellzey)
487*a466cc55SCy Schubert   o pointer overflow checks for evhttp_uriencode (72afe4c Zonr Chang)
488*a466cc55SCy Schubert
489*a466cc55SCy Schubert Bugfixes (evbuffers)
490*a466cc55SCy Schubert   o buffer: fix overflow check in evbuffer_expand_singlechain() (a3f4ccd Azat Khuzhin)
491*a466cc55SCy Schubert   o buffer: evbuffer_add_buffer(): clean empty chains from destination buffer (26fd932 Azat Khuzhin)
492*a466cc55SCy Schubert   o Fix n_add_for_cb in evbuffer_prepend() in case of new buffer required (0abd039 Azat Khuzhin)
493*a466cc55SCy Schubert   o be_filter: actually disable output_filter during processing output (c031215 Simon Perreault)
494*a466cc55SCy Schubert   o evbuffer_add: Use last_with_datap if set, not last. (a8769ef Marcus Sundberg)
495*a466cc55SCy Schubert   o EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD (8674e4f jer-gentoo)
496*a466cc55SCy Schubert
497*a466cc55SCy Schubert Bugfixes (evconnlistener)
498*a466cc55SCy Schubert   o listener: unlock lev on error in listener_read_cb() (2a71b33 Azat Khuzhin)
499*a466cc55SCy Schubert   o Fix potential fd leak in listener_read_cb() (a695a72 Mark Ellzey)
500*a466cc55SCy Schubert
501*a466cc55SCy Schubert Testing
502*a466cc55SCy Schubert   o tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris (43eb56c Azat Khuzhin)
503*a466cc55SCy Schubert   o test: replace sleeping with syncing pair in main/fork (16d220c Azat Khuzhin)
504*a466cc55SCy Schubert   o test/http: do not run tests that based on backlog filling (freebsd) (500b6b7 Azat Khuzhin)
505*a466cc55SCy Schubert   o test/bufferevent/iocp: fix test name for "bufferevent_connect_fail_eventcb" (4410e9d Azat Khuzhin)
506*a466cc55SCy Schubert   o test/ssl: use send()/recv()/EVUTIL_ERR_RW_RETRIABLE()/EVUTIL_SOCKET_ERROR() to fix win32 (a9e8cd6 Azat Khuzhin)
507*a466cc55SCy Schubert   o test/https_basic: increase timeout for complete write (fixes win32) (d5a2f2f Azat Khuzhin)
508*a466cc55SCy Schubert   o test: fix building with --disable-thread-support under win32 (a487706 Azat Khuzhin)
509*a466cc55SCy Schubert   o test/buffer: evbuffer_add_buffer() with empty chains (a272bc4 Azat Khuzhin)
510*a466cc55SCy Schubert   o test/buffer: evbuffer_remove_buffer() with empty chains (prepend) (f0cfa14 Azat Khuzhin)
511*a466cc55SCy Schubert   o test/buffer: evbuffer_remove_buffer() with empty chains (evbuffer_add_buffer()) (2880ce6 Azat Khuzhin)
512*a466cc55SCy Schubert   o test/buffer: cover evbuffer_expand() for overflow (48dab7a Azat Khuzhin)
513*a466cc55SCy Schubert   o test/be_filter: creating test case for data stuck with active watermarks (766194b Eduardo Panisset)
514*a466cc55SCy Schubert   o test/http: avoid using conditionals with omitted operands (fixes VS2015) (2a4bf29 Azat Khuzhin)
515*a466cc55SCy Schubert   o test/http: don't mix declarations and code (fixes -Wdeclaration-after-statement) (aabf1c2 Azat Khuzhin)
516*a466cc55SCy Schubert   o test/buffer: fix leak in test_evbuffer_prepend() (c08d90b Azat Khuzhin)
517*a466cc55SCy Schubert   o test/buffer: avoid errors with --no-fork (reinitialize static vars) (e7d1e39 Azat Khuzhin)
518*a466cc55SCy Schubert   o test/buffer: cover n_add_for_cb when evbuffer_prepend() need to allocate buffer (e77ff41 Azat Khuzhin)
519*a466cc55SCy Schubert   o test/tinytest_macros: add new one tt_nstr_op() (bd19a28 Azat Khuzhin)
520*a466cc55SCy Schubert   o test/bufferevent: check that output_filter disabled during processing output (ae28812 Azat Khuzhin)
521*a466cc55SCy Schubert   o test/listener: regression for missing unlock in listener_read_cb() (7d85651 Azat Khuzhin)
522*a466cc55SCy Schubert   o test/regress: add tests for evbuffer_add() breakage on empty last chain (d5ee739 Marcus Sundberg)
523*a466cc55SCy Schubert   o test/http: fix running some tests sequential (with --no-fork) (bddad71 Azat Khuzhin)
524*a466cc55SCy Schubert   o test/http: localize evhttp server structure (cbc3209 Azat Khuzhin)
525*a466cc55SCy Schubert   o test/dns: regression for empty hostname (d7348ba Azat Khuzhin)
526*a466cc55SCy Schubert   o test/http: fix SERVER_TIMEOUT tests under win32 (d49a658 Azat Khuzhin)
527*a466cc55SCy Schubert   o test/http: add a helper for creating timedout/failed request (376f107 Azat Khuzhin)
528*a466cc55SCy Schubert   o test/http: adopt for C90 (mixed code and declarations) (d02a285 Azat Khuzhin)
529*a466cc55SCy Schubert   o test/http: cover NS timed out during request cancellations separatelly (0c343af Azat Khuzhin)
530*a466cc55SCy Schubert   o test/http: request cancellation with resolving/{conn,write}-timeouts in progress (334340d Azat Khuzhin)
531*a466cc55SCy Schubert   o test/http: exit from the loop in the errorcb to wait cancellation (927ab33 Azat Khuzhin)
532*a466cc55SCy Schubert   o regress_clean_dnsserver(): reset global port vars (351207f Azat Khuzhin)
533*a466cc55SCy Schubert   o test/http: read_on_write_error: fix it for win32 (3b58169 Azat Khuzhin)
534*a466cc55SCy Schubert   o test/http: separate coverage for EVHTTP_CON_READ_ON_WRITE_ERROR (5c2b4c1 Azat Khuzhin)
535*a466cc55SCy Schubert   o test/http: cover "Expect: 100-continue" client-server interaction (31d8116 Azat Khuzhin)
536*a466cc55SCy Schubert   o test/http: *lingering tests shouldn't have "Expect: 100-continue" (ed469ab Azat Khuzhin)
537*a466cc55SCy Schubert   o test: use EVUTIL_SHUT_WR (04fc82f Azat Khuzhin)
538*a466cc55SCy Schubert   o test/http: avoid huge stack allocations to fix win32 builds (3166765 Azat Khuzhin)
539*a466cc55SCy Schubert   o test: http/lingering_close: cover EVHTTP_SERVER_LINGERING_CLOSE (e122ca1 Azat Khuzhin)
540*a466cc55SCy Schubert   o test: http/non_lingering_close: cover ~EVHTTP_SERVER_LINGERING_CLOSE (f41e1b0 Azat Khuzhin)
541*a466cc55SCy Schubert   o test: http/*: update expected HTTP codes for body exceeds `max_body_size` (addf2b9 Azat Khuzhin)
542*a466cc55SCy Schubert   o test: http/data_length_constrains: set EVHTTP_CON_READ_ON_WRITE_ERROR (d38a723 Azat Khuzhin)
543*a466cc55SCy Schubert   o test: increase buffer size for http/data_length_constraints to trigger EPIPE (0792e1e Azat Khuzhin)
544*a466cc55SCy Schubert   o test/tinytest_demo: include <windows.h> for win32 to fix tdm-gcc (f062bbe Azat Khuzhin)
545*a466cc55SCy Schubert   o test/regress: cover event_del() waiting mechanism (5b58b70 Azat Khuzhin)
546*a466cc55SCy Schubert   o test/regress: cover existing signal callbacks and fork() + event_reinit() (ceddc60 Azat Khuzhin)
547*a466cc55SCy Schubert   o test/regress: cover signals after fork() + event_reinit() (b075b81 Azat Khuzhin)
548*a466cc55SCy Schubert   o test/regress: main/fork: rewrite assertions by just removing event in callback (088d8b3 Azat Khuzhin)
549*a466cc55SCy Schubert   o test/dns: check exit code of evdns_getaddrinfo() (0b9d432 Azat Khuzhin)
550*a466cc55SCy Schubert   o test/dns: cover evdns_getaddrinfo() and evdns_base_free() with @fail_requests (4ad3483 Azat Khuzhin)
551*a466cc55SCy Schubert   o test/dns: cover @fail_requests for evdns_base_free() (d6c6fb4 Azat Khuzhin)
552*a466cc55SCy Schubert   o test/dns: more graceful coverage of @fail_requests (123d372 Azat Khuzhin)
553*a466cc55SCy Schubert   o test/ssl: cover busy-loop (i.e. {read,write}-blocked-on-{write,read} stuff) (da0ea7a Azat Khuzhin)
554*a466cc55SCy Schubert   o test/http: write_during_read for https (23c77b6 Azat Khuzhin)
555*a466cc55SCy Schubert   o test/http: connection_fail for https (7ea26f7 Azat Khuzhin)
556*a466cc55SCy Schubert   o test/http: stream_out for https (ac04968 Azat Khuzhin)
557*a466cc55SCy Schubert   o test/http: chunk_out for https (a71ffb9 Azat Khuzhin)
558*a466cc55SCy Schubert   o test/regress: fix ssl-less builds (need to make this prettier) (3160716 Azat Khuzhin)
559*a466cc55SCy Schubert   o test/http: allow dirty shutdown for ssl to fix https_incomplete (1ede326 Azat Khuzhin)
560*a466cc55SCy Schubert   o test/http: https basic (59714b4 Azat Khuzhin)
561*a466cc55SCy Schubert   o test/http: incomplete{,_timeout} for https (615490d Azat Khuzhin)
562*a466cc55SCy Schubert   o test/http: add simplest test for http/https/https_dirty_shutdown (93b19dc Azat Khuzhin)
563*a466cc55SCy Schubert   o test/http: https: retry coverage (7c2d24a Azat Khuzhin)
564*a466cc55SCy Schubert   o test/http: https server support (plus some helpers) (a7088ad Azat Khuzhin)
565*a466cc55SCy Schubert   o test/http: more sanity checks (a27c53c Azat Khuzhin)
566*a466cc55SCy Schubert   o test/ssl: export getkey()/getcert()/get_ssl_ctx()/init_ssl() for https (0c4c387 Azat Khuzhin)
567*a466cc55SCy Schubert   o test/regress_be: basic coverage bufferevent_flush() for pair/sock layers (ad52602 Azat Khuzhin)
568*a466cc55SCy Schubert   o test/regress_be: socket_filter_inactive: check bufferevent after creation (f8081af Azat Khuzhin)
569*a466cc55SCy Schubert   o test/regress_be: cover finalizers from inactive to active queue (337684b Azat Khuzhin)
570*a466cc55SCy Schubert   o test/regress_buffer: fix clang compilation warnings (d8fd4c0 Azat Khuzhin)
571*a466cc55SCy Schubert   o test/regress_http: fix compilation warnings (-Wmissing-field-initializers) (cd422e0 Azat Khuzhin)
572*a466cc55SCy Schubert   o test/regress_dns: fix compilation warnings (-Wmissing-field-initializers/for) (f55db98 Azat Khuzhin)
573*a466cc55SCy Schubert   o tests/regress_dns: cover that randomize-case works case-insensitive (1e8bfbc Azat Khuzhin)
574*a466cc55SCy Schubert   o test: fix bufferevent/bufferevent_pair_release_lock in debug mode (3f749e9 Azat Khuzhin)
575*a466cc55SCy Schubert   o test: fix bufferevent/bufferevent_pair_release_lock for freebsd (79f9ace Azat Khuzhin)
576*a466cc55SCy Schubert   o test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own (a0f308d Azat Khuzhin)
577*a466cc55SCy Schubert   o test/regress_be: introduce fake_listener_create() (37dc9e0 Azat Khuzhin)
578*a466cc55SCy Schubert   o test/regress_http: cover evhttp_request_own() (6f6fa0d Azat Khuzhin)
579*a466cc55SCy Schubert   o test/regress_http: cover write during read (3d15aeb Azat Khuzhin)
580*a466cc55SCy Schubert   o test/regress_http: verify that closecb will be called without multiple write (4be6c70 Azat Khuzhin)
581*a466cc55SCy Schubert   o test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE (6ea6655 Azat Khuzhin)
582*a466cc55SCy Schubert   o test/regress_ssl: check events fd/pending after timeout triggered (cdafdf0 Azat Khuzhin)
583*a466cc55SCy Schubert   o test/regress_ssl: cover case when server didn't up (failed with timeout) (74845f1 Azat Khuzhin)
584*a466cc55SCy Schubert   o test/regress_ssl: covert that we can't change fd with underlying (df507af Azat Khuzhin)
585*a466cc55SCy Schubert   o test/regress_ssl: cover that events (read/write) at finish not pending (762edb4 Azat Khuzhin)
586*a466cc55SCy Schubert   o test/regress_ssl: cover fd manipulations (b78a829 Azat Khuzhin)
587*a466cc55SCy Schubert   o test/regress_ssl: convert open_ssl_bufevs() to mask (46bba73 Azat Khuzhin)
588*a466cc55SCy Schubert   o test/regress_ssl: convert client/server to mask too (3455991 Azat Khuzhin)
589*a466cc55SCy Schubert   o test/regress_ssl: cover "allow_dirty_shutdown" (0430327 Azat Khuzhin)
590*a466cc55SCy Schubert   o test/regress_ssl: convert regress_bufferevent_openssl() to bitmask (342e116 Azat Khuzhin)
591*a466cc55SCy Schubert   o tests/regress_ssl: drop duplicated assert (25e56fd Azat Khuzhin)
592*a466cc55SCy Schubert   o test/regress_http: initialize "dns_base" to avoid reading trash (9f0bff3 Azat Khuzhin)
593*a466cc55SCy Schubert   o test/http: cover retrying with saved conn_address by shutting down dns server (f4874d8 Azat Khuzhin)
594*a466cc55SCy Schubert   o be_pair/regress: cover use of shared lock (lock/unlock/free) (a558fcd Azat Khuzhin)
595*a466cc55SCy Schubert   o regress_dns: drop hack for event_debug_map_HT_GROW in leak tests (3540a19 Azat Khuzhin)
596*a466cc55SCy Schubert
597*a466cc55SCy Schubert Sample code
598*a466cc55SCy Schubert   o Fix memory leak in signal-test.c (666db91 basavesh.as)
599*a466cc55SCy Schubert   o sample/hello-world: exAmple, not eXMple (2d3cd35 kirillDanshin)
600*a466cc55SCy Schubert   o dns-example: allow to set ns from args (df19a97 Azat Khuzhin)
601*a466cc55SCy Schubert   o dns-example: convert to getopt() (32f8592 Azat Khuzhin)
602*a466cc55SCy Schubert   o http-connect: make it win32 compilable (1bf7595 Azat Khuzhin)
603*a466cc55SCy Schubert   o sample/https-client: allow to change path to ca-certificates (fdf713a Azat Khuzhin)
604*a466cc55SCy Schubert   o sample/https-client: check for ERR_remove_thread_state() existence (c4e9d9b Azat Khuzhin)
605*a466cc55SCy Schubert   o sample/https-client: replace ERR_remove_state() by ERR_remove_thread_state() (77ad68a Azat Khuzhin)
606*a466cc55SCy Schubert   o sample/https-client: add -timeout option (4637aa8 Azat Khuzhin)
607*a466cc55SCy Schubert   o sample/https-client: don't try to free uninitialized SSL (f3d7ff5 Azat Khuzhin)
608*a466cc55SCy Schubert   o sample/https-client: graceful exit with freeing memory (to make valgrind happy) (24a1f25 Azat Khuzhin)
609*a466cc55SCy Schubert   o https-client: correctly handle URLs with no path (like "https://host:port") (29a0482 Andrey Skriabin)
610*a466cc55SCy Schubert   o sample/http-connect: don't use assert() to make it work with NDEBUG (6dc71e7 Azat Khuzhin)
611*a466cc55SCy Schubert   o sample/http-connect: made it compatible with C90 (f976d43 Azat Khuzhin)
612*a466cc55SCy Schubert   o sample: add HTTP CONNECT tunnelling example using libevent http layer (1d34498 Azat Khuzhin)
613*a466cc55SCy Schubert   o Update dns-example. (620ff24 Mark Ellzey)
614*a466cc55SCy Schubert
615*a466cc55SCy Schubert Documentation
616*a466cc55SCy Schubert   o Update README.md (b8ec70c Mark Ellzey)
617*a466cc55SCy Schubert   o Update README.md (80faee9 Mark Ellzey)
618*a466cc55SCy Schubert   o Update README.md (ad4a897 Mark Ellzey)
619*a466cc55SCy Schubert   o Update README.md (a2b2e1e Mark Ellzey)
620*a466cc55SCy Schubert   o Update README.md (0dfa5dc Mark Ellzey)
621*a466cc55SCy Schubert
622*a466cc55SCy Schubert Code Improvements (evthread)
623*a466cc55SCy Schubert   o evthread: add evthread_get_{lock,condition}_callbacks() helpers (c0b34f6 Azat Khuzhin)
624*a466cc55SCy Schubert
625*a466cc55SCy Schubert Code Improvements (core)
626*a466cc55SCy Schubert   o util: make @sa const for evutil_socket_connect_() (a8d32c2 Azat Khuzhin)
627*a466cc55SCy Schubert
628*a466cc55SCy Schubert Code Improvements (http)
629*a466cc55SCy Schubert   o http: assert's that evbuffer_drain() success on connection reset (2185e63 Azat Khuzhin)
630*a466cc55SCy Schubert   o http: introduce evhttp_request_free_() helper (22061ac Azat Khuzhin)
631*a466cc55SCy Schubert   o http: introduce evhttp_is_request_connection_close() helper (6540da3 Azat Khuzhin)
632*a466cc55SCy Schubert
633*a466cc55SCy Schubert Code Improvements (bufferevents)
634*a466cc55SCy Schubert   o be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op (0ab88c2 Azat Khuzhin)
635*a466cc55SCy Schubert   o be_sock: sanity check in bufferevent_socket_set_conn_address() (eedbeff Azat Khuzhin)
636*a466cc55SCy Schubert   o be: replace sockaddr_storage with sockaddr_in6 for conn_address (3889612 Azat Khuzhin)
637*a466cc55SCy Schubert   o be: replace conn_address by full struct instead of pointer (e5615aa Azat Khuzhin)
638*a466cc55SCy Schubert   o bufferevent: move conn_address out from http into bufferevent (8bb3842 Azat Khuzhin)
639*a466cc55SCy Schubert   o be: make @sa const for bufferevent_socket_connect() (dc33c78 Azat Khuzhin)
640*a466cc55SCy Schubert
641*a466cc55SCy Schubert Cleanups (core)
642*a466cc55SCy Schubert   o Refactoring conditional directives that break parts of statements. (4b41eeb lzmths)
643*a466cc55SCy Schubert   o epoll: introduce PRINT_CHANGES() macro to avoid copy-pasting (a1b142b Azat Khuzhin)
644*a466cc55SCy Schubert   o tab (6e7a580 Greg Hazel)
645*a466cc55SCy Schubert
646*a466cc55SCy Schubert Cleanups (evbuffers)
647*a466cc55SCy Schubert   o buffer_compat: fix comment -- we have EVBUFFER_EOL_ANY not EOL_STYLE_ANY (575ff67 Azat Khuzhin)
648*a466cc55SCy Schubert
649*a466cc55SCy Schubert Cleanups (bufferevents)
650*a466cc55SCy Schubert   o be_sock: evutil_getaddrinfo_async_() always return 0 (dbff101 Azat Khuzhin)
651*a466cc55SCy Schubert   o be_sock: drop be_sock_add() macro (useless and debug unfriendly) (fad5fe2 Azat Khuzhin)
652*a466cc55SCy Schubert   o be: introduce bufferevent_generic_adj_existing_timeouts_() (3c1f58f Azat Khuzhin)
653*a466cc55SCy Schubert   o be: add_event: use evutil_timerisset() (a96b73b Azat Khuzhin)
654*a466cc55SCy Schubert   o be_openssl: introduce be_openssl_auto_fd() helper (2a8a711 Azat Khuzhin)
655*a466cc55SCy Schubert   o be_openssl: introduce set_open_callbacks_auto() (510da71 Azat Khuzhin)
656*a466cc55SCy Schubert
657*a466cc55SCy Schubert Cleanups (http)
658*a466cc55SCy Schubert   o http: make fallback for EVHTTP_CON_READ_ON_WRITE_ERROR more cleaner (d405492 Azat Khuzhin)
659*a466cc55SCy Schubert   o http: coding style issue (365f181 Azat Khuzhin)
660*a466cc55SCy Schubert
661*a466cc55SCy Schubert Cleanups (evdns)
662*a466cc55SCy Schubert   o evnds: inline TEST_NAME macro to make debuggin easier (0c615f4 Azat Khuzhin)
663*a466cc55SCy Schubert
664*a466cc55SCy Schubert Portability Fixes
665*a466cc55SCy Schubert   o [#372] check for errno.h (3031617 Mark Ellzey)
666*a466cc55SCy Schubert   o Fixed Unicode issue in error messages. (e8b7895 Mattes D)
667*a466cc55SCy Schubert   o Assume that ke_udata is an integer type on CloudABI. (5602e45 Ed Schouten)
668*a466cc55SCy Schubert   o Add missing include of <netinet/in.h>. (b2c68bc Ed Schouten)
669*a466cc55SCy Schubert   o Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally. (c1404b5 Ed Schouten)
670*a466cc55SCy Schubert   o Test against SO_REUSEADDR (along with _WIN32). (ce1776c Ed Schouten)
671*a466cc55SCy Schubert   o Always define missing TAILQ functions from sys/queue.h (2828bdb Christopher Wiley)
672*a466cc55SCy Schubert   o Don't use BSD u_* types. (fd36647 Ed Schouten)
673*a466cc55SCy Schubert   o Remove BSD-ism: TIMEVAL_TO_TIMESPEC(). (193c7de Ed Schouten)
674*a466cc55SCy Schubert   o be: include all variations of headers for sockaddr_in6 struct (c212291 Azat Khuzhin)
675*a466cc55SCy Schubert   o be: fix sockaddr_in6 type definition for win32 (c42bc6b Azat Khuzhin)
676*a466cc55SCy Schubert
677*a466cc55SCy Schubert Continious Integration:
678*a466cc55SCy Schubert   o travis: split long lines, and make it cleaner (685a6a1 Azat Khuzhin)
679*a466cc55SCy Schubert   o travis: fix autotools on osx by reinstalling libtool (088ea5e Azat Khuzhin)
680*a466cc55SCy Schubert   o appveyor/autotools: link with openssl by passing LDFLAGS/CFLAGS (6fcfa25 Azat Khuzhin)
681*a466cc55SCy Schubert   o appveyor: image already had openssl installed (4634b85 Azat Khuzhin)
682*a466cc55SCy Schubert   o appveyor: check -DUNICODE -D_UNICODE according to ReleaseChecklist (cmake only) (e9acc44 Azat Khuzhin)
683*a466cc55SCy Schubert   o appveyor: ignore failure of mingw-get (1810857 Azat Khuzhin)
684*a466cc55SCy Schubert   o appveyor: drop shallow_clone, since we use tags for detecting version in cmake (ac90133 Azat Khuzhin)
685*a466cc55SCy Schubert   o appveyor: support cmake & autotools using build matrix (like travis-ci has) (8f95015 Azat Khuzhin)
686*a466cc55SCy Schubert   o travis-ci/osx: relink gcc/g++ instead of clang (481481d Azat Khuzhin)
687*a466cc55SCy Schubert   o travis-ci: enable multi-os mode (osx, linux) (79917e4 Azat Khuzhin)
688*a466cc55SCy Schubert   o travis-ci: increase matrix (--disable-foo) (59649f7 Azat Khuzhin)
689*a466cc55SCy Schubert   o travis-ci: adjust alignment (c8be339 Azat Khuzhin)
690*a466cc55SCy Schubert   o travis: add builds without debug mode into matrix (3e56da2 Azat Khuzhin)
691*a466cc55SCy Schubert   o test: run regress with EVENT_DEBUG_MODE=1 and without (cf2cf2a Azat Khuzhin)
692*a466cc55SCy Schubert   o Update travis config for status updates (37453ab Mark Ellzey)
693*a466cc55SCy Schubert   o Use autotools for appveyor until cmake is fixed. (1cc2e29 Mark Ellzey)
694*a466cc55SCy Schubert   o Fix the link for appveyor OpenSSL installer (WIN32) (107d565 Mark Ellzey)
695*a466cc55SCy Schubert   o Forgot to install OpenSSL for appveyor (26164a5 Joakim Söderberg)
696*a466cc55SCy Schubert   o Add support for appveyor.com windows CI (5f89c37 Joakim Söderberg)
697*a466cc55SCy Schubert
698*a466cc55SCy Schubert Build Improvements/Fixes:
699*a466cc55SCy Schubert   o evutil: mark ai_find_protocol() static (prototype-less) (5a157c8 Azat Khuzhin)
700*a466cc55SCy Schubert   o cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections (dc95823 Azat Khuzhin)
701*a466cc55SCy Schubert   o cmake/solaris: fix building (link with socket,nsl) (050bfc7 Azat Khuzhin)
702*a466cc55SCy Schubert   o cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers (c4dfb93 Azat Khuzhin)
703*a466cc55SCy Schubert   o autotools/win32: fix searching ssl library (671a24f Azat Khuzhin)
704*a466cc55SCy Schubert   o cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON (de0c196 Azat Khuzhin)
705*a466cc55SCy Schubert   o cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON (ecb0ec8 Azat Khuzhin)
706*a466cc55SCy Schubert   o cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) (e35f224 Azat Khuzhin)
707*a466cc55SCy Schubert   o cmake: do not use stderr for notifications/version-info (38716c6 Azat Khuzhin)
708*a466cc55SCy Schubert   o autoconf: fix --disable-thread-support build under win32 (bb09535 Azat Khuzhin)
709*a466cc55SCy Schubert   o buffer: don't mix code and declarations (8892f4c Azat Khuzhin)
710*a466cc55SCy Schubert   o Update gitignore file to ignore cscope gen'ed files (0aaa4fb Neeraj Badlani)
711*a466cc55SCy Schubert   o For non GCC/clang on OSX the -Wno-deprecated-declarations may not be valid (b5ca365 Rainer Keller)
712*a466cc55SCy Schubert   o automake: define serial-tests only if automake have this option (61179de Azat Khuzhin)
713*a466cc55SCy Schubert   o test/automake: don't use paralell test harness (since automake 1.12) (44d755e Azat Khuzhin)
714*a466cc55SCy Schubert   o Ignore all pkgconfig generated stuff (ce38993 Azat Khuzhin)
715*a466cc55SCy Schubert   o libevent_core and libevent_extra also deserve a pkgconfig file (b8d7c62 Jan Heylen)
716*a466cc55SCy Schubert   o Ignore verify_tests.bat (win32 version) (0f2de10 Azat Khuzhin)
717*a466cc55SCy Schubert   o cmake: require 3.1 only for win32 to make it work under ubunty precise (87f7238 Azat Khuzhin)
718*a466cc55SCy Schubert   o cmake: require at least 3.1 for target_sources() (c46ead5 Azat Khuzhin)
719*a466cc55SCy Schubert   o cmake: fix adding of compiler flags, and now it will (36588e1 Azat Khuzhin)
720*a466cc55SCy Schubert   o Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too (f29f59e Azat Khuzhin)
721*a466cc55SCy Schubert   o test/regress_ssl: Fix compile problems for win32 (73d0360 Trond Norbye)
722*a466cc55SCy Schubert   o util: fix "%zu" format on TDM-gcc/MinGW-w64 (79b69d8 Azat Khuzhin)
723*a466cc55SCy Schubert   o cmake: don't define EVENT__NEED_DLLIMPORT always (fixes VS2013 static build) (49bd790 Azat Khuzhin)
724*a466cc55SCy Schubert   o Add missing return statement to del_wait_thread so libevent can build. (4f778ab Nick Mathewson)
725*a466cc55SCy Schubert   o cmake: fix building dns-example under win32 (missing getopt) (a1609a8 Azat Khuzhin)
726*a466cc55SCy Schubert   o visibility: align it to make it more readable (bb6b53d Azat Khuzhin)
727*a466cc55SCy Schubert   o cmake: Fix detection of ssize_t/SSIZE_T (7707f6b Azat Khuzhin)
728*a466cc55SCy Schubert   o Ignore more configure stuff (configure.lineno) (8d34302 Azat Khuzhin)
729*a466cc55SCy Schubert   o Fixed issue with cmake version generation (d56efd9 Mark Ellzey)
730*a466cc55SCy Schubert   o Cmake is now officially working. (7f9646d Mark Ellzey)
731*a466cc55SCy Schubert   o More cmake updates, lot's of missing definitions (49a5381 Mark Ellzey)
732*a466cc55SCy Schubert   o CMake syntax fixes fo .in files (6aad23d Mark Ellzey)
733*a466cc55SCy Schubert   o Revert "The Windows socket type is defined as SOCKET." (a264da8 Mark Ellzey)
734*a466cc55SCy Schubert   o CMAKE CMAKE CMAKE CLEANUPS (a9db46a Mark Ellzey)
735*a466cc55SCy Schubert   o Lot's of cmake updates (8b228e2 Mark Ellzey)
736*a466cc55SCy Schubert   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)
737*a466cc55SCy Schubert   o The Windows socket type is defined as SOCKET. (c9e6c3d billsegall)
738*a466cc55SCy Schubert   o autotools: fix getservbyname() detection (959a4c2 Azat Khuzhin)
739*a466cc55SCy Schubert   o Add missing <string.h> for openssl_hostname_validation module (3316a21 Azat Khuzhin)
740*a466cc55SCy Schubert   o make test/regress_ssl.c compile without warnings (9f02a44 Thomas Bernard)
741*a466cc55SCy Schubert   o test/regress_be: drop debug __asm__(int3) to fix arm build (8240379 Azat Khuzhin)
742*a466cc55SCy Schubert   o event_debug_created_threadable_ctx_: fix compilation without debug mode (a068f2e Azat Khuzhin)
743*a466cc55SCy Schubert   o Add a prototype for event_disable_debug_mode() (bfcedee Sebastian Hahn)
744*a466cc55SCy Schubert   o http: eliminate warning about "socklen" in evhttp_connection_connect_() (dfad1a4 Azat Khuzhin)
745*a466cc55SCy Schubert   o Updated gitignore (1dbb55d Mark Ellzey)
746*a466cc55SCy Schubert   o Update bench_httpclient.c (cb96931 Seungmo Koo)
747*a466cc55SCy Schubert   o *fix: bench_httpclient to support win32 (4e9325e zeliard)
748*a466cc55SCy Schubert   o Commented out a WIN32 threading / timing test for now (e84e269 Mark Ellzey)
749*a466cc55SCy Schubert   o Fix mixed declarations and code (forbidden by ISO C90) (0c7f217 Thomas Bernard)
750*a466cc55SCy Schubert   o Fix "function declaration isn’t a prototype" (746d2c5 Thomas Bernard)
751*a466cc55SCy Schubert   o This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 (19ba454 Joakim Söderberg)
752*a466cc55SCy Schubert   o changed strtotimeval signature as per #211 (bdbc823 Xiao Bao Clark)
753*a466cc55SCy Schubert   o Added cmake-generated files to ignore list. (6c12bfe Matyas Dolak)
754*a466cc55SCy Schubert   o Ignore `make dist` generated files (8a2c6c7 Azat Khuzhin)
755*a466cc55SCy Schubert
756*a466cc55SCy Schubert  Debugging
757*a466cc55SCy Schubert   o Debug mode option to error on evthread init AFTER other event calls. (dcfb19a Mark Ellzey)
758*a466cc55SCy Schubert
759*a466cc55SCy Schubert
760*a466cc55SCy Schubert
761a25439b6SCy SchubertChanges in version 2.1.5-beta (5 January 2015)
7622b15cb3dSCy Schubert
763a25439b6SCy Schubert Security Fixes (evbuffers)
764a25439b6SCy Schubert   o Avoid integer overflow bugs in evbuffer_add() and related functions.  See CVE-2014-6272 advisory for more information. (d49bc0e88b81a5812116074dc007f1db0ca1eecd)
7652b15cb3dSCy Schubert
766a25439b6SCy Schubert New APIs (evconnlistener)
767a25439b6SCy Schubert   o Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT (b625361 Maciej Soltysiak)
768a25439b6SCy Schubert
769a25439b6SCy Schubert Bugfixes (core)
770a25439b6SCy Schubert    o Fix use-after-free error in EV_CLOSURE_EVENT callback (3cc0eac John Ohl)
771a25439b6SCy Schubert    o Fix race caused by event_active (3c7d6fc vjpai)
772a25439b6SCy Schubert
773a25439b6SCy Schubert Bugfixes (evbuffer)
774a25439b6SCy Schubert   o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (ba59923)
775a25439b6SCy Schubert   o Consistently check for failure from evbuffer_pullup() (60f8f72)
776a25439b6SCy Schubert   o Fix evbuffer_peek() with len==-1 and start_at non-NULL. (fb7e76a)
777a25439b6SCy Schubert
778a25439b6SCy Schubert Bugfixes (windows, IOCP)
779a25439b6SCy Schubert   o be async: avoid double close() (f133b86 Azat Khuzhin)
780a25439b6SCy Schubert
781a25439b6SCy Schubert Bugfixes (bufferevents)
782a25439b6SCy Schubert   o Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE (2c82aa0 John Ohl)
783a25439b6SCy Schubert   o make bufferevent_getwatermark api more robust (a21e510 ufo2243)
784a25439b6SCy Schubert   o [Bugfix] fix bufferevent setwatermark suspend_read (b34e4ac ufo2243)
785a25439b6SCy Schubert   o bufferevent_openssl: reset fd_is_set when setfd with -1 is called (3da84c2 Azat Khuzhin)
786a25439b6SCy Schubert   o Fix compilation for older OpenSSL versions. (5c7282f Joakim Soderberg)
787a25439b6SCy Schubert
788a25439b6SCy Schubert New APIs (evhttp)
789a25439b6SCy Schubert   o Add evhttp_connection_set_family() to set addrinfo->family for DNS requests (12c29b0 Azat Khuzhin)
790a25439b6SCy Schubert   o Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed (2b9ec4c,10fe4f John Ohl)
791a25439b6SCy Schubert
792a25439b6SCy Schubert New APIs (core)
793a25439b6SCy Schubert   o Implement new/free for struct evutil_monotonic_timer and export monotonic time functions (f2645f8 Andrea Shepard)
794a25439b6SCy Schubert
795a25439b6SCy Schubert Bugfixes (evdns)
796a25439b6SCy Schubert   o Load hosts file on Windows. (a0b247c Vilmos Nebehaj)
797a25439b6SCy Schubert   o Don't truncate hosts file path on Windows. (d0dc861 Vilmos Nebehaj)
798a25439b6SCy Schubert   o Fix a crash in evdns related to shutting down evdns (9f39c88,e8fe749)
799a25439b6SCy Schubert   o evdns: avoid read-after-free in evdns_request_timeout_callback() (61262a0 Azat Khuzhin)
800a25439b6SCy Schubert   o Correctly handle allocation failures in evdns_getaddrinfo (6a53d15)
801a25439b6SCy Schubert   o evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry (74d0eee Azat Khuzhin)
802a25439b6SCy Schubert   o evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE (3ca9d43 Azat Khuzhin)
803a25439b6SCy Schubert   o evdns: fail ns after we are failing/retrasmitting request (97c750d Azat Khuzhin)
804a25439b6SCy Schubert
805a25439b6SCy Schubert Bugfixes (evhttp)
806a25439b6SCy Schubert   o http: reset connection before installing retry timer (fix http retries handling) (bc79cc5 Azat Khuzhin)
807a25439b6SCy Schubert
808a25439b6SCy Schubert
809a25439b6SCy Schubert Testing
810a25439b6SCy Schubert   o regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests (2fdc5f2 Azat Khuzhin)
811a25439b6SCy Schubert   o test: add family argument for http_connection_test_() (177b8a7 Azat Khuzhin)
812a25439b6SCy Schubert   o test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC (42aefeb Azat Khuzhin)
813a25439b6SCy Schubert   o test/http: add regress test for set family to AF_INET6 (3fbf3cc Azat Khuzhin)
814a25439b6SCy Schubert   o Update to a more recent tinytest_macros. (8da5a18)
815a25439b6SCy Schubert   o test/regress: add simplestsignal: to track reorder bugs separately (b897bef Azat Khuzhin)
816a25439b6SCy Schubert   o test/evbuffer_peek: add regress in case we have first buffer greater (e2d139d Azat Khuzhin)
817a25439b6SCy Schubert   o More evbuffer_peek() test cases (154006a)
818a25439b6SCy Schubert   o use correct tt macro for pointer compare (08c88ea)
819a25439b6SCy Schubert   o regress_buffer: fix 'memcmp' compare size (79800df Maks Naumov)
820a25439b6SCy Schubert   o Fix a use-after-free in unit tests. CID 752027 (3739057)
821a25439b6SCy Schubert   o Fix a dead-code warning in unit tests. CID 1193548 (c119f24)
822a25439b6SCy Schubert   o Use evutil_weakrand() in unit tests. (a677b72, 364c110)
823a25439b6SCy Schubert   o Use a more precise calculation for max in time-ratelim.c (ca5b5c7)
824a25439b6SCy Schubert   o Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from() (fb57b8b)
825a25439b6SCy Schubert   o Fix several memory leaks in the unit tests. (89c1a3b)
826a25439b6SCy Schubert   o Add test for evhttp_connection_free_on_completion (b0e9924 John Ohl)
827a25439b6SCy Schubert   o Fix annoying heisenbug in test-time.c (cb73704)
828a25439b6SCy Schubert
829a25439b6SCy Schubert Sample code
830a25439b6SCy Schubert   o Make http-server.c output into good html5 (6d72bdc)
831a25439b6SCy Schubert   o Use FindClose for handle from FindFirstFile in http-server.c (6466e88)
832a25439b6SCy Schubert   o https-client: add -retries argument, for connection retries (d9da844 Azat Khuzhin)
833a25439b6SCy Schubert
834a25439b6SCy Schubert Bugfixes (build)
835a25439b6SCy Schubert   o Add missing headerfile for cmake (15d90cc Trond Norbye)
836a25439b6SCy Schubert   o ignore one more test binary (b6593aa Michael Richardson)
837a25439b6SCy Schubert   o ignore config.cache/test-driver files (c83f333 Mike Frysinger)
838a25439b6SCy Schubert   o add a --disable-samples configure flag (0c492b3 Mike Frysinger)
839a25439b6SCy Schubert   o Add a few files created by "make verify" to .gitignore. (1a8295a Pierre Phaneuf)
840a25439b6SCy Schubert   o updates in cmake build (27bd9fa Sergey Nikulov)
841a25439b6SCy Schubert   o Fix cmake error when the Module path has more than one entry. (befbd13 Acer Yang)
842a25439b6SCy Schubert   o Fix CMake shared library build (e69d910 Nobuaki Sukegawa)
843a25439b6SCy Schubert   o Fix warnings when compiling with clang 3.5 (f5b4765 John Ohl)
844a25439b6SCy Schubert   o Fix mixed declarations and code (forbidden by ISO C90) (8afbdbc Thomas Bernard)
845a25439b6SCy Schubert
846a25439b6SCy Schubert Bugfixes (miscellaneous)
847a25439b6SCy Schubert   o tree.h: drop duplicated content of tree.h (6193187 Azat Khuzhin)
848a25439b6SCy Schubert   o evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE (610410b,ad0493e,fea86a6,d83b337,5ca9e97 Azat Khuzhin)
849a25439b6SCy Schubert   o [Bugfix] fix grammer error (3a4d249 ufo2243)
850a25439b6SCy Schubert   o Change return type of evutil_load_windows_system_library_ to HMODULE (f691389)
851a25439b6SCy Schubert   o Fix a c90 warning (76643dd)
852a25439b6SCy Schubert   o Fix a typo in a doxygen comment. Reported by 亦得. (be1aeff)
853a25439b6SCy Schubert   o remove trailing comma from enum (b361b8a Jean-Philippe Ouellet)
854a25439b6SCy Schubert
855a25439b6SCy Schubert Bugfixes (FreeBSD)
856a25439b6SCy Schubert   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)
857a25439b6SCy Schubert
858a25439b6SCy Schubert
859a25439b6SCy Schubert
860a25439b6SCy SchubertChanges in version 2.1.4-alpha (21 Mar 2014)
861a25439b6SCy Schubert
862a25439b6SCy Schubert Libevent 2.1.4-alpha adds a number of new miscellaneous APIs to make
863a25439b6SCy Schubert Libevent more useful, including support for early close detection with
864a25439b6SCy Schubert epoll via EPOLLRDHUP, triggering bufferevent callbacks, adding more
865a25439b6SCy Schubert evhttp callbacks, and more. There are also numerous bugfixes, including
866a25439b6SCy Schubert a number for finalize-related issues from 2.1.3-alpha; and an
867a25439b6SCy Schubert alternative (non-primary!) cmake-based build mechanism.
868a25439b6SCy Schubert
869a25439b6SCy Schubert New APIs (core)
870a25439b6SCy Schubert   o Added event_base_get_num_events() (0fa107d Mobai Zhang)
871a25439b6SCy Schubert   o New event_base_active_by_fd API (865a142 Greg Hazel, 5c9da9a, 87fa2b0)
872a25439b6SCy Schubert   o Add event_base_active_by_signal by analogy (4865943)
873a25439b6SCy Schubert   o Add access to max event count stats (5173bef, efbd3dc, 26230a2
874a25439b6SCy Schubert     Andrew Sweeney)
875a25439b6SCy Schubert   o Implemented EV_CLOSED event for epoll backend
876a25439b6SCy Schubert     (EPOLLRDHUP). (b1b69ac Diego Giagio, 53d2793, 43ffcf6, dfe1e52
877a25439b6SCy Schubert     Marcin Juszkiewicz, ff26633 Joakim Soderberg, 3908a5e)
878a25439b6SCy Schubert
879a25439b6SCy Schubert New APIs (evutil_secure_rng)
880a25439b6SCy Schubert   o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)
881a25439b6SCy Schubert
882a25439b6SCy Schubert New APIs (bufferevents)
883a25439b6SCy Schubert   o Add function to fetch underlying ratelimit cfg (4b3d5af Mark Ellzey)
884a25439b6SCy Schubert   o Pass and return const for bufferevent_get_token_bucket_cfg (1c77fbb
885a25439b6SCy Schubert     Mark Ellzey)
886a25439b6SCy Schubert   o Add watermark introspection (4ce242b Ondřej Kuzník)
887a25439b6SCy Schubert   o Add an option to trigger bufferevent I/O callbacks (61ee18b Ondřej Kuzník)
888a25439b6SCy Schubert   o Add an option to trigger bufferevent event callbacks (a7384c7
889a25439b6SCy Schubert     Ondřej Kuzník)
890a25439b6SCy Schubert   o Clarifications in response to merge req. comments (bd41947 Ondřej
891a25439b6SCy Schubert     Kuzník)
892a25439b6SCy Schubert   o Minor optimizations on bufferevent_trigger options (a3172a4)
893a25439b6SCy Schubert
894a25439b6SCy Schubert New APIs (evhttp)
895a25439b6SCy Schubert   o Add evhttp_connection_get_server(). (a7f82a3 Maxime Henrion)
896a25439b6SCy Schubert   o add a http default content type option (5a5acd9 Nicolas Martyanoff)
897a25439b6SCy Schubert   o http: implement new evhttp_connection_get_addr() api. (0c7f040 Azat
898a25439b6SCy Schubert     Khuzhin)
899a25439b6SCy Schubert   o Add a variant of evhttp_send_reply_chunk() with a callback on
900a25439b6SCy Schubert     evhttp_write_buffer() (8d8decf Julien BLACHE)
901a25439b6SCy Schubert   o Allow registering callback for parsing HTTP headers (b0bd7fe Balint Reczey)
902a25439b6SCy Schubert   o Provide on request complete callback facility (b083ca0 Andrew Sweeney)
903a25439b6SCy Schubert   o evhttp_request_set_on_complete_cb to be more specific about what
904a25439b6SCy Schubert     the function actually does and usage (da86dda Andrew Sweeney)
905a25439b6SCy Schubert   o Update unit test to make sure that the callback happens after the
906a25439b6SCy Schubert     output data is written (b85f398 Andrew Sweeney)
907a25439b6SCy Schubert
908a25439b6SCy Schubert Features (evdns)
909a25439b6SCy Schubert   o bug fix for issues #293 evdns_base_load_hosts doesn't remove
910a25439b6SCy Schubert     outdated addresses (954d2f9, f03d353, 45eba6f Kuldeep Gupta)
911a25439b6SCy Schubert
912a25439b6SCy Schubert Features: (cmake build support)
913a25439b6SCy Schubert   o Initial CMake commit. (e415196 Joakim Soderberg)
914a25439b6SCy Schubert   o Add all tests and benchmarks to CMake project. (e9fc014 Joakim Soderberg)
915a25439b6SCy Schubert   o More work on adding tests to CMake project (99c1dc3 Joakim Soderberg)
916a25439b6SCy Schubert   o Generate a dummy evconfig-private.h so things build
917a25439b6SCy Schubert     properly. (ce14def Joakim Soderberg)
918a25439b6SCy Schubert   o Link libm on unix platforms. (58fcd42 Joakim Soderberg)
919a25439b6SCy Schubert   o Added some GCC specific options. (19222e5 Joakim Soderberg)
920a25439b6SCy Schubert   o Use evutil_closesocket instead. (dbf2b51 Joakim Soderberg)
921a25439b6SCy Schubert   o Add copyright and licensing files for CMake modules. (c259d53
922a25439b6SCy Schubert     Joakim Soderberg)
923a25439b6SCy Schubert   o Only include WIN32 getopt where it is used. (9bbce0b Joakim Soderberg)
924a25439b6SCy Schubert   o Fix bench_cascade program on Windows. (78da644 Joakim Soderberg)
925a25439b6SCy Schubert   o Don't segfault on no found event backend. (8f2af50 Joakim Soderberg)
926a25439b6SCy Schubert   o Only test the event backends available on the system. (7ea4159
927a25439b6SCy Schubert     Joakim Soderberg)
928a25439b6SCy Schubert   o Added a "make verify" target. (e053c4f Joakim Soderberg)
929a25439b6SCy Schubert   o Fix the make "verify" target on Windows. (67e5d74 Joakim Soderberg)
930a25439b6SCy Schubert   o Get rid of deprecation warnings for OpenSSL on OSX 10.7+ (69c3516
931a25439b6SCy Schubert     Joakim Söderberg)
932a25439b6SCy Schubert   o Fix kqueue support. (a831f2f Joakim Söderberg)
933a25439b6SCy Schubert   o Added a test for testing if kqueue works with pipes. (2799b35
934a25439b6SCy Schubert     Joakim Söderberg)
935a25439b6SCy Schubert   o Change the BSD license from 4 to 3-clause. (86df3ed Joakim Soderberg)
936a25439b6SCy Schubert   o Minimum required python version is 2.4. (968e97b Joakim Soderberg)
937a25439b6SCy Schubert   o Get rid of unknown pragma warnings. (0ef1d04 Joakim Soderberg)
938a25439b6SCy Schubert   o Add a "make verify_coverage" target generation coverage
939a25439b6SCy Schubert     info. (f2483f8 Joakim Soderberg)
940a25439b6SCy Schubert   o Fix the "make verify" target on NetBSD (4ac086a Joakim Soderberg)
941a25439b6SCy Schubert   o Only look for ZLib when it is used (if tests are
942a25439b6SCy Schubert     included). (f780593 Joakim Soderberg)
943a25439b6SCy Schubert   o Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into
944a25439b6SCy Schubert     errors. (dd413bd Joakim Soderberg)
945a25439b6SCy Schubert   o Add CMake config and install targets. (f3446ed Joakim Soderberg)
946a25439b6SCy Schubert   o Fix typo (4b754df Joakim Soderberg)
947a25439b6SCy Schubert   o Some work on making it possible to simply do add_subdirectory() on
948a25439b6SCy Schubert     the project. (49ab363 Joakim Soderberg)
949a25439b6SCy Schubert   o Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG (fd42e70 Joakim Soderberg)
950a25439b6SCy Schubert   o Fix so that old nmake project still builds. (24d6466 Joakim
951a25439b6SCy Schubert     Soderberg)
952a25439b6SCy Schubert   o Rename README to README.md and use markdown to format. (d2bc39a
953a25439b6SCy Schubert     Joakim Soderberg)
954a25439b6SCy Schubert   o Update README with CMake build instructions. (604b8cc Joakim Soderberg)
955a25439b6SCy Schubert   o Clean up the README some. (8d4cb35 JoakimSoderberg)
956a25439b6SCy Schubert   o Forgotten headers for old nmake project compatability. (8697b99
957a25439b6SCy Schubert     Joakim Soderberg)
958a25439b6SCy Schubert   o Change all uses of WIN32 to _WIN32 (4e14395 Joakim Söderberg)
959a25439b6SCy Schubert   o Fix include bug. (2024467 Joakim Söderberg)
960a25439b6SCy Schubert   o Check if we're on OSX before disabling deprecation in le-proxy
961a25439b6SCy Schubert     (8b40a5b Joakim Söderberg)
962a25439b6SCy Schubert   o Fix broken autotools build. (ae1bd82 Joakim Söderberg)
963a25439b6SCy Schubert   o Disclaimerize cmake a little in the README (d03b5bf)
964a25439b6SCy Schubert   o Fix CMake compile when OpenSSL is disabled. (e423d42 Joakim
965a25439b6SCy Schubert     Söderberg)
966a25439b6SCy Schubert   o CMake: Get rid of python not found warning when regress tests
967a25439b6SCy Schubert     turned off. (d38d798 Joakim Söderberg)
968a25439b6SCy Schubert   o Fix https-client compilation on Windows. (d7be788 Joakim Soderberg)
969a25439b6SCy Schubert   o Guard against EVENT_NOWIN32 being set during testing. (f1715b4
970a25439b6SCy Schubert     Joakim Soderberg)
971a25439b6SCy Schubert   o Check for OSX when checking for clang. (e212c54 Joakim Soderberg)
972a25439b6SCy Schubert   o Added a Travis-CI configuration file. (8c0f0a9 Joakim Soderberg)
973a25439b6SCy Schubert   o Added -Qunused-arguments for clang on macosx (ed99d92 Trond Norbye)
974a25439b6SCy Schubert   o Rename event_extras to event_extra (a0dd5df Trond Norbye)
975a25439b6SCy Schubert   o Add option to build shared library (4545fa9 Trond Norbye)
976a25439b6SCy Schubert   o Add -Qunused-arguments for clang on macos (b56611d Trond Norbye)
977a25439b6SCy Schubert   o Add cmake-related files to .gitignore (e061321 Trond Norbye)
978a25439b6SCy Schubert   o Export event_extra not event_extras. (2b41bcf Joakim Söderberg)
979a25439b6SCy Schubert
980a25439b6SCy Schubert Bugfixes (core)
981a25439b6SCy Schubert   o If evsel->del() fails, don't leave the evmap in an inconsistent
982a25439b6SCy Schubert     state (9b5a527 Maxime Henrion)
983a25439b6SCy Schubert   o Move event_debug_note_teardown_ before mm_free. (69b5c64)
984a25439b6SCy Schubert   o Check CLOCK_MONOTONIC_* at runtime if needed. (911abf3)
985a25439b6SCy Schubert   o Fix reinit of fds with EV_WRITE but not EV_READ. (ebfd8a8 maksqwe)
986a25439b6SCy Schubert   o Tweaked callbacks to prevent race condition
987a25439b6SCy Schubert     (https://github.com/libevent/libevent/issues/104) (40830f1, 2ea15ed
988a25439b6SCy Schubert     John Ohl)
989a25439b6SCy Schubert   o Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE
990a25439b6SCy Schubert     case (9805972)
991a25439b6SCy Schubert
992a25439b6SCy Schubert Bugfixes (evhttp)
993a25439b6SCy Schubert   o Fix a double close() bug in evhttp when the underlying bufferevent uses
994a25439b6SCy Schubert     BEV_OPT_CLOSE_ON_FREE. (31db8a0 Maxime Henrion)
995a25439b6SCy Schubert   o Fix an unlikely but possible error case for http connections (f22049e)
996a25439b6SCy Schubert   o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)
997a25439b6SCy Schubert
998a25439b6SCy Schubert Bugfixes on 2.0 (Windows)
999a25439b6SCy Schubert   o Use windows vsnprintf fixup logic on all windows environments (e826f19)
1000a25439b6SCy Schubert   o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
1001a25439b6SCy Schubert    (b8f5980 Frank Denis)
1002a25439b6SCy Schubert
1003a25439b6SCy Schubert Bugfixes (evutil_secure_rng)
1004a25439b6SCy Schubert   o When we seed from /proc/sys/kernel/random/uuid, count it as success
1005a25439b6SCy Schubert     (e35b540)
1006a25439b6SCy Schubert   o We should return after arc4random_buf() (1ea1f26 Makoto Kato)
1007a25439b6SCy Schubert   o Avoid other RNG initialization FS reads when urandom file is
1008a25439b6SCy Schubert     specified (9695e9c)
1009a25439b6SCy Schubert   o Really remove RNG seeds from the stack (f5ced88)
1010a25439b6SCy Schubert   o Fix another arc4random_buf-related warning (e64a2b0)
1011a25439b6SCy Schubert
1012a25439b6SCy Schubert Bugfixes (bufferevents)
1013a25439b6SCy Schubert   o Initialize async bufferevent timeout CBs unconditionally (af9b2a7)
10142b15cb3dSCy Schubert
10152b15cb3dSCy Schubert Bugfixes (evdns)
10162b15cb3dSCy Schubert   o Checking request nameserver for NULL, before using it. (5c710c0
10172b15cb3dSCy Schubert     Belobrov Andrey)
1018a25439b6SCy Schubert   o Fix SEGFAULT after evdns_base_resume if no nameservers
1019a25439b6SCy Schubert     installed. (14971a8 Azat Khuzhin)
10202b15cb3dSCy Schubert   o Actually use the log facility for reporting evdns problems. (e1766a1)
1021a25439b6SCy Schubert   o Fix SEGFAULT after evdns_base_resume if no nameservers
1022a25439b6SCy Schubert     installed. (f8d7df8 Azat Khuzhin)
1023a25439b6SCy Schubert   o fix for ServFail from RIPE Atlas release (62f596b Antony Antony)
10242b15cb3dSCy Schubert
1025a25439b6SCy Schubert Bugfixes (compilation)
10262b15cb3dSCy Schubert   o Fix test compilation with nmake: add the gdi.lib dependency (5ba8ab7)
10272b15cb3dSCy Schubert   o Whoops. It is gdi.lib, not gdi32.lib. (github issue #61) (8ab612e)
1028a25439b6SCy Schubert   o Don't use return since return type is void and build error occurs
1029a25439b6SCy Schubert     using clang (838161d Makoto Kato)
10302b15cb3dSCy Schubert   o Use void casts to suppress some "unchecked return value" warns (7080d55)
1031a25439b6SCy Schubert   o rpcgen: Generate regress.gen.[c,h] in build rather than src dir
1032a25439b6SCy Schubert     (243386c Ross Lagerwall)
1033a25439b6SCy Schubert   o Fix a compiler warning when checking for arc4random_buf linker
1034a25439b6SCy Schubert     breakage. (5cb3865)
1035a25439b6SCy Schubert   o Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
1036a25439b6SCy Schubert    (239d834)
1037a25439b6SCy Schubert
1038a25439b6SCy Schubert   o Fix a c90 warning (c207682)
1039a25439b6SCy Schubert   o Fix consts in WIN32-Code/getopt*.[ch] (57abb35)
10402b15cb3dSCy Schubert
10412b15cb3dSCy Schubert Bugfixes (locks, synchronization)
10422b15cb3dSCy Schubert   o Missed lock acquire/release in event_base_cancel_single_callback_()
10432b15cb3dSCy Schubert     (d3d999a Azat Khuzhin)
10442b15cb3dSCy Schubert   o Fix locking in bufferevent_get_options_(). (dbc9cd4 Maxime Henrion)
10452b15cb3dSCy Schubert
10462b15cb3dSCy Schubert Bugfixes (leaks)
10472b15cb3dSCy Schubert   o Avoid leaking segment mappings when offset is not a page multiple (d409514)
10482b15cb3dSCy Schubert
10492b15cb3dSCy Schubert Testing
10502b15cb3dSCy Schubert   o Add tests for evdns_base_resume(). (1cd9ff5 Azat Khuzhin)
10512b15cb3dSCy Schubert   o Fix dns/leak_resume_send_err test. (7e876df Azat Khuzhin)
1052a25439b6SCy Schubert   o Add checks for evhttp_connection_get_server() in unit
1053a25439b6SCy Schubert     tests. (fbc323b Maxime Henrion)
10542b15cb3dSCy Schubert   o Fix a (failure-only) null dereference in the unit tests (1104d0b)
10552b15cb3dSCy Schubert   o Fix a logic error in test_evbuffer_freeze (7765884)
10562b15cb3dSCy Schubert   o Add missing check to test_evbuffer_file_segment_add_cleanup_cb (eba4506)
10572b15cb3dSCy Schubert   o Fix some crash-on-fail cases in DNS regression tests (87cd6f0)
10582b15cb3dSCy Schubert   o DNS tests: add a missing check (f314900)
10592b15cb3dSCy Schubert   o Finalize tests: add a missing check (82b6956)
10602b15cb3dSCy Schubert   o test_evutil_rtrim: add another missing check. (e193c95)
1061a25439b6SCy Schubert   o regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
1062a25439b6SCy Schubert     (611e28b Azat Khuzhin)
1063a25439b6SCy Schubert   o regress_http: add tests for evhttp_connection_get_addr() (4dd500c
1064a25439b6SCy Schubert     Azat Khuzhin)
1065a25439b6SCy Schubert   o Update to the latest version of tinytest (7a80476)
1066a25439b6SCy Schubert   o Heap-allocate zlib data structure in regress_zlib tests (4947c18)
10672b15cb3dSCy Schubert
10682b15cb3dSCy Schubert Performance tweaks (core)
10692b15cb3dSCy Schubert   o Avoid redundant syscall to make a nonblocking socket nonblocking
10702b15cb3dSCy Schubert     (42c03da Maxime Henrion)
10712b15cb3dSCy Schubert   o Avoid redundant syscall if making a socket cloexec twice (1f29b18)
10722b15cb3dSCy Schubert   o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)
10732b15cb3dSCy Schubert
10742b15cb3dSCy Schubert Documentation
10752b15cb3dSCy Schubert   o Document that arc4random is not a great cryptographic PRNG. (6e49696)
10762b15cb3dSCy Schubert   o Small doxygen tweaks (6e67b51)
10772b15cb3dSCy Schubert   o Try another doxygen tweak (ccf432b)
1078a25439b6SCy Schubert   o Clarify event_base_loop exit conditions (031a803)
1079a25439b6SCy Schubert   o Fix a typo (be7bf2c Ondřej Kuzník)
1080a25439b6SCy Schubert   o Document deferred eventcb behaviour (13a9a02 Ondřej Kuzník)
1081a25439b6SCy Schubert   o Typo fixes from Linus Nordberg (cec62cb, 8cd695b)
1082a25439b6SCy Schubert   o Fix duplicate paragraph in evbuffer_ptr documentation (58408ee)
10832b15cb3dSCy Schubert
1084a25439b6SCy Schubert Code Improvements (coverity)
1085a25439b6SCy Schubert   o Fix a pile of coverity warnings in the unit tests (867f401)
1086a25439b6SCy Schubert   o Fix coverity warnings in benchmark tools. (ff7f739)
1087a25439b6SCy Schubert   o Whoops; fix compilation in bench.c (544cf88)
1088a25439b6SCy Schubert   o Remove spurious checks in evrpc.c error cases (coverity) (991b362)
1089a25439b6SCy Schubert   o Fix a couple of compilation warnings in regress_http.c (860767e)
1090a25439b6SCy Schubert   o Fix even more coverity warnings. (d240328)
1091a25439b6SCy Schubert   o Stop checking for inet_aton; we don't use it. (f665d5c)
1092a25439b6SCy Schubert   o Add an include to evrpc-internal to fix openbsd compilation warning
1093a25439b6SCy Schubert     (5e161c6)
10942b15cb3dSCy Schubert
10952b15cb3dSCy Schubert Cleanups
10962b15cb3dSCy Schubert   o Remove an unreachable return statement in minheap-internal.h (e639a9e)
1097a25439b6SCy Schubert   o Refactor evmap_{io,signal}_active_() to tolerate bad inputs (974c60e)
1098a25439b6SCy Schubert   o Fix needless bufferevent includes in evdns.c (254c04e)
1099a25439b6SCy Schubert   o Fix a couple of "#ifdef WIN32" instances (88ecda3)
1100a25439b6SCy Schubert   o Remove unneeded declaration in bufferevent-internal.h (4c8ebcd)
11012b15cb3dSCy Schubert
11022b15cb3dSCy Schubert Sample code
1103a25439b6SCy Schubert   o le-proxy: Fail more gracefully if opening listener fails (44b2491)
1104a25439b6SCy Schubert   o http-server: drop uri_root from base_url in http-server. (6171e1c Azat Khuzhin)
1105a25439b6SCy Schubert   o https-client: POST supported, args supported (c5887f7 Alexey Ozeritsky)
1106a25439b6SCy Schubert   o https-client: code cleanup (29af65e Alexey Ozeritsky)
1107a25439b6SCy Schubert   o https-client: Small tweaks to https-client.c (90786eb)
1108a25439b6SCy Schubert   o https-client: Set hostname for SNI extension (by f69m) (d1976f8)
1109a25439b6SCy Schubert   o https-client: add a cast to https-client.c (462e6b6)
11102b15cb3dSCy Schubert
11112b15cb3dSCy Schubert
11122b15cb3dSCy Schubert
11132b15cb3dSCy SchubertChanges in version 2.1.3-alpha (1 May 2013)
11142b15cb3dSCy Schubert
11152b15cb3dSCy Schubert Libevent 2.1.3-alpha fixes various bugs, adds new unit tests, and cleans
11162b15cb3dSCy Schubert up the code in a couple of places. It has a new callback in evhttp for
11172b15cb3dSCy Schubert reporting errors during a request, a new feature for allowing evdns to
11182b15cb3dSCy Schubert not keep the event_base looping when there are no requests inflight, and
11192b15cb3dSCy Schubert example code for writing an https client.
11202b15cb3dSCy Schubert
11212b15cb3dSCy Schubert Libevent 2.1.3-alpha also has an important new (experimental) event
11222b15cb3dSCy Schubert finalization feature to allow safe event teardown in multithreaded
11232b15cb3dSCy Schubert programs. This ought to fix the longstanding bug with deadlocks in
11242b15cb3dSCy Schubert multithreaded use of SSL-based bufferevents that some people have been
11252b15cb3dSCy Schubert experiencing since Libevent 2.0.
11262b15cb3dSCy Schubert
11272b15cb3dSCy Schubert
11282b15cb3dSCy Schubert Core (event finalization)
11292b15cb3dSCy Schubert   o Implement event_finalize() and related functions to avoid certain
11302b15cb3dSCy Schubert     deadlocks (8eedeab)
11312b15cb3dSCy Schubert   o Use finalization feature so bufferevents can avoid deadlocks (02fbf68)
11322b15cb3dSCy Schubert   o Always run pending finalizers when event_base_free() is called (e9ebef8)
11332b15cb3dSCy Schubert   o Remove bufferevent_del_generic_timeout_cbs as now unused (4ea4c6a)
11342b15cb3dSCy Schubert   o More documentation for finalization feature (a800b91)
11352b15cb3dSCy Schubert   o Make the event_finalize* functions return an error code (5d11f4f)
11362b15cb3dSCy Schubert   o Mark the finalize stuff as experiemental in case it needs to
11372b15cb3dSCy Schubert     change (23e2e29)
11382b15cb3dSCy Schubert
11392b15cb3dSCy Schubert Evdns
11402b15cb3dSCy Schubert   o evdns: New flag to make evdns not prevent the event loop from
11412b15cb3dSCy Schubert     exiting (6b7fa62 Azat Khuzhin)
11422b15cb3dSCy Schubert
11432b15cb3dSCy Schubert Bugfixes (Core)
11442b15cb3dSCy Schubert   o Make event_remove_timer behave correctly with persistent timers (5623e80)
11452b15cb3dSCy Schubert   o Unit test for event_remove_timer with EV_PERSIST. (96150dd)
11462b15cb3dSCy Schubert   o Double-check next timeout when adding events (9443868 Nate Rosenblum)
11472b15cb3dSCy Schubert   o event_base_update_cache_time should be a no-op if the loop isn't
11482b15cb3dSCy Schubert     running (5e6fa2a)
11492b15cb3dSCy Schubert
11502b15cb3dSCy Schubert Bugfixes (evhttp, crash fix, from 2.0)
11512b15cb3dSCy Schubert   o fix #73 and fix http_connection_fail_test to catch it (b618204 Greg Hazel)
11522b15cb3dSCy Schubert
11532b15cb3dSCy Schubert Bugfixes (compilation and portability, from 2.0)
11542b15cb3dSCy Schubert   o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
11552b15cb3dSCy Schubert   o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
11562b15cb3dSCy Schubert   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
11572b15cb3dSCy Schubert     (74d4c44 Kevin Bowling)
11582b15cb3dSCy Schubert   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake
11592b15cb3dSCy Schubert     1.13 compat (817ea36)
11602b15cb3dSCy Schubert   o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
11612b15cb3dSCy Schubert   o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
11622b15cb3dSCy Schubert
11632b15cb3dSCy Schubert Bugfixes (resource leaks/lock errors on error, from 2.0)
11642b15cb3dSCy Schubert   o Avoid leaking fds on evconnlistener with no callback set (69db261)
11652b15cb3dSCy Schubert   o Avoid double-close on getsockname error in evutil_ersatz_socketpair
11662b15cb3dSCy Schubert     (0a822a6)
11672b15cb3dSCy Schubert   o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
11682b15cb3dSCy Schubert
11692b15cb3dSCy Schubert Documentation Fixes (from 2.0)
11702b15cb3dSCy Schubert   o Fix a mistake in evbuffer_remove() arguments in example http server code
11712b15cb3dSCy Schubert     (c322c20 Gyepi Sam)
11722b15cb3dSCy Schubert   o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
11732b15cb3dSCy Schubert
11742b15cb3dSCy Schubert Documentation Fixes
11752b15cb3dSCy Schubert   o minor documentation typos (809586a Patrick Pelletier)
11762b15cb3dSCy Schubert   o Fix cut-and-paste err in whatsnew-2.1 (49905ac)
11772b15cb3dSCy Schubert   o Fix comment to refer to sample/include.am correctly (9e8cdf3 Sebastian
11782b15cb3dSCy Schubert     Hahn)
11792b15cb3dSCy Schubert   o Fix typo : Dispatching instead of Dispaching (0c2bacc Volker Lendecke)
11802b15cb3dSCy Schubert   o fix some hinky indentation in evhttp_make_request (80e220e Patrick
11812b15cb3dSCy Schubert     Pelletier)
11822b15cb3dSCy Schubert   o "buffer" spelling (a452811 Patrick Pelletier)
11832b15cb3dSCy Schubert   o Specify return behavior in header for evbuffer_pullup() in corner case
11842b15cb3dSCy Schubert     (cf8d1cd Dan Petro)
11852b15cb3dSCy Schubert   o Clarify an important point about event_base_foreach_event() (920a5e6)
11862b15cb3dSCy Schubert
11872b15cb3dSCy Schubert Compilation Fixes/Tool Support
11882b15cb3dSCy Schubert   o avoid valgrind false positive by zeroing epoll_event (1258614 Patrick
11892b15cb3dSCy Schubert     Pelletier)
11902b15cb3dSCy Schubert   o Fix harmless clang enum warning (b452a43 Sebastian Hahn)
11912b15cb3dSCy Schubert   o remove all exes on "make clean", not just regress.exe (974bfa0 Patrick
11922b15cb3dSCy Schubert     Pelletier)
11932b15cb3dSCy Schubert   o Make --disable-libevent-regress work again (787fd74)
11942b15cb3dSCy Schubert   o Do not build strlcpy.c when it will have no code. (4914620)
11952b15cb3dSCy Schubert
11962b15cb3dSCy Schubert Portability Fixes
11972b15cb3dSCy Schubert   o When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it (bf7a0ff)
11982b15cb3dSCy Schubert   o Preliminary changes for Minix3. (0dda56a Nicholas Heath)
11992b15cb3dSCy Schubert   o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13
12002b15cb3dSCy Schubert     compat (bf278b)
12012b15cb3dSCy Schubert   o Avoid using $(top_srcdir) in TESTS. (2863c83)
12022b15cb3dSCy Schubert   o build test/test-script.sh on systems with a less-featureful $< (f935e21)
12032b15cb3dSCy Schubert   o Implement EVUTIL_ERR_IS_EAGAIN on windows. (42aaf4d)
12042b15cb3dSCy Schubert
12052b15cb3dSCy Schubert Evhttp changes:
12062b15cb3dSCy Schubert   o Fix ipv6 support for http. When URL contain domain, not IP
12072b15cb3dSCy Schubert     address. (71e709c Azat Khuzhin)
12082b15cb3dSCy Schubert   o uri decode: fix for warning "use of uninitialised value" (64b6ece Azat
12092b15cb3dSCy Schubert     Khuzhin)
12102b15cb3dSCy Schubert   o uri decode: changed the test for the existence of the next character
12112b15cb3dSCy Schubert     (e1903e3 Azat Khuzhin)
12122b15cb3dSCy Schubert   o Move prototype of evhttp_decode_uri_internal() to http-internal.h
12132b15cb3dSCy Schubert     (de8101a Azat Khuzhin)
12142b15cb3dSCy Schubert   o Test: decoding just part of string with evhttp_decode_uri_internal()
12152b15cb3dSCy Schubert     (1367653 Azat Khuzhin)
12162b15cb3dSCy Schubert   o Add new error_cb for actual reporting of HTTP request errors. (7b07719
12172b15cb3dSCy Schubert     Azat Khuzhin)
12182b15cb3dSCy Schubert   o Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test() (862c217
12192b15cb3dSCy Schubert     Azat Khuzhin)
12202b15cb3dSCy Schubert   o Drop extra header http_struct.h from regress_http.c (54cc800 Azat Khuzhin)
12212b15cb3dSCy Schubert
12222b15cb3dSCy Schubert Testing
12232b15cb3dSCy Schubert   o Add regress test ipv6_for_domain. (9ec88bd Azat Khuzhin)
12242b15cb3dSCy Schubert   o Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug
12252b15cb3dSCy Schubert     mode (2fad0f3)
12262b15cb3dSCy Schubert   o Add a test with an active_later event at event_base_free time. (1c3147f)
12272b15cb3dSCy Schubert   o Make all tests pass under EVENT_DEBUG_MODE=1 (b1b054f)
12282b15cb3dSCy Schubert   o Add some verbose notes to bufferevent unit tests (9d893c9)
12292b15cb3dSCy Schubert   o New test for active_later->active transition on event_active (a153874)
12302b15cb3dSCy Schubert   o New tests for event_base_foreach_event() (0b096ef)
12312b15cb3dSCy Schubert   o Unit tests for event_base_gettimeofday_cached() and
12322b15cb3dSCy Schubert     event_base_update_cache_time() (30ea291)
12332b15cb3dSCy Schubert   o A test for event_get_assignment() (f09629e)
12342b15cb3dSCy Schubert   o More unit tests for initializing common timeouts. (d596739)
12352b15cb3dSCy Schubert   o Fix a bug in the new main/event_foreach test (702c9aa)
12362b15cb3dSCy Schubert
12372b15cb3dSCy Schubert Windows:
12382b15cb3dSCy Schubert   o use FormatMessage for winsock errors (0c6ec5d, 2078e9b, 4ccdd53, c9ad3af
12392b15cb3dSCy Schubert     Patrick Pelletier)
12402b15cb3dSCy Schubert   o a program to print out the error strings for winsock errors (7296512
12412b15cb3dSCy Schubert     Patrick Pelletier)
12422b15cb3dSCy Schubert   o Fix a warning introduced in 0c6ec5d8 (eeb700c)
12432b15cb3dSCy Schubert   o Fix another warning introduced in 0c6ec5d8 (ed26561)
12442b15cb3dSCy Schubert
12452b15cb3dSCy Schubert Examples (http)
12462b15cb3dSCy Schubert   o Add sample/https-client.c, an example of stacking evhttp as a client on
12472b15cb3dSCy Schubert     top of bufferevent_ssl. (be46c99 Catalin Patulea)
12482b15cb3dSCy Schubert   o use ${OPENSSL_LIBS} instead of -lssl -lcrypto (bf31fa5 Patrick Pelletier)
12492b15cb3dSCy Schubert   o https-client was putting newlines at 256-byte boundaries (42d7441 Patrick
12502b15cb3dSCy Schubert     Pelletier)
12512b15cb3dSCy Schubert   o better handling of OpenSSL errors (5754d96 Patrick Pelletier)
12522b15cb3dSCy Schubert   o use Debian's default root certificate location (aacd674 Patrick Pelletier)
12532b15cb3dSCy Schubert   o use iSECPartners code to validate hostname in certificate (64d9f16
12542b15cb3dSCy Schubert     Patrick Pelletier)
12552b15cb3dSCy Schubert   o avoid sign mismatch warning in openssl_hostname_validation.c (6021cb5
12562b15cb3dSCy Schubert     Patrick Pelletier)
12572b15cb3dSCy Schubert   o pull in wildcard matching code from cURL (4db9da6 Patrick Pelletier)
12582b15cb3dSCy Schubert   o Another tweak to https-client.c (95acdaa)
12592b15cb3dSCy Schubert   o Remove http_struct.h usage in sample/https-client.c (8a90a85)
12602b15cb3dSCy Schubert
12612b15cb3dSCy Schubert
12622b15cb3dSCy Schubert
12632b15cb3dSCy SchubertChanges in version 2.1.2-alpha (18 Nov 2012)
12642b15cb3dSCy Schubert
12652b15cb3dSCy Schubert Libevent 2.1.2-alpha includes more portable for monotonic timers,
12662b15cb3dSCy Schubert refactors much of Libevent's internal and external infrastructure,
12672b15cb3dSCy Schubert closes some longstanding gaps in the interface, makde other
12682b15cb3dSCy Schubert improvements.  Ths log below tries to organize features by rough area of
12692b15cb3dSCy Schubert effect.  It omits a few commits which were pure bugfixes on other commits
12702b15cb3dSCy Schubert listed below.  For more detail, see the git changelogs.  For more
12712b15cb3dSCy Schubert insight, see the "whatsnew-2.1.txt" document included in the Libevent
12722b15cb3dSCy Schubert 2.1.2-alpha distribution.
12732b15cb3dSCy Schubert
12742b15cb3dSCy Schubert Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable
12752b15cb3dSCy Schubert through 2.0.21-stable inclusive.
12762b15cb3dSCy Schubert
12772b15cb3dSCy Schubert Performance (core):
12782b15cb3dSCy Schubert   o Replace pipe-based notification with EVFILT_USER where possible. This
12792b15cb3dSCy Schubert     should make multithreaded programs on OSX and *BSD alert the main thread a
12802b15cb3dSCy Schubert     little faster. (53a07fe)
12812b15cb3dSCy Schubert   o Make th_base_lock nonrecursive. (9cd5acb)
12822b15cb3dSCy Schubert
12832b15cb3dSCy Schubert New/Changed API Functions:
12842b15cb3dSCy Schubert   o New event_get_priority() function to return an event's priority (f90e255)
12852b15cb3dSCy Schubert   o Add a bufferevent_get_priority() function (bd39554)
12862b15cb3dSCy Schubert   o Add an event_base_loopcontinue() to tell Libevent to rescan for more
12872b15cb3dSCy Schubert     events right away (7d6aa5e)
12882b15cb3dSCy Schubert   o Add a new callback to get called on evbuffer_file_segment free
12892b15cb3dSCy Schubert     (e9f8feb yangacer, 64051b9)
12902b15cb3dSCy Schubert   o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman
12912b15cb3dSCy Schubert      Puls, 232055e, ffe1643)
12922b15cb3dSCy Schubert   o Add an event_remove_timer() to remove timer on an event without
12932b15cb3dSCy Schubert     deleting it (e3b2e08)
12942b15cb3dSCy Schubert   o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible
12952b15cb3dSCy Schubert     semantics (9dee36b)
12962b15cb3dSCy Schubert   o Rename event_enable_lock_debuging() to ..._debugging(). (The old name
12972b15cb3dSCy Schubert     should still work.) (07e132e)
12982b15cb3dSCy Schubert   o Add missing implementation for event_enable_debug_logging (3b3e21d)
12992b15cb3dSCy Schubert
13002b15cb3dSCy Schubert PORTABLE MONOTONIC TIMERS:
13012b15cb3dSCy Schubert
13022b15cb3dSCy Schubert   Libevent 2.1.2 includes internal support for monotonic timers on
13032b15cb3dSCy Schubert   (nearly) all supported platforms, including Windows, and OSX.  Libevent
13042b15cb3dSCy Schubert   applications should now be more resilient to jumps forwards or backwards
13052b15cb3dSCy Schubert   in the system clock.  Also, on Linux systems with epoll, we now
13062b15cb3dSCy Schubert   optionally support microsecond-level timeouts (whereas epoll only
13072b15cb3dSCy Schubert   supports millisecond-precision timeouts).
13082b15cb3dSCy Schubert
13092b15cb3dSCy Schubert   o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9)
13102b15cb3dSCy Schubert   o Do not track use_monotonic field when is no monotonic clock (cb653a0)
13112b15cb3dSCy Schubert   o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
13122b15cb3dSCy Schubert     (ddd69d3)
13132b15cb3dSCy Schubert   o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7)
13142b15cb3dSCy Schubert   o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a)
13152b15cb3dSCy Schubert   o Refactor monotonic timer handling into a new type and set of
13162b15cb3dSCy Schubert     functions; add a gettimeofday-based ratcheting implementation (f5e4eb0)
13172b15cb3dSCy Schubert   o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow
13182b15cb3dSCy Schubert     timer (a2598ec)
13192b15cb3dSCy Schubert   o Implement fast/precise monotonic clocks on Windows (2c47045)
13202b15cb3dSCy Schubert   o Simple unit tests for monotonic timers (630f077)
13212b15cb3dSCy Schubert   o Improve the monotonic-time unit test: make it check the step size (7428c78)
13222b15cb3dSCy Schubert   o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond
13232b15cb3dSCy Schubert     precision (26c7582)
13242b15cb3dSCy Schubert   o Split out time-related evutil functions into a new evutil_time.c (c419485)
13252b15cb3dSCy Schubert   o Split out time-related prototypes into time-internal.h (71bca50)
13262b15cb3dSCy Schubert   o Add evutil_time.obj to Makefile.nmake (0ba0683)
13272b15cb3dSCy Schubert   o Avoid giving a spurious warning when timerfd support is unavailable
13282b15cb3dSCy Schubert     (1aaf9f0 Dave Hart)
13292b15cb3dSCy Schubert   o Make test_evutil_monotonic a little more tolerant (def3b83)
13302b15cb3dSCy Schubert   o Avoid unused-var warning on systems with clock_gettime but without
13312b15cb3dSCy Schubert     CLOCK_MONOTONIC_COARSE (9be5468)
13322b15cb3dSCy Schubert
13332b15cb3dSCy SchubertEVENT_BASE_ONCE LEAKS:
13342b15cb3dSCy Schubert   If a callback added by event_base_once() is never invoked, Libevent no
13352b15cb3dSCy Schubert   longer leaks internal memory.
13362b15cb3dSCy Schubert
13372b15cb3dSCy Schubert   o Free dangling event_once objects on event_base_free() (c17dd59)
13382b15cb3dSCy Schubert   o Add a unit test in which an event is created with event_base_once()
13392b15cb3dSCy Schubert     but never fires (4343edf)
13402b15cb3dSCy Schubert
13412b15cb3dSCy SchubertTESTING SUPPORT, FIXES AND IMPROVEMENTS:
13422b15cb3dSCy Schubert
13432b15cb3dSCy Schubert   Libevent now disables by default its unit tests that would touch the
13442b15cb3dSCy Schubert   network, or that tend to fail on heavily-loaded systems.  To re-enable
13452b15cb3dSCy Schubert   them, invoke the ./test/regress program with the @all alias.
13462b15cb3dSCy Schubert
13472b15cb3dSCy Schubert   o Simplify test.sh code significantly. (9b856fd Ross Lagerwall)
13482b15cb3dSCy Schubert   o Make all tests that hit the network disabled by default (f2cea87)
13492b15cb3dSCy Schubert   o Avoid a resource leak on error in http client benchmark (ea92fba)
13502b15cb3dSCy Schubert   o Update to latest tinytest (911b4f0349377) (ef7c4f7)
13512b15cb3dSCy Schubert   o Avoid (unlikely) overflow in bench_httpclient.c (5671033)
13522b15cb3dSCy Schubert   o Shave 700 msec off the persistent_timeout_jump test (21205b8)
13532b15cb3dSCy Schubert   o Check return value of write() in regress.c (c8009d2)
13542b15cb3dSCy Schubert   o Make load-dependent monotonic timer tests off-by-default (2b6fe8b)
13552b15cb3dSCy Schubert   o Add deferred_cb_skew to list of timing-dependent tests (34c8f31)
13562b15cb3dSCy Schubert   o Avoid test -e; older shs don't have one. (f1bd938)
13572b15cb3dSCy Schubert   o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
13582b15cb3dSCy Schubert   o Fix a couple of compile warnings in the unit tests (5a9a014)
13592b15cb3dSCy Schubert
13602b15cb3dSCy SchubertMISC:
13612b15cb3dSCy Schubert   o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas
13622b15cb3dSCy Schubert     Marriott, 3aa4415)
13632b15cb3dSCy Schubert
13642b15cb3dSCy SchubertINFRASTRUCTURE (Active-later events):
13652b15cb3dSCy Schubert   As a simplification and optimization to Libevent's "deferred callback"
13662b15cb3dSCy Schubert   logic (introduced in 2.0 to avoid callback recursion), Libevent now
13672b15cb3dSCy Schubert   treats all of its deferrable callback types using the same logic it uses
13682b15cb3dSCy Schubert   for active events.  Now deferred events no longer cause priority
13692b15cb3dSCy Schubert   inversion, no longer require special code to cancel them, and so on.
13702b15cb3dSCy Schubert
13712b15cb3dSCy Schubert   o Refactor the callback part of an event into its own event_callback
13722b15cb3dSCy Schubert     type (cba59e5)
13732b15cb3dSCy Schubert   o Add "active later" event_callbacks to supersede deferred (745a63d)
13742b15cb3dSCy Schubert   o event_base_assert_ok: check value of event_active_count for
13752b15cb3dSCy Schubert     correctness (fec8bae)
13762b15cb3dSCy Schubert   o Replace deferred_cbs with event_callback-based implementation. (ae2b84b)
13772b15cb3dSCy Schubert   o Replace more deferred_cb names with event_callback (a4079aa)
13782b15cb3dSCy Schubert   o Give event_base_process_active a single exit path (581b5be)
13792b15cb3dSCy Schubert   o Restore our priority-inversion-prevention code with deferreds (c0e425a)
13802b15cb3dSCy Schubert   o Refactor event_persist_closure: raise and extract some common logic
13812b15cb3dSCy Schubert     (bec22b4)
13822b15cb3dSCy Schubert   o Remove the unused bits from EVLIST_ALL (9889a3d)
1383a25439b6SCy Schubert||||||| merged common ancestors
1384a25439b6SCy SchubertChanges in version 2.0.22-stable (?? Dec 2013)
1385a25439b6SCy Schubert
1386a25439b6SCy Schubert (As of 3b77d62829c4393bda6f9105a5d3b73b48a64b71.)
1387a25439b6SCy Schubert
1388a25439b6SCy SchubertBUGFIXES (evhttp)
1389a25439b6SCy Schubert o fix #73 and fix http_connection_fail_test to catch it (crash fix) (b618204 Greg Hazel)
1390a25439b6SCy Schubert o Avoid racy bufferevent activation (5eb1788 Nate Rosenblum)
1391a25439b6SCy Schubert
1392a25439b6SCy SchubertBUGFIXES (compilation and portability)
1393a25439b6SCy Schubert o Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled (7e45739)
1394a25439b6SCy Schubert o Fix missing AC_PROG_SED on older Autoconfs (9ab2b3f Tay Ray Chuan)
1395a25439b6SCy Schubert o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5) (74d4c44 Kevin Bowling)
1396a25439b6SCy Schubert o Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat (817ea36)
1397a25439b6SCy Schubert o Rename configure.in to configure.ac to appease newer autoconfs (0c79787)
1398a25439b6SCy Schubert o Avoid using top_srcdir in TESTS: new automakes do not like this (a55514e)
1399a25439b6SCy Schubert o Use windows vsnprintf fixup logic on all windows environments (e826f19)
1400a25439b6SCy Schubert o Fix a compiler warning when checking for arc4random_buf linker breakage. (5cb3865)
1401a25439b6SCy Schubert o Fix another arc4random_buf-related warning (e64a2b0)
1402a25439b6SCy Schubert
1403a25439b6SCy SchubertBUGFIXES (resource leaks/lock errors on error)
1404a25439b6SCy Schubert o Avoid leaking fds on evconnlistener with no callback set (69db261)
1405a25439b6SCy Schubert o Avoid double-close on getsockname error in evutil_ersatz_socketpair (0a822a6)
1406a25439b6SCy Schubert o Fix a locking error in bufferevent_socket_get_dns_error. (0a5eb2e)
1407a25439b6SCy Schubert o libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer) (b8f5980 Frank Denis)
1408a25439b6SCy Schubert
1409a25439b6SCy SchubertBUGFIXES (miscellaneous)
1410a25439b6SCy Schubert o Avoid other RNG initialization FS reads when urandom file is specified (9695e9c, bb52471)
1411a25439b6SCy Schubert o Avoid redundant invocations of init_extension_functions for IOCP (3b77d62)
1412a25439b6SCy Schubert
1413a25439b6SCy SchubertBUFGIXES (evdns)
1414a25439b6SCy Schubert o Checking request nameserver for NULL, before using it. (5c710c0 Belobrov Andrey)
1415a25439b6SCy Schubert o Fix SEGFAULT after evdns_base_resume if no nameservers installed. (f8d7df8 Azat Khuzhin)
1416a25439b6SCy Schubert
1417a25439b6SCy SchubertBUGFIXES (evutil_secure_random)
1418a25439b6SCy Schubert o When we seed from /proc/sys/kernel/random/uuid, count it as success (e35b540)
1419a25439b6SCy Schubert o Document that arc4random is not a great cryptographic PRNG. (6e49696)
1420a25439b6SCy Schubert o Add evutil_secure_rng_set_urandom_device_file (2bbb5d7)
1421a25439b6SCy Schubert o Really remove RNG seeds from the stack (f5ced88)
1422a25439b6SCy Schubert
1423a25439b6SCy Schubert
1424a25439b6SCy SchubertDOCUMENTATION FIXES
1425a25439b6SCy Schubert o Fix a mistake in evbuffer_remove() arguments in example http server code (c322c20 Gyepi Sam)
1426a25439b6SCy Schubert o Fix a typo in a comment in buffer.h. Spotted by Alt_F4 (773b0a5)
1427a25439b6SCy Schubert
1428a25439b6SCy Schubert
1429a25439b6SCy Schubert
1430a25439b6SCy SchubertChanges in version 2.0.21-stable (18 Nov 2012)
1431a25439b6SCy SchubertBUGFIXES:
1432a25439b6SCy Schubert o ssl: Don't discard SSL read event when timeout and read come close together (576b29f)
1433a25439b6SCy Schubert o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch)
1434a25439b6SCy Schubert o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch)
1435a25439b6SCy Schubert o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev)
1436a25439b6SCy Schubert o build: Use python2 rather than python (0eb0109 Ross Lagerwall)
1437a25439b6SCy Schubert o build: Compile without warnings on mingw64 (94866c2)
1438a25439b6SCy Schubert o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4)
1439a25439b6SCy Schubert o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4)
1440a25439b6SCy Schubert o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez)
1441a25439b6SCy Schubert o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3)
1442a25439b6SCy Schubert o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier)
1443a25439b6SCy Schubert o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086)
1444a25439b6SCy Schubert o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9)
1445a25439b6SCy Schubert
1446a25439b6SCy Schubert
1447a25439b6SCy SchubertChanges in version 2.0.20-stable (23 Aug 2012)
1448a25439b6SCy SchubertBUGFIXES:
1449a25439b6SCy Schubert o core: Make event_pending() threadsafe. (be7a95c Simon Liu)
1450a25439b6SCy Schubert o win32: avoid crash when waiting forever on zero fds. (160e58b)
1451a25439b6SCy Schubert o evhttp: Fix a memory leak on error in evhttp_uriencode (11c8b31)
1452a25439b6SCy Schubert o evbuffer: Avoid possible needless call to writev. Found by coverity. (6a4ec5c)
1453a25439b6SCy Schubert o evdns: memset sockaddr_in before using it. Found by coverity. (a1a0e67)
1454a25439b6SCy Schubert o evhttp: Check more setsockopt return values when binding sockets. Found by coverity (a0912e3)
1455a25439b6SCy Schubert o evdns: Avoid segfault on weird timeout during name lookup. (dc32077 Greg Hazel)
1456a25439b6SCy Schubert o bufferevent_ssl: Correctly invoke callbacks when a SSL bufferevent reads some and then blocks. (606ac43)
1457a25439b6SCy Schubert
1458a25439b6SCy Schubert
1459a25439b6SCy SchubertPORTABILITY FIXES:
1460a25439b6SCy Schubert o check for arc4random_buf at runtime, on OS X (bff5f94 Greg Hazel)
1461a25439b6SCy Schubert o Correctly check for arc4random_buf (fcec3e8 Sebastian Hahn)
1462a25439b6SCy Schubert o Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) (ca80ea6)
1463a25439b6SCy Schubert
1464a25439b6SCy SchubertBUILD FIXES:
1465a25439b6SCy Schubert o Add GCC annotations so that the vsprintf functions get checked properly (117e327)
1466a25439b6SCy Schubert o Fix an unused variable warning on *BSD. (c0720c1)
1467a25439b6SCy Schubert
1468a25439b6SCy SchubertUNIT TEST FIXES:
1469a25439b6SCy Schubert o Fix a couple of memory leaks (found with Valgrind). (3b2529a Ross Lagerwall)
1470a25439b6SCy Schubert o Remove deadcode in http regression tests. Found by coverity. (5553346)
1471a25439b6SCy Schubert o Fix possible uninitialized read in dns regression tests. Found by coverity. (2259777)
1472a25439b6SCy Schubert o Set umask before calling mkstemp in unit tests. Found by coverity (f1ce15d)
1473a25439b6SCy Schubert o Fix various check-after-dereference issues in unit tests: found by coverity (4f3732d)
1474a25439b6SCy Schubert o Fix resource leaks in the unit tests; found by coverity (270f279)
1475a25439b6SCy Schubert o Add some missing null checks to unit tests; found by coverity (f021c3d)
1476a25439b6SCy Schubert o Avoid more crashes/bad calls in unit tests; found by coverity (3cde5bf)
1477a25439b6SCy Schubert o Remove unused variable; spotted by coverity (6355b2a)
1478a25439b6SCy Schubert o Add checks to various return values in unit tests. Found by coverity (b9e7329)
1479a25439b6SCy Schubert o Move assignment outside tt_assert in ssl unit tests. Appeases coverity. (a2006c0)
1480a25439b6SCy Schubert
1481a25439b6SCy Schubert
1482a25439b6SCy Schubert
1483a25439b6SCy SchubertChanges in version 2.0.19-stable (3 May 2012)
1484a25439b6SCy SchubertBUGFIXES (CORE):
1485a25439b6SCy Schubert o Refactor event_persist_closure: raise and extract some common logic (bec22b4)
1486a25439b6SCy Schubert o If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead (dfd808c)
1487a25439b6SCy Schubert o If a higher-priority event becomes active, don't continue running events of the current priority. (2bfda40)
1488a25439b6SCy Schubert
1489a25439b6SCy SchubertBUGFIXES (SSL):
1490a25439b6SCy Schubert o Fixed potential double-readcb execution with openssl bufferevents. (4e62cd1 Mark Ellzey)
1491a25439b6SCy Schubert
1492a25439b6SCy SchubertBUGFIXES (DNS):
1493a25439b6SCy Schubert o Cancel a probe request when the server is freed, and ignore cancelled probe callbacks (94d2336 Greg Hazel)
1494a25439b6SCy Schubert o Remove redundant DNS_ERR_CANCEL check, move comment (46b8060 Greg Hazel)
1495a25439b6SCy Schubert o When retransmitting a timed-out DNS request, pick a fresh nameserver. (3d9e52a)
1496a25439b6SCy Schubert
1497a25439b6SCy SchubertDOCUMENTATION FIXES:
1498a25439b6SCy Schubert o Fix a typo in the bufferevent documentation (98e9119)
1499a25439b6SCy Schubert o Add missing ) to changelog; spotted by rransom (4c7ee6b)
1500a25439b6SCy Schubert o Fix the website URL in the readme (f775521)
1501a25439b6SCy Schubert
1502a25439b6SCy SchubertCOMPILATION FIXES:
1503a25439b6SCy Schubert o Fix a compilation error with MSVC 2005 due to use of mode_t (336dcae)
1504a25439b6SCy Schubert o Configure with gcc older than 2.95 (4a6fd43 Sebastian Hahn)
1505a25439b6SCy Schubert o Generate event-config.h with a single sed script (30b6f88 Zack Weinberg)
1506a25439b6SCy Schubert
1507a25439b6SCy SchubertFORWARD-COMPATIBILITY:
1508a25439b6SCy Schubert o Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* (d1a03b2)
1509a25439b6SCy Schubert
1510a25439b6SCy SchubertTESTING/DEBUGGING SUPPORT:
1511a25439b6SCy Schubert o dns-example.c can now take a resolv.conf file on the commandline (6610fa5)
1512a25439b6SCy Schubert o Make some evdns.c debug logs more verbose (d873d67)
1513a25439b6SCy Schubert o Work-around a stupid gcov-breaking bug in OSX 10.6 (b3887cd)
1514a25439b6SCy Schubert
1515a25439b6SCy Schubert
1516a25439b6SCy Schubert
1517a25439b6SCy SchubertChanges in version 2.0.18-stable (22 Mar 2012)
1518a25439b6SCy SchubertBUGFIXES (core):
1519a25439b6SCy Schubert o Make uses of open() close-on-exec safe by introducing an internal evutil_open_closeonexec. (d2b5f72 Ross Lagerwall, 03dce42)
1520a25439b6SCy Schubert
1521a25439b6SCy SchubertBUGFIXES (kqueue):
1522a25439b6SCy Schubert o Properly zero the kevent in kq_setup_kevent() (c2c7b39 Sebastian Hahn)
1523a25439b6SCy Schubert
1524a25439b6SCy SchubertBUILD FIXES:
1525a25439b6SCy Schubert o Added OPENSSL_LDFLAGS env variable which is appended to SSL checks. (9278196 Mark Ellzey)
1526a25439b6SCy Schubert o Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD (2d67b63 Mark Ellzey)
1527a25439b6SCy Schubert o Don't do clang version detection when disabling some flags (083296b Sebastian Hahn)
1528a25439b6SCy Schubert
1529a25439b6SCy SchubertBUGFIXES (dns):
1530a25439b6SCy Schubert o Stop crashing in evdns when nameserver probes give a weird error (bec5068)
1531a25439b6SCy Schubert
1532a25439b6SCy Schubert
1533a25439b6SCy SchubertChanges in version 2.0.17-stable (10 Feb 2012)
1534a25439b6SCy Schubert
1535a25439b6SCy SchubertBUGFIXES (core):
1536a25439b6SCy Schubert o Be absolutely sure to clear pncalls before leaving event_signal_closure (11f36a5)
1537a25439b6SCy Schubert o check for sysctl before we use it (358c745 Mike Frysinger)
1538a25439b6SCy Schubert o Remove bogus casts of socket to int before calling ev_callback (f032516)
1539a25439b6SCy Schubert o Make evconnlistener work around bug in older Linux when getting nmapped (ecfc720)
1540a25439b6SCy Schubert o Fix a list corruption bug when using event_reinit() with signals present (6e41cdc)
1541a25439b6SCy Schubert o Fix a fd leak in event_reinit() (3f18ad1)
1542a25439b6SCy Schubert o Do a memberwise comparison of threading function tables (c94a5f2 Nate R)
1543a25439b6SCy Schubert o Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX). (d84d917 Greg Hewgill)
1544a25439b6SCy Schubert o Avoid crash when freeing event_iocp and using event_set_mem_functions (19715a6)
1545a25439b6SCy Schubert o In the kqueue backend, do not report EBADF as an EV_READ (5d7bfa1 Nicholas Marriott)
1546a25439b6SCy Schubert
1547a25439b6SCy SchubertBUGFIXES (evbuffer and bufferevents):
1548a25439b6SCy Schubert o Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0) (c986f23 Zack Weinberg)
1549a25439b6SCy Schubert o Loop on filtering SSL reads until we are blocked or exhausted. (5b4b812)
1550a25439b6SCy Schubert
1551a25439b6SCy SchubertBUGFIXES (evhttp):
1552a25439b6SCy Schubert o Force strict validation of HTTP version in response. (790f6b3 Catalin Patulea)
1553a25439b6SCy Schubert
1554a25439b6SCy SchubertBUGFIXES (evdns):
1555a25439b6SCy Schubert o evdns: fix a bug in circular-queue implementation (d6094b1)
1556a25439b6SCy Schubert
1557a25439b6SCy SchubertBUILD FIXES:
1558a25439b6SCy Schubert o Fix a silly compilation error with the sun compiler (1927776 Colin Watt)
1559a25439b6SCy Schubert o Suppress a gcc warning from ignoring fwrite return in http-sample.c (7206e8c)
1560a25439b6SCy Schubert
1561a25439b6SCy SchubertDOCUMENTATION FIXES:
1562a25439b6SCy Schubert o Slightly clarify evbuffer_peek documentation (7bbf6ca)
1563a25439b6SCy Schubert o Update copyright notices to 2012 (e49e289)
1564a25439b6SCy Schubert
1565a25439b6SCy SchubertNEW APIS:
1566a25439b6SCy Schubert o Backport evhttp_connection_get_bufferevent to Libevent 2.0 (da70fa7 Arno Bakker)
1567a25439b6SCy Schubert
1568a25439b6SCy SchubertTESTS AND TEST FIXES:
1569a25439b6SCy Schubert o Fix a race condition in the dns/bufferevent_connect_hostname test. (cba48c7)
1570a25439b6SCy Schubert o Add function to check referential integrity of an event_base (27737d5)
1571a25439b6SCy Schubert o Check event_base correctness at end of each unit test (3312b02)
1572a25439b6SCy Schubert o Workaround in the unit tests for an apparent epoll bug in Linux 3.2 (dab9187)
1573a25439b6SCy Schubert o Better workaround for Linux 3.2 edge-triggered epoll bug (9f9e259)
1574a25439b6SCy Schubert
1575a25439b6SCy SchubertChanges in version 2.0.16-stable (18 Nov 2011)
1576a25439b6SCy SchubertBUGFIXES (core):
1577a25439b6SCy Schubert o More detailed message in case of libevent self-debugging failure. (9e6a4ef Leonid Evdokimov)
1578a25439b6SCy Schubert o epoll: close fd on alloc fail at initialization (1aee718 Jamie Iles)
1579a25439b6SCy Schubert o Fix compile warning from saying event2/*.h inside a comment (447b0ba)
1580a25439b6SCy Schubert o Warn when unable to construct base because of failing make_base_notifiable (4e797f3)
1581a25439b6SCy Schubert o Don't try to make notifiable event_base when no threading fns are configured (e787413)
1582a25439b6SCy Schubert
1583a25439b6SCy SchubertBUGFIXES (evbuffer):
1584a25439b6SCy Schubert o unit test for remove_buffer bug (90bd620 Greg Hazel)
1585a25439b6SCy Schubert o Fix an evbuffer crash in evbuffer_remove_buffer() (c37069c)
1586a25439b6SCy Schubert
1587a25439b6SCy SchubertBUGFIXES (bufferevent_openssl):
1588a25439b6SCy Schubert o Refactor amount-to-read calculations in buffervent_ssl consider_reading() (a186e73 Mark Ellzey)
1589a25439b6SCy Schubert o Move SSL rate-limit enforcement into bytes_to_read() (96c562f)
1590a25439b6SCy Schubert o Avoid spinning on OpenSSL reads (2aa036f Mark Ellzey)
1591a25439b6SCy Schubert
1592a25439b6SCy SchubertBUGFIXES (dns)
1593a25439b6SCy Schubert o Empty DNS reply with OK status is another way to say NODATA. (21a08d6 Leonid Evdokimov)
1594a25439b6SCy Schubert
1595a25439b6SCy SchubertTESTING:
1596a25439b6SCy Schubert o Tests for 94fba5b and f72e8f6 (d58c15e Leonid Evdokimov)
1597a25439b6SCy Schubert o Test for commit aff6ba1 (f7841bf Leonid Evdokimov)
1598a25439b6SCy Schubert o Style and comment tweaks for dns/leak* tests (5e42202)
1599a25439b6SCy Schubert o improve test to remove at least one buffer from src (7eb52eb Greg Hazel)
1600a25439b6SCy Schubert
1601a25439b6SCy SchubertDOCUMENTATION:
1602a25439b6SCy Schubert o Add note about evhttp_send_reply_end to its doxygen (724bfb5)
1603a25439b6SCy Schubert o Update copyright dates to 2011. (3c824bd)
1604a25439b6SCy Schubert o Fix typo in whatsnew-2.0.txt (674bc6a Mansour Moufid)
1605a25439b6SCy Schubert o Improve win32 behavior of dns-sample.c code (a3f320e Gisle Vanem)
1606a25439b6SCy Schubert
1607a25439b6SCy Schubert
1608a25439b6SCy Schubert
1609a25439b6SCy SchubertChanges in version 2.0.15-stable (12 Oct 2011)
1610a25439b6SCy SchubertBUGFIXES (DNS):
1611a25439b6SCy Schubert o DNS: add ttl for negative answers using RFC 2308 idea. (f72e8f6 Leonid Evdokimov)
1612a25439b6SCy Schubert o Add DNS_ERR_NODATA error code to handle empty replies. (94fba5b Leonid Evdokimov)
1613a25439b6SCy Schubert
1614a25439b6SCy SchubertBUFGIXES (bufferevents and evbuffers):
1615a25439b6SCy Schubert o Make evbuffer callbacks get the right n_added value after evbuffer_add (1ef1f68 Alex)
1616a25439b6SCy Schubert o Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL. (0ba0af9)
1617a25439b6SCy Schubert
1618a25439b6SCy SchubertBUGFIXES (event loop):
1619a25439b6SCy Schubert o When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run. (4e8eb6a)
1620a25439b6SCy Schubert
1621a25439b6SCy SchubertDOCUMENTATION FIXES:
1622a25439b6SCy Schubert o Fix docstring in dns.h (2b6eae5 Leonid Evdokimov)
1623a25439b6SCy Schubert o refer to non-deprecated evdns functions in comments (ba5c27d Greg Hazel)
1624a25439b6SCy Schubert
1625a25439b6SCy SchubertBUILD AND TESTING FIXES:
1626a25439b6SCy Schubert o le-proxy and regress depend on openssl directly (9ae061a Sergey Avseyev)
1627a25439b6SCy Schubert o Use _SOURCES, not _sources, in sample/Makefile.am (7f82382)
1628a25439b6SCy Schubert o Fixed compiler warnings for unchecked read/write calls. (c3b62fd Mark Ellzey)
1629a25439b6SCy Schubert o Make write-checking fixes use tt_fail_perror (2b76847)
1630a25439b6SCy Schubert o Fix some "value never used" warnings with gcc 4.6.1 (39c0cf7)
1631a25439b6SCy Schubert
1632a25439b6SCy Schubert
1633a25439b6SCy Schubert
1634a25439b6SCy SchubertChanges in version 2.0.14-stable (31 Aug 2011)
1635a25439b6SCy SchubertBUGFIXES (bufferevents and evbuffers):
1636a25439b6SCy Schubert o Propagate errors on the underlying bufferevent to the user. (4a34394 Joachim Bauch)
1637a25439b6SCy Schubert o Ignore OpenSSL deprecation warnings on OS X (5d1b255 Sebastian Hahn)
1638a25439b6SCy Schubert o Fix handling of group rate limits under 64 bytes of burst (6d5440e)
1639a25439b6SCy Schubert o Solaris sendfile: correctly detect amount of data sent (643922e Michael Herf)
1640a25439b6SCy Schubert o Make rate limiting work with common_timeout logic (5b18f13)
1641a25439b6SCy Schubert o clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes (54f7e61 Joachim Bauch)
1642a25439b6SCy Schubert
1643a25439b6SCy SchubertBUGFIXES (IOCP):
1644a25439b6SCy Schubert o IOCP: don't launch reads or writes on an unconnected socket (495c227)
1645a25439b6SCy Schubert o Make IOCP rate-limiting group support stricter and less surprising. (a98da7b)
1646a25439b6SCy Schubert o Have test-ratelim.c support IOCP (0ff2c5a)
1647a25439b6SCy Schubert o Make overlapped reads result in evbuffer callbacks getting invoked (6acfbdd)
1648a25439b6SCy Schubert o Correctly terminate IO on an async bufferevent on bufferevent_free (e6af35d)
1649a25439b6SCy Schubert
1650a25439b6SCy SchubertBUGFIXES (other):
1651a25439b6SCy Schubert o Fix evsig_dealloc memory leak with debugging turned on. (9b724b2 Leonid Evdokimov)
1652a25439b6SCy Schubert o Fix request_finished memory leak with debugging turned on. (aff6ba1 Leonid Evdokimov)
1653a25439b6SCy Schubert
1654a25439b6SCy SchubertBUILD AND TESTING FIXES:
1655a25439b6SCy Schubert o Allow OS-neutral builds for platforms where some versions have arc4random_buf (b442302 Mitchell Livingston)
1656a25439b6SCy Schubert o Try to fix 'make distcheck' errors when building out-of-tree (04656ea Dave Hart)
1657a25439b6SCy Schubert o Clean up some problems identified by Coverity. (7c11e51 Harlan Stenn)
1658a25439b6SCy Schubert
1659a25439b6SCy Schubert
1660a25439b6SCy SchubertChanges in version 2.0.13-stable (18 Jul 2011)
1661a25439b6SCy SchubertBUGFIXES
1662a25439b6SCy Schubert o Avoid race-condition when initializing global locks (b683cae)
1663a25439b6SCy Schubert o Fix bug in SSL bufferevents backed by a bev with a write high-watermarks (e050703 Joachim Bauch)
1664a25439b6SCy Schubert o Speed up invoke_callbacks on evbuffers when there are no callbacks (f87f568 Mark Ellzey)
1665a25439b6SCy Schubert o Avoid a segfault when all methods are disabled or broken (27ce38b)
1666a25439b6SCy Schubert o Fix incorrect results from evbuffer_search_eol(EOL_LF) (4461f1a)
1667a25439b6SCy Schubert o Add some missing checks for mm_calloc failures (89d5e09)
1668a25439b6SCy Schubert o Replace an assertion for event_base_free(NULL) with a check-and-warn (09fe97d)
1669a25439b6SCy Schubert o Report kqueue ebadf, epipe, and eperm as EV_READ events (1fd34ab)
1670a25439b6SCy Schubert o Check if the `evhttp_new_object' function in `http.c' returns NULL. (446cc7a Mansour Moufid)
1671a25439b6SCy Schubert o Use the correct printf args when formatting size_t (3203f88)
1672a25439b6SCy Schubert o Complain if the caller tries to change threading cbs after setting them (cb6ecee)
1673a25439b6SCy Schubert
1674a25439b6SCy SchubertDOCUMENTATION FIXES AND IMPROVEMENTS
1675a25439b6SCy Schubert o Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy (2888fac)
1676a25439b6SCy Schubert o Update Doxyfile to produce more useful output (aea0555)
1677a25439b6SCy Schubert
1678a25439b6SCy SchubertTEST FIXES
1679a25439b6SCy Schubert o Fix up test_evutil_snprintf (caf695a)
1680a25439b6SCy Schubert o Fix tinytest invocation from windows shell (57def34 Ed Day)
1681a25439b6SCy Schubert
1682a25439b6SCy SchubertBUILD FIXES
1683a25439b6SCy Schubert o Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS (4a5c82d)
1684a25439b6SCy Schubert o Fix select.c compilation on systems with no NFDBITS (49d1136)
1685a25439b6SCy Schubert o Fix a few warnings on OpenBSD (8ee9f9c Nicholas Marriott)
1686a25439b6SCy Schubert o Don't break when building tests from git without python installed (b031adf)
1687a25439b6SCy Schubert o Don't install event_rpcgen.py when --disable-libevent-install is used (e23cda3 Harlan Stenn)
1688a25439b6SCy Schubert o Fix AIX build issue with TAILQ_FOREACH definition (e934096)
1689a25439b6SCy Schubert
1690a25439b6SCy Schubert
1691a25439b6SCy SchubertChanges in version 2.0.12-stable (4 Jun 2011)
1692a25439b6SCy SchubertBUGFIXES
1693a25439b6SCy Schubert o Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors (28317a0)
1694a25439b6SCy Schubert o Fix an assert-inducing fencepost bug in the select backend (d90149d)
1695a25439b6SCy Schubert o Fix failing http assertion introducd in commit 0d6622e (0848814 Kevin Ko)
1696a25439b6SCy Schubert o Fix a bug that prevented us from configuring IPv6 nameservers. (74760f1)
1697a25439b6SCy Schubert o Prevent size_t overflow in evhttp_htmlescape. (06c51cd Mansour Moufid)
1698a25439b6SCy Schubert o Added several checks for under/overflow conditions in evhttp_handle_chunked_read (a279272 Mark Ellzey)
1699a25439b6SCy Schubert o Added overflow checks in evhttp_read_body and evhttp_get_body (84560fc Mark Ellzey)
1700a25439b6SCy Schubert
1701a25439b6SCy SchubertDOCUMENTATION:
1702a25439b6SCy Schubert o Add missing words to EVLOOP_NONBLOCK documentation (9556a7d)
1703a25439b6SCy Schubert
1704a25439b6SCy SchubertBUILD FIXES
1705a25439b6SCy Schubert o libssl depends on libcrypto, not the other way around. (274dd03 Peter Rosin)
1706a25439b6SCy Schubert o Libtool brings in the dependencies of libevent_openssl.la automatically (7b819f2 Peter Rosin)
1707a25439b6SCy Schubert o Use OPENSSL_LIBS in Makefile.am (292092e Sebastian Hahn)
1708a25439b6SCy Schubert o Move the win32 detection in configure.in (ceb03b9 Sebastian Hahn)
1709a25439b6SCy Schubert o Correctly detect openssl on windows (6619385 Sebastian Hahn)
1710a25439b6SCy Schubert o Fix a compile warning with zlib 1.2.4 and 1.2.5 (5786b91 Sebastian Hahn)
1711a25439b6SCy Schubert o Fix compilation with GCC 2, which had no __builtin_expect (09d39a1 Dave Hart)
1712a25439b6SCy Schubert o Fix new warnings from GCC 4.6 (06a714f)
1713a25439b6SCy Schubert o Link with -lshell32 and -ladvapi32 on Win32. (86090ee Peter Rosin)
1714a25439b6SCy Schubert o Make the tests build when OpenSSL is not available. (07c41be Peter Rosin)
1715a25439b6SCy Schubert o Bring in the compile script from automake, if needed. (f3c7a4c Peter Rosin)
1716a25439b6SCy Schubert o MSVC does not provide S_ISDIR, so provide it manually. (70be7d1 Peter Rosin)
1717a25439b6SCy Schubert o unistd.h and sys/time.h might not exist. (fe93022 Peter Rosin)
1718a25439b6SCy Schubert o Make sure TINYTEST_LOCAL is defined when building tinytest.c (8fa030c Peter Rosin)
1719a25439b6SCy Schubert o Fix winsock2.h #include issues with MSVC (3d768dc Peter Rosin)
1720a25439b6SCy Schubert o Use evutil_gettimeofday instead of relying on the system gettimeofday. (0de87fe Peter Rosin)
1721a25439b6SCy Schubert o Always use evutil_snprintf, even if OS provides it (d1b2d11 Sebastian Hahn)
1722a25439b6SCy Schubert o InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403. (816115a Peter Rosin)
1723a25439b6SCy Schubert o cygwin: make it possible to build DLLs (d54d3fc)
1724a25439b6SCy Schubert
1725a25439b6SCy Schubert
1726a25439b6SCy Schubert
1727a25439b6SCy SchubertChanges in version 2.0.11-stable (27 Apr 2011)
1728a25439b6SCy Schubert  [Autogenerated from the Git log, sorted and cleaned by hand.]
1729a25439b6SCy SchubertBUGFIXES:
1730a25439b6SCy Schubert o Fix evport handling of POLLHUP and POLLERR (b42ce4b)
1731a25439b6SCy Schubert o Fix compilation on Windows with NDEBUG (cb8059d)
1732a25439b6SCy Schubert o Check for POLLERR, POLLHUP and POLLNVAL for Solaris event ports (0144886 Trond Norbye)
1733a25439b6SCy Schubert o Detect and handle more allocation failures. (666b096 Jardel Weyrich)
1734a25439b6SCy Schubert o Use event_err() only if the failure is truly unrecoverable. (3f8d22a Jardel Weyrich)
1735a25439b6SCy Schubert o Handle resize failures in the select backend better. (83e805a)
1736a25439b6SCy Schubert o Correctly free selectop fields when select_resize fails in select_init (0c0ec0b)
1737a25439b6SCy Schubert o Make --enable-gcc-warnings a no-op if not using gcc (3267703)
1738a25439b6SCy Schubert o Fix a type error in our (unused) arc4random_stir() (f736198)
1739a25439b6SCy Schubert o Correctly detect and stop non-chunked http requests when the body is too long (63a715e)
1740a25439b6SCy Schubert o Have event_base_gettimeofday_cached() always return wall-clock time (a459ef7)
1741a25439b6SCy Schubert o Workaround for http crash bug 3078187 (5dc5662 Tomash Brechko)
1742a25439b6SCy Schubert o Fix incorrect assertions and possible use-after-free in evrpc_free() (4b8f02f Christophe Fillot)
1743a25439b6SCy Schubert o Reset outgoing http connection when read data in idle state. (272823f Tomash Brechko)
1744a25439b6SCy Schubert o Fix subtle recursion in evhttp_connection_cb_cleanup(). (218cf19 Tomash Brechko)
1745a25439b6SCy Schubert o Fix the case when failed evhttp_make_request() leaved request in the queue. (0d6622e Tomash Brechko)
1746a25439b6SCy Schubert o Fix a crash bug in evdns server circular list code (00e91b3)
1747a25439b6SCy Schubert o Handle calloc failure in evdns. (Found by Dave Hart) (364291e)
1748a25439b6SCy Schubert o Fix a memory leak on win32 socket->event map. (b4f89f0)
1749a25439b6SCy Schubert o Add a forgotten NULL check to evhttp_parse_headers (12311ff Sebastian Hahn)
1750a25439b6SCy Schubert o Fix possible NULL-deref in evdns_cancel_request (5208544 Sebastian Hahn)
1751a25439b6SCy Schubert
1752a25439b6SCy SchubertPORTABILITY:
1753a25439b6SCy Schubert o Fall back to sscanf if we have no other way to implement strtoll (453317b)
1754a25439b6SCy Schubert o Build correctly on platforms without sockaddr_storage (9184563)
1755a25439b6SCy Schubert o Try to build correctly on platforms with no IPv6 support (713c254)
1756a25439b6SCy Schubert o Build on systems without AI_PASSIVE (cb92113)
1757a25439b6SCy Schubert o Fix http unit test on non-windows platforms without getaddrinfo (6092f12)
1758a25439b6SCy Schubert o Do not check for gethostbyname_r versions if we have getaddrinfo (c1260b0)
1759a25439b6SCy Schubert o Include arpa/inet.h as needed on HPUX (10c834c Harlan Stenn)
1760a25439b6SCy Schubert o Include util-internal.h as needed to build on platforms with no sockaddr_storage (bbf5515 Harlan Stenn)
1761a25439b6SCy Schubert o Check for getservbyname even if not on win32. (af08a94 Harlan Stenn)
1762a25439b6SCy Schubert o Add -D_OSF_SOURCE to fix hpux builds (0b33479 Harlan Stenn)
1763a25439b6SCy Schubert o Check for allocation failures in apply_socktype_protocol_hack (637d17a)
1764a25439b6SCy Schubert o Fix the check for multicast or broadcast addresses in evutil_check_interfaces (1a21d7b)
1765a25439b6SCy Schubert o Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart (3417f68)
1766a25439b6SCy Schubert
1767a25439b6SCy SchubertDEFENSIVE PROGRAMMING:
1768a25439b6SCy Schubert o Add compile-time check for AF_UNSPEC==PF_UNSPEC (3c8f4e7)
1769a25439b6SCy Schubert
1770a25439b6SCy SchubertBUGS IN TESTS:
1771a25439b6SCy Schubert o Fix test.sh output on solaris (b4f89b6 Dave Hart)
1772a25439b6SCy Schubert o Make test-eof fail with a timeout if we never get an eof. (05a2c22 Harlan Stenn)
1773a25439b6SCy Schubert o Use %s with printf in test.sh (039b9bd)
1774a25439b6SCy Schubert o Add an assert to appease clang's static analyzer (b0ff7eb Sebastian Hahn)
1775a25439b6SCy Schubert o Add a forgotten return value check in the unit tests (3819b62 Sebastian Hahn)
1776a25439b6SCy Schubert o Actually send NULL request in http_bad_request_test (b693c32 Sebastian Hahn)
1777a25439b6SCy Schubert o add some (void) casts for unused variables (65707d7 Sebastian Hahn)
1778a25439b6SCy Schubert o Refactor test_getaddrinfo_async_cancel_stress() (48c44a6 Sebastian Hahn)
1779a25439b6SCy Schubert o Be nice and "handle" error return values in sample code (4bac793 Sebastian Hahn)
1780a25439b6SCy Schubert o Check return value of evbuffer_add_cb in tests (93a1abb Sebastian Hahn)
1781a25439b6SCy Schubert o Remote some dead code from dns-example.c (744c745 Sebastian Hahn)
1782a25439b6SCy Schubert o Zero a struct sockaddr_in before using it (646f9fe Sebastian Hahn)
1783a25439b6SCy Schubert
1784a25439b6SCy SchubertBUILD FIXES:
1785a25439b6SCy Schubert o Fix warnings about AC_LANG_PROGRAM usage (f663112 Sebastian Hahn)
1786a25439b6SCy Schubert o Skip check for zlib if we have no zlib.h (a317c06 Harlan Stenn)
1787a25439b6SCy Schubert o Fix autoconf bracket issues; make check for getaddrinfo include netdb.h (833e5e9 Harlan Stenn)
1788a25439b6SCy Schubert o Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am (9c469db Dave Hart)
1789a25439b6SCy Schubert o Fix make distcheck & installation of libevent 1 headers (b5a1f9f Dave Hart)
1790a25439b6SCy Schubert o Fix compilation under LLVM/clang with --enable-gcc-warnings (ad9ff58 Sebastian Hahn)
1791a25439b6SCy Schubert
1792a25439b6SCy SchubertFEATURES:
1793a25439b6SCy Schubert o Make URI parser able to tolerate nonconformant URIs. (95060b5)
1794a25439b6SCy Schubert
1795a25439b6SCy SchubertDOCUMENTATION:
1796a25439b6SCy Schubert o Clarify event_set_mem_functions doc (926f816)
1797a25439b6SCy Schubert o Correct evhttp_del_accept_socket documentation on whether socket is closed (f665924)
1798a25439b6SCy Schubert o fix spelling mistake in whatsnew-2.0.txt (deb2f73)
1799a25439b6SCy Schubert o Fix sample/http-server ipv6 fixes (eb692be)
1800a25439b6SCy Schubert o Comment internal headers used in sample code. (4eb281c)
1801a25439b6SCy Schubert o Be explicit about how long event loops run in event.h documentation (f95bafb)
1802a25439b6SCy Schubert o Add comment to configure.in to explain gc-sections test logic (c621359)
1803a25439b6SCy Schubert o Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart. (2e9f665)
1804a25439b6SCy Schubert
1805a25439b6SCy Schubert
18062b15cb3dSCy Schubert
18072b15cb3dSCy SchubertBUILD IMPROVEMENTS:
18082b15cb3dSCy Schubert Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes
18092b15cb3dSCy Schubert numerous other build system. Parallel builds should be faster, and all
18102b15cb3dSCy Schubert builds should be quieter.
18112b15cb3dSCy Schubert
18122b15cb3dSCy Schubert   o Split long lists in Makefile.am into one-item-per-line (2711cda)
18132b15cb3dSCy Schubert   o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall)
18142b15cb3dSCy Schubert   o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier)
18152b15cb3dSCy Schubert   o Use newer syntax for autoconf/automake init (7d60ba8)
18162b15cb3dSCy Schubert   o Enable silent build rules by default. Override with V=1 (7b18e5c)
18172b15cb3dSCy Schubert   o Switch to non-recursive makefiles (7092f3b)
18182b15cb3dSCy Schubert   o Rename subordinate Makefile.ams to include.am (6cdfeeb)
18192b15cb3dSCy Schubert   o Make quiet build even quieter (371a123)
18202b15cb3dSCy Schubert   o New --quiet option for event_rpcgen.py (aa59c1e)
18212b15cb3dSCy Schubert   o Be quiet when making regress.gen.[ch] (607a8ff)
18222b15cb3dSCy Schubert   o Fix handling of no-python case for nonrecursive make (1e3123d)
18232b15cb3dSCy Schubert   o We now require automake 1.9 or later. Modernize! (b7f6e89)
18242b15cb3dSCy Schubert   o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall)
18252b15cb3dSCy Schubert   o Use correct openssl libs and includes in pkgconfig file (d70af27)
18262b15cb3dSCy Schubert   o Use the same CFLAGS for openssl when building unit tests as with
18272b15cb3dSCy Schubert     libevent (1d9d511)
18282b15cb3dSCy Schubert
18292b15cb3dSCy SchubertDOCUMENTATION
18302b15cb3dSCy Schubert   o Note that make_base_notifiable should not be necessary (26ee5f9)
18312b15cb3dSCy Schubert   o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb)
18322b15cb3dSCy Schubert   o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee)
18332b15cb3dSCy Schubert   o Make it more clear that NOLOCK means "I promise, no multithreading"
18342b15cb3dSCy Schubert    (9444524)
18352b15cb3dSCy Schubert   o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall)
18362b15cb3dSCy Schubert   o Make the Makefile.nmake warning slightly less dire (e7bf4c8)
18372b15cb3dSCy Schubert   o Fix typo : events instead of evets (05f1aca Azat Khuzhin)
18382b15cb3dSCy Schubert   o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
18392b15cb3dSCy Schubert     (6bde2ef Patrick Pelletier)
18402b15cb3dSCy Schubert
18412b15cb3dSCy SchubertEVHTTP:
18422b15cb3dSCy Schubert   o ignore LWS after field-content in headers (370a2c0 Artem Germanov)
18432b15cb3dSCy Schubert   o Clean up rtrim implementation (aa59d80)
18442b15cb3dSCy Schubert   o Remove trailing tabs in HTTP headers as well. (ac42519)
18452b15cb3dSCy Schubert   o Remove internal ws from multiline http headers correctly (c6ff381)
18462b15cb3dSCy Schubert   o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af)
18472b15cb3dSCy Schubert   o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren)
18482b15cb3dSCy Schubert   o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in
18492b15cb3dSCy Schubert     evhttp_connection_fail_ (7afbd60)
18502b15cb3dSCy Schubert   o preserve errno in evhttp_connection_fail_ for inspection by the
18512b15cb3dSCy Schubert     callback (36d0ee5 Patrick Pelletier)
18522b15cb3dSCy Schubert
18532b15cb3dSCy SchubertBUGFIXES:
18542b15cb3dSCy Schubert   o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b)
18552b15cb3dSCy Schubert   o Avoid double-free on error in evbuffer_add_file. Found by
18562b15cb3dSCy Schubert     coverity. (6a81b1f)
18572b15cb3dSCy Schubert   o Fix another possible uninitialized read in dns regression tests. Found
18582b15cb3dSCy Schubert     by coverity. (13525c5)
18592b15cb3dSCy Schubert   o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1)
18602b15cb3dSCy Schubert   o Avoid memory leak in test_event_calloc unit test; found by coverity
18612b15cb3dSCy Schubert     (92817a1)
18622b15cb3dSCy Schubert   o Fix a shadowed variable in addfile_test_readcb; found by coverity
18632b15cb3dSCy Schubert     (225344c)
18642b15cb3dSCy Schubert   o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by
18652b15cb3dSCy Schubert     coverity (6487f63)
18662b15cb3dSCy Schubert   o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786
18672b15cb3dSCy Schubert     Joachim Bauch)
18682b15cb3dSCy Schubert   o Make event_base_getnpriorities work with old "implicit base" code
18692b15cb3dSCy Schubert     (c46cb9c)
18702b15cb3dSCy Schubert   o Simplify and correct evutil_open_closeonexec_ (0de587f)
18712b15cb3dSCy Schubert   o Fix event_dlist definition when sys/queue not included (81b6209
18722b15cb3dSCy Schubert     Derrick Pallas)
18732b15cb3dSCy Schubert
18742b15cb3dSCy Schubert
18752b15cb3dSCy Schubert
18762b15cb3dSCy SchubertChanges in version 2.1.1-alpha (4 Apr 2012)
18772b15cb3dSCy Schubert
18782b15cb3dSCy Schubert Libevent 2.1.1-alpha includes a number of new features and performance
18792b15cb3dSCy Schubert improvements.  The log below tries to organize them by rough area of
18802b15cb3dSCy Schubert effect.  It omits some commits which were pure bugfixes on other commits
18812b15cb3dSCy Schubert listed below.  For more detail, see the git changelogs.  For more
18822b15cb3dSCy Schubert insight, see the "whatsnew-2.1.txt" document included in the Libevent
18832b15cb3dSCy Schubert 2.1.1-alpha distribution.
18842b15cb3dSCy Schubert
18852b15cb3dSCy Schubert Performance: Core
18862b15cb3dSCy Schubert   o Replace several TAILQ users with LIST. LIST can be a little faster than
18872b15cb3dSCy Schubert     TAILQ for cases where we don't need queue-like behavior. (f9db33d,
18882b15cb3dSCy Schubert     6494772, d313c29, 974d004)
18892b15cb3dSCy Schubert   o Disabled code to optimize the case where we reinsert an existing
18902b15cb3dSCy Schubert     timeout (e47042f, 09cbc3d)
18912b15cb3dSCy Schubert   o Remove a needless base-notify when rescheduling the first timeout (77a96fd)
18922b15cb3dSCy Schubert   o Save a needless comparison when removing/adjusting timeouts (dd5189b)
18932b15cb3dSCy Schubert   o Possible optimization: split event_queue_insert/remove into
18942b15cb3dSCy Schubert     separate functions. needs testing (efc4dc5)
18952b15cb3dSCy Schubert   o Make event_count maintenance branchless at the expense of an
18962b15cb3dSCy Schubert     extra shift. Needs benchmarking (d1cee3b)
18972b15cb3dSCy Schubert   o In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime
18982b15cb3dSCy Schubert     comparison (2a83ecc)
18992b15cb3dSCy Schubert   o Optimization in event_process_active(): ignore maxcb & endtime
19002b15cb3dSCy Schubert     for highest priority events. (a9866aa Alexander Drozdov)
19012b15cb3dSCy Schubert   o Bypass event_add when using event_base_once() for a 0-sec timeout (35c5c95)
19022b15cb3dSCy Schubert   o Remove the eventqueue list and the ev_next pointers. (604569b 066775e)
19032b15cb3dSCy Schubert
19042b15cb3dSCy Schubert Performance: Evbuffers
19052b15cb3dSCy Schubert   o Roughly 20% speed increase when line-draining a buffer using
19062b15cb3dSCy Schubert     EVBUFFER_EOL_CRLF (5dde0f0 Mina Naguib)
19072b15cb3dSCy Schubert   o Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF (7b9d139)
19082b15cb3dSCy Schubert   o Fix a bug in the improved EOL_CRLF code (d927965)
19092b15cb3dSCy Schubert   o Remove a needless branch in evbuffer_drain() (d19a326)
19102b15cb3dSCy Schubert
19112b15cb3dSCy Schubert Performance: Linux
19122b15cb3dSCy Schubert   o Infrastructure for using faster/fewer syscalls when creating
19132b15cb3dSCy Schubert     sockets (a1c042b)
19142b15cb3dSCy Schubert   o Minimize syscalls during socket creation in listener.c (7e9e289)
19152b15cb3dSCy Schubert   o Use a wrapper function to create the notification
19162b15cb3dSCy Schubert     pipe/socketpair/eventfd (ca76cd9)
19172b15cb3dSCy Schubert   o Use pipes for telling signals to main thread when possible (a35f396)
19182b15cb3dSCy Schubert   o Save syscalls when constructing listener sockets for evhttp (af6c9d8)
19192b15cb3dSCy Schubert   o Save some syscalls when creating evdns sockets (713e570)
19202b15cb3dSCy Schubert   o Save some syscalls when constructing a socket for a bufferevent (33fca62)
19212b15cb3dSCy Schubert   o Prefer epoll_create1 on Linuxen that have it (bac906c)
19222b15cb3dSCy Schubert
19232b15cb3dSCy Schubert Performance: Epoll backend
19242b15cb3dSCy Schubert   o Use current event set rather than current pending change when
19252b15cb3dSCy Schubert     deciding whether to no-op a del (04ba27e Mike Smellie)
19262b15cb3dSCy Schubert   o Replace big chain of if/thens in epoll.c with a table lookup (8c83eb6)
19272b15cb3dSCy Schubert   o Clean up error handling in epoll_apply_one_change() a little (2d55a19)
19282b15cb3dSCy Schubert
19292b15cb3dSCy Schubert Performance: Evport backend
19302b15cb3dSCy Schubert   o evport: use evmap_io to track fdinfo status. Should save time and
19312b15cb3dSCy Schubert     RAM. (4687ce4)
19322b15cb3dSCy Schubert   o evport: Remove a linear search over recent events when
19332b15cb3dSCy Schubert     reactivating them (0f77efe)
19342b15cb3dSCy Schubert   o evport: Use portev_user to remember fdinfo struct (276ec0e)
19352b15cb3dSCy Schubert   o evport: don't scan more events in ed_pending than needed (849a5cf)
19362b15cb3dSCy Schubert   o evport: Remove artificial low limit on max events per getn call (c04d927)
19372b15cb3dSCy Schubert   o Reenable main/many_events_slow_add for evport in 2.1 (e903db3)
19382b15cb3dSCy Schubert
19392b15cb3dSCy Schubert Performance: Windows
19402b15cb3dSCy Schubert   o Use GetSystemTimeAsFileTime to implement gettimeofday on
19412b15cb3dSCy Schubert     win32. It's faster and more accurate than our old
19422b15cb3dSCy Schubert     approach. (b8b8aa5)
19432b15cb3dSCy Schubert
19442b15cb3dSCy Schubert New functions and features: debugging
19452b15cb3dSCy Schubert   o Add event_enable_debug_logging() to control use of debug logs (e30a82f)
19462b15cb3dSCy Schubert
19472b15cb3dSCy Schubert New functions and features: core
19482b15cb3dSCy Schubert   o Add event_config function to limit time/callbacks between calls
19492b15cb3dSCy Schubert     to dispatch (fd4de1e, 9fa56bd, a37a0c0, 3c63edd)
19502b15cb3dSCy Schubert   o New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no
19512b15cb3dSCy Schubert     events are pending (084e68f)
19522b15cb3dSCy Schubert   o Add event_base_get_npriorities() function. (ee3a4ee Alexander Drozdov)
19532b15cb3dSCy Schubert   o Make evbase_priority_init() and evbase_get_npriorities()
19542b15cb3dSCy Schubert     threadsafe (3c55b5e)
19552b15cb3dSCy Schubert   o New event_base_update_cache_time() to set cached_tv to current
19562b15cb3dSCy Schubert     time (212533e Abel Mathew)
19572b15cb3dSCy Schubert   o Add event_self_cbarg() to be used in conjunction with
19582b15cb3dSCy Schubert     event_new(). (ed36e6a Ross Lagerwall, fa931bb, 09a1906, 1338e6c,
19592b15cb3dSCy Schubert     33e43ef)
19602b15cb3dSCy Schubert   o Add a new libevent_global_shutdown() to free all globals before
19612b15cb3dSCy Schubert     exiting. (041ca00 Mark Ellzey, f98c158, 15296d0, 55e991b)
19622b15cb3dSCy Schubert   o Use getifaddrs to detect our interfaces if possible (7085a45)
19632b15cb3dSCy Schubert   o Add event_base_get_running_event() to get the event* whose cb we
19642b15cb3dSCy Schubert     are in (c5732fd, 13dad99)
19652b15cb3dSCy Schubert
19662b15cb3dSCy Schubert New functions and features: building
19672b15cb3dSCy Schubert   o Implement --enable-gcc-hardening configure option (7550267 Sebastian Hahn)
19682b15cb3dSCy Schubert
19692b15cb3dSCy Schubert New functions and features: evbuffers
19702b15cb3dSCy Schubert   o Add evbuffer_add_file_segment() so one fd can be used efficiently
19712b15cb3dSCy Schubert     in more than one evbuffer_add_file at a time (e72afae, c2d9884,
19722b15cb3dSCy Schubert     3f405d2, 0aad014)
19732b15cb3dSCy Schubert   o Fix windows file segment mappings (8254de7)
19742b15cb3dSCy Schubert   o Allow evbuffer_ptr_set to yield a point just after the end of the
19752b15cb3dSCy Schubert     buffer. (e6fe1da)
19762b15cb3dSCy Schubert   o Allow evbuffer_ptr to point to position 0 in an empty evbuffer
19772b15cb3dSCy Schubert     (7aeb2fd Nir Soffer)
19782b15cb3dSCy Schubert   o Set the special "not found" evbuffer_ptr consistently. (e3e97ae Nir Soffer)
19792b15cb3dSCy Schubert   o support adding buffers to other buffers non-destructively
19802b15cb3dSCy Schubert     (9d7368a Joachim Bauch)
19812b15cb3dSCy Schubert   o prevent nested multicast references, reworked locking (26041a8
19822b15cb3dSCy Schubert     Joachim Bauch)
19832b15cb3dSCy Schubert   o New EVBUFFER_EOL_NUL to read NUL-terminated strings from an
19842b15cb3dSCy Schubert     evbuffer (d7a8b36 Andrea Montefusco, 54142c9)
19852b15cb3dSCy Schubert   o Make evbuffer_file_segment_types adaptable (c6bbbf1)
19862b15cb3dSCy Schubert   o Added evbuffer_add_iovec and unit tests. (aaec5ac Mark Ellzey, 27b5398)
19872b15cb3dSCy Schubert   o Add evbuffer_copyout_from to copy data from the middle of a
19882b15cb3dSCy Schubert     buffer (27e2225)
19892b15cb3dSCy Schubert
19902b15cb3dSCy Schubert New functions and features: bufferevents
19912b15cb3dSCy Schubert   o Allow users to set allow_dirty_shutdown (099d27d Catalin Patulea)
19922b15cb3dSCy Schubert   o Tweak allow_dirty_shutdown documentation (a44cd2b)
19932b15cb3dSCy Schubert   o Fix two issues in the allow_dirty_shutdown code. (f3b89de)
19942b15cb3dSCy Schubert   o Add a bufferevent_getcb() to find a bufferevent's current
19952b15cb3dSCy Schubert     callbacks (a650394)
19962b15cb3dSCy Schubert   o bufferevent: Add functions to set/get max_single_read/write
19972b15cb3dSCy Schubert     values. (998c813 Alexander Drozdov)
19982b15cb3dSCy Schubert   o bev_ssl: Be more specific in event callbacks. evhttp in particular gets
19992b15cb3dSCy Schubert     confused without at least one of BEV_EVENT_{READING|WRITING}. (f7eb69a
20002b15cb3dSCy Schubert     Catalin Patulea)
20012b15cb3dSCy Schubert
20022b15cb3dSCy Schubert New functions and features: evconnlisteners
20032b15cb3dSCy Schubert   o Support TCP_DEFER_ACCEPT sockopts for listeners (5880e4a Mark Ellzey,
20042b15cb3dSCy Schubert     a270728)
20052b15cb3dSCy Schubert   o Add another caveat to the TCP_DEFER_ACCEPT documentation (a270728)
20062b15cb3dSCy Schubert   o Allow evconnlistener to be created in disabled state. (9593a33
20072b15cb3dSCy Schubert     Alexander Drozdov)
20082b15cb3dSCy Schubert   o The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener
20092b15cb3dSCy Schubert     sockets too (4970329)
20102b15cb3dSCy Schubert
20112b15cb3dSCy Schubert Evhttp:
20122b15cb3dSCy Schubert   o Add new evhttp_{connection_}set_timeout_tv() functions to set
20132b15cb3dSCy Schubert     finger-grained http timeouts (6350e6c Constantine Verutin)
20142b15cb3dSCy Schubert   o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey)
20152b15cb3dSCy Schubert   o Add missing break to evhttp_parse_request_line (0fcc536)
20162b15cb3dSCy Schubert   o Add evhttp callback for bufferevent creation; this lets evhttp
20172b15cb3dSCy Schubert     support SSL. (8d3a850)
20182b15cb3dSCy Schubert   o Remove calls to deprecated bufferevent functions from evhttp.c (4d63758)
20192b15cb3dSCy Schubert   o evhttp: Add evhttp_foreach_bound_socket. (a2c48e3 Samy Al Bahra)
20202b15cb3dSCy Schubert
20212b15cb3dSCy Schubert Build improvements:
20222b15cb3dSCy Schubert   o Add AC_USE_SYSTEM_EXTENSIONS to configure.in. Requires follow on
20232b15cb3dSCy Schubert     patches for correctness and robustness. (1fa7dbe Kevin Bowling)
20242b15cb3dSCy Schubert   o Filter '# define' statements from autoconf and generate
20252b15cb3dSCy Schubert     event-private.h (321b558 Kevin Bowling)
20262b15cb3dSCy Schubert   o Remove internal usage of _GNU_SOURCE (3b26541 Kevin Bowling)
20272b15cb3dSCy Schubert   o Eliminate a couple more manual internal _GNU_SOURCE defines (c51ef93
20282b15cb3dSCy Schubert     Kevin Bowling)
20292b15cb3dSCy Schubert   o Add AC_GNU_SOURCE to the fallback case. (ea8fa4c Kevin Bowling)
20302b15cb3dSCy Schubert   o Use a Configuration Header Template for evconfig-private.h (868f888
20312b15cb3dSCy Schubert     Kevin Bowling)
20322b15cb3dSCy Schubert   o Fix a comment warning and add evconfig-private.h to .gitignore
20332b15cb3dSCy Schubert     (f6d66bc Kevin Bowling)
20342b15cb3dSCy Schubert   o Include evconfig-private.h in internal files for great good. (0915ca0
20352b15cb3dSCy Schubert     Kevin Bowling)
20362b15cb3dSCy Schubert   o Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
20372b15cb3dSCy Schubert     (ad03952 Kevin Bowling)
20382b15cb3dSCy Schubert   o Prefer the ./configure evconfig-private.h in MinGW, just in
20392b15cb3dSCy Schubert     case. (f964b72 Kevin Bowling)
20402b15cb3dSCy Schubert   o Shell hack for weird mkdir -p commands (fd7b5a8 Kevin Bowling)
20412b15cb3dSCy Schubert   o Add evconfig-private to remaining files (ded0a09 Kevin Bowling)
20422b15cb3dSCy Schubert   o Allow use of --enable-silent-rules for quieter compilation with
20432b15cb3dSCy Schubert     automake 1.11 (f1f8514 Dave Hart)
20442b15cb3dSCy Schubert   o Use "_WIN32", not WIN32: it's standard and we don't need to fake it
20452b15cb3dSCy Schubert     (9f560b)
20462b15cb3dSCy Schubert   o In configure, test for _WIN32 not WIN32. (85078b1 Peter Rosin)
20472b15cb3dSCy Schubert   o Do not define WIN32 in Makefile.nmake (d41f3ea Peter Rosin)
20482b15cb3dSCy Schubert   o Provide the autoconf m4 macros for the new OpenSSL via pkg-config
20492b15cb3dSCy Schubert     stuff. (674dc3d Harlan Stenn)
20502b15cb3dSCy Schubert   o Use pkg-config (if available) to handle OpenSSL. (1c63860 Harlan Stenn)
20512b15cb3dSCy Schubert   o We need AM_CPPFLAGS when compiling bufferevent_openssl.c (6d2613b
20522b15cb3dSCy Schubert     Harlan Stenn)
20532b15cb3dSCy Schubert   o Fix OSX build: $(OPENSSL_INCS) needs to be after
20542b15cb3dSCy Schubert     $(AM_CPPFLAGS). (46f1769 Zack Weinberg)
20552b15cb3dSCy Schubert   o Make gcc warnings on by default, and --enable-gcc-warnings only add
20562b15cb3dSCy Schubert     -Werror (d46517e Sebastian Hahn)
20572b15cb3dSCy Schubert   o Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in (88a30ad)
20582b15cb3dSCy Schubert   o Move libevent 1.x headers to include/, to put all public headers in
20592b15cb3dSCy Schubert     one place. (bbea8d6)
20602b15cb3dSCy Schubert   o Put #ifdef around some files to support alternate build
20612b15cb3dSCy Schubert     systems. (76d4c92 Ross Lagerwall)
20622b15cb3dSCy Schubert   o Also make win32select.c conditional for IDE users (bf2c5a7)
20632b15cb3dSCy Schubert
20642b15cb3dSCy Schubert Debugging:
20652b15cb3dSCy Schubert   o Add a magic number to debug_locks to better catch lock-coding
20662b15cb3dSCy Schubert     errors. (b4a29c0 Dave Hart)
20672b15cb3dSCy Schubert   o munge the debug_lock signature before freeing it: it might help us
20682b15cb3dSCy Schubert     catch use-after-free (f28084d)
20692b15cb3dSCy Schubert   o Added --enable-event-debugging in configure (bc7b4e4, a9c2c9a Mark Ellzey)
20702b15cb3dSCy Schubert   o Debug addition for printing usec on TIMEOUT debugging. (ac43ce0 Mark Ellzey)
20712b15cb3dSCy Schubert   o Added usec debug in another area for debug (3baab0d Mark Ellzey)
20722b15cb3dSCy Schubert   o added timeout debug logs to include event ptr. (4b7d298 Mark Ellzey)
20732b15cb3dSCy Schubert   o more event dbg updates (6727543 Mark Ellzey)
20742b15cb3dSCy Schubert   o Clarify event_enable_debug_logging a little (6207826)
20752b15cb3dSCy Schubert   o Make --enable-verbose-debug option match its help text (10c3450)
20762b15cb3dSCy Schubert   o Add argument checks to some memory functions in `event.c'. (c8953d1
20772b15cb3dSCy Schubert     Mansour Moufid)
20782b15cb3dSCy Schubert
20792b15cb3dSCy Schubert Testing:
20802b15cb3dSCy Schubert   o More abstraction in test.sh (cd74c4e)
20812b15cb3dSCy Schubert   o Add failing test for evbuffer_search_range. (8e26154 Nir Soffer)
20822b15cb3dSCy Schubert   o Tweaks to return types with end-of-buf ptrs (9ab8ab8)
20832b15cb3dSCy Schubert   o Add an (internal) usleep function for use by unit tests (f25d9d3)
20842b15cb3dSCy Schubert   o Synchronize with upstream tinytest (6c81be7)
20852b15cb3dSCy Schubert   o Make test-changelist faster (7622d26)
20862b15cb3dSCy Schubert   o Reduce the timeout in the main/fork test. (ab14f7c)
20872b15cb3dSCy Schubert   o New evhttp function to adjust initial retry timeout (350a3c4)
20882b15cb3dSCy Schubert   o Make regression tests run over 3x faster. (67a1763)
20892b15cb3dSCy Schubert   o Use test_timeval_diff_eq more consistently (b77b43f)
20902b15cb3dSCy Schubert   o Allow more slop in deferred_cb_skew test; freebsd needs it (b9f7e5f)
20912b15cb3dSCy Schubert   o When including an -internal.h header outside the main tree, do so
20922b15cb3dSCy Schubert     early (95e2455)
20932b15cb3dSCy Schubert   o Add a new test: test-fdleak which tests for fd leaks by creating many
20942b15cb3dSCy Schubert     sockets. (2ef9278 Ross Lagerwall, f7af194, 1c4288f, etc)
20952b15cb3dSCy Schubert   o Add a unit test for event_base_dump_events() (7afe48a, 8d08cce)
20962b15cb3dSCy Schubert   o Test more bufferevent_ratelim features (c24f91a)
20972b15cb3dSCy Schubert
20982b15cb3dSCy Schubert Documentation:
20992b15cb3dSCy Schubert   o Improve evbuffer_ptr documentation (261ba63)
21002b15cb3dSCy Schubert   o added comments to describe refcounting of multicast chains (ba24f61
21012b15cb3dSCy Schubert     Joachim Bauch)
21022b15cb3dSCy Schubert   o Add doxygen for event_base_dump_events (cad5753)
21032b15cb3dSCy Schubert
21042b15cb3dSCy Schubert OSX:
21052b15cb3dSCy Schubert   o Use "unlimited select" on OSX so that we can have more than
21062b15cb3dSCy Schubert     FD_SETSIZE fds (1fb5cc6)
21072b15cb3dSCy Schubert
21082b15cb3dSCy Schubert KQueue:
21092b15cb3dSCy Schubert   o Use SIG_IGN instead of a do-nothing handler for signal events with
21102b15cb3dSCy Schubert     kqueue (148458e Zack Weinberg)
21112b15cb3dSCy Schubert
21122b15cb3dSCy Schubert evprc:
21132b15cb3dSCy Schubert   o event_rpcgen.py now prints status information to stdout and errors to
21142b15cb3dSCy Schubert     stderr. (ffb0ba0 Ross Lagerwall)
21152b15cb3dSCy Schubert
21162b15cb3dSCy Schubert Code improvement and refactoring:
21172b15cb3dSCy Schubert   o Make event_reinit() more robust and maintainable (272033e)
21182b15cb3dSCy Schubert   o Restore fast-path event_reinit() for slower backends (2c4b5de)
21192b15cb3dSCy Schubert   o Check changelist as part of checking representational integrity (39b3f38)
21202b15cb3dSCy Schubert   o Fix a compile warning in event_reinit (e4a56ed Sebastian Hahn)
21212b15cb3dSCy Schubert   o Refactor the functions that run over every event. (c89b4e6)
21222b15cb3dSCy Schubert   o Remove the last vestiges of _EVENT_USE_EVENTLIST (a3cec90)
21232b15cb3dSCy Schubert   o Make event-config.h depend on Makefile.am (2958a5c)
21242b15cb3dSCy Schubert
21252b15cb3dSCy Schubert Build fixes:
21262b15cb3dSCy Schubert   o Don't do clang version detection when disabling some flags (083296b
21272b15cb3dSCy Schubert     Sebastian Hahn)
21282b15cb3dSCy Schubert
21292b15cb3dSCy Schubert C standards conformance:
21302b15cb3dSCy Schubert   o Check for NULL return on win32 mm_calloc, and set ENOMEM. (af7ba69)
21312b15cb3dSCy Schubert   o Convert event-config.h macros to avoid reserved identifiers (68120d9)
21322b15cb3dSCy Schubert   o Generate event-config.h using the correct macros. (f82c57e)
21332b15cb3dSCy Schubert   o Convert include-guard macro convention to avoid reserved identifiers
21342b15cb3dSCy Schubert     (3f8c7cd)
21352b15cb3dSCy Schubert   o Make event_rpcgen.py output conform to identifier conventions (372bff1)
21362b15cb3dSCy Schubert   o Stop referring to an obsolete include guard in bench_http.h (5c0f7e0)
21372b15cb3dSCy Schubert   o Make the generated event-config.h use correct include guards (639383a)
21382b15cb3dSCy Schubert   o Fix all identifiers with names beginning with underscore. (cb9da0b)
21392b15cb3dSCy Schubert   o Make event_rpcgen.py output conform to identifier conventions, more
21402b15cb3dSCy Schubert     (bcefd24)
21412b15cb3dSCy Schubert   o Fix some problems introduced by automated identifier cleanup script
21422b15cb3dSCy Schubert     (c963534)
21432b15cb3dSCy Schubert   o Have all visible internal function names end with an underscore. (8ac3c4c)
21442b15cb3dSCy Schubert   o Apply the naming convention to our EVUTIL_IS* functions (c7848fa)
21452b15cb3dSCy Schubert   o Clean up lingering _identifiers. (946b584)
21462b15cb3dSCy Schubert   o Fix doxygen to use new macro conventions (da455e9)
21472b15cb3dSCy Schubert
21482b15cb3dSCy Schubert Bugfixes:
21492b15cb3dSCy Schubert   o Do not use system EAI/AI values if we are not using the system
21502b15cb3dSCy Schubert     getaddrinfo. (7bcac07)
21512b15cb3dSCy Schubert
21522b15cb3dSCy Schubert Sample Code:
21532b15cb3dSCy Schubert   o Fix up sample/event-test.c to use newer interfaces and make it
21542b15cb3dSCy Schubert     actually work. (19bab4f Ross Lagerwall)
21552b15cb3dSCy Schubert   o On Unix, remove event.fifo left by sample/event-test.c. (c0dacd2 Ross
21562b15cb3dSCy Schubert     Lagerwall)
21572b15cb3dSCy Schubert   o Rename event-test.c to event-read-fifo.c. (a5b370a Ross Lagerwall)
21582b15cb3dSCy Schubert   o event-read-fifo: Use EV_PERSIST appropriately (24dab0b)
21592b15cb3dSCy Schubert
21602b15cb3dSCy Schubert
21612b15cb3dSCy Schubert
21622b15cb3dSCy Schubert
2163