12b15cb3dSCy SchubertChanges in 1.4.14b-stable 22b15cb3dSCy Schubert o Set the VERSION_INFO correctly for 1.4.14 32b15cb3dSCy Schubert 42b15cb3dSCy SchubertChanges in 1.4.14-stable 52b15cb3dSCy Schubert o Add a .gitignore file for the 1.4 branch. (d014edb) 62b15cb3dSCy Schubert o Backport evbuffer_readln(). (b04cc60 Nicholas Marriott) 72b15cb3dSCy Schubert o Make the evbuffer_readln backport follow the current API (c545485) 82b15cb3dSCy Schubert o Valgrind fix: Clear struct kevent before checking for OSX bug. (5713d5d William Ahern) 92b15cb3dSCy Schubert o Fix a crash when reading badly formatted resolve.conf (5b10d00 Yasuoka Masahiko) 102b15cb3dSCy Schubert o Fix memory-leak of signal handler array with kqueue. [backport] (01f3775) 112b15cb3dSCy Schubert o Update sample/signal-test.c to use newer APIs and not leak. (891765c Evan Jones) 122b15cb3dSCy Schubert o Correct all versions in 1.4 branch (ac0d213) 132b15cb3dSCy Schubert o Make evutil_make_socket_nonblocking() leave any other flags alone. (81c26ba Jardel Weyrich) 142b15cb3dSCy Schubert o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (5f2e250 Jardel Weyrich) 152b15cb3dSCy Schubert o Correct a debug message in evhttp_parse_request_line (35df59e) 162b15cb3dSCy Schubert o Merge branch 'readln-backport' into patches-1.4 (8771d5b) 172b15cb3dSCy Schubert o Do not send an HTTP error when we've already closed or responded. (4fd2dd9 Pavel Plesov) 182b15cb3dSCy Schubert o Re-add event_siglcb; some old code _was_ still using it. :( (bd03d06) 192b15cb3dSCy Schubert o Make Libevent 1.4 build on win32 with Unicode enabled. (bce58d6 Brodie Thiesfield) 202b15cb3dSCy Schubert o Distribute nmake makefile for 1.4 (20d706d) 212b15cb3dSCy Schubert o do not fail while sending on http connections the client closed. (5c8b446) 222b15cb3dSCy Schubert o make evhttp_send() safe against terminated connections, too (01ea0c5) 232b15cb3dSCy Schubert o Fix a free(NULL) in min_heap.h (2458934) 242b15cb3dSCy Schubert o Fix memory leak when setting up priorities; reported by Alexander Drozdov (cb1a722) 252b15cb3dSCy Schubert o Clean up properly when adding a signal handler fails. (ae6ece0 Gilad Benjamini) 262b15cb3dSCy Schubert o Do not abort HTTP requests missing a reason string. (29d7b32 Pierre Phaneuf) 272b15cb3dSCy Schubert o Fix compile warning in http.c (906d573) 282b15cb3dSCy Schubert o Define _REENTRANT as needed on Solaris, elsewhere (6cbea13) 292b15cb3dSCy Schubert 302b15cb3dSCy Schubert 312b15cb3dSCy SchubertChanges in 1.4.13-stable: 322b15cb3dSCy Schubert o If the kernel tells us that there are a negative number of bytes to read from a socket, do not believe it. Fixes bug 2841177; found by Alexander Pronchenkov. 332b15cb3dSCy Schubert o Do not allocate the maximum event queue and fd array for the epoll backend at startup. Instead, start out accepting 32 events at a time, and double the queue's size when it seems that the OS is generating events faster than we're requesting them. Saves up to 512K per epoll-based event_base. Resolves bug 2839240. 342b15cb3dSCy Schubert o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h 352b15cb3dSCy Schubert o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec 362b15cb3dSCy Schubert o Rename our replacement compat/sys/_time.h header to avoid build a conflict on HPUX; reported by Kathryn Hogg. 372b15cb3dSCy Schubert o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian. 382b15cb3dSCy Schubert o Fix a problem with excessive memory allocation when using multiple event priorities. 392b15cb3dSCy Schubert o When running set[ug]id, don't check the environment. Based on a patch from OpenBSD. 402b15cb3dSCy Schubert 412b15cb3dSCy Schubert 422b15cb3dSCy SchubertChanges in 1.4.12-stable: 432b15cb3dSCy Schubert o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair. 442b15cb3dSCy Schubert o Fix an obscure timing-dependent, allocator-dependent crash in the evdns code. 452b15cb3dSCy Schubert o Use __VA_ARGS__ syntax for varargs macros in event_rpcgen when compiler is not GCC. 462b15cb3dSCy Schubert o Activate fd events in a pseudorandom order with O(N) backends, so that we don't systematically favor low fds (select) or earlier-added fds (poll, win32). 472b15cb3dSCy Schubert o Fix another pair of fencepost bugs in epoll.c. [Patch from Adam Langley.] 482b15cb3dSCy Schubert o Do not break evdns connections to nameservers when our IP changes. 492b15cb3dSCy Schubert o Set truncated flag correctly in evdns server replies. 502b15cb3dSCy Schubert o Disable strict aliasing with GCC: our code is not compliant with it. 512b15cb3dSCy Schubert 522b15cb3dSCy SchubertChanges in 1.4.11-stable: 532b15cb3dSCy Schubert o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen] 542b15cb3dSCy Schubert o Remove the limit on size of HTTP headers by removing static buffers. 552b15cb3dSCy Schubert o Fix a nasty dangling pointer bug in epoll.c that could occur after epoll_recalc(). [Patch from Kevin Springborn] 562b15cb3dSCy Schubert o Distribute Win32-Code/event-config.h, not ./event-config.h 572b15cb3dSCy Schubert 582b15cb3dSCy SchubertChanges in 1.4.10-stable: 592b15cb3dSCy Schubert o clean up buffered http connection data on reset; reported by Brian O'Kelley 602b15cb3dSCy Schubert o bug fix and potential race condition in signal handling; from Alexander Drozdov 612b15cb3dSCy Schubert o rename the Solaris event ports backend to evport 622b15cb3dSCy Schubert o support compilation on Haiku 632b15cb3dSCy Schubert o fix signal processing when a signal callback delivers a signal; from Alexander Drozdov 642b15cb3dSCy Schubert o const-ify some arguments to evdns functions. 652b15cb3dSCy Schubert o off-by-one error in epoll_recalc; reported by Victor Goya 662b15cb3dSCy Schubert o include Doxyfile in tar ball; from Jeff Garzik 672b15cb3dSCy Schubert o correctly parse queries with encoded \r, \n or + characters 682b15cb3dSCy Schubert 692b15cb3dSCy SchubertChanges in 1.4.9-stable: 702b15cb3dSCy Schubert o event_add would not return error for some backends; from Dean McNamee 712b15cb3dSCy Schubert o Clear the timer cache on entering the event loop; reported by Victor Chang 722b15cb3dSCy Schubert o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez 732b15cb3dSCy Schubert o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones. 742b15cb3dSCy Schubert o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn 752b15cb3dSCy Schubert o Fix a typo in setting the global event base; reported by lance. 762b15cb3dSCy Schubert o Fix a memory leak when reading multi-line headers 772b15cb3dSCy Schubert o Fix a memory leak by not running explicit close detection for server connections 782b15cb3dSCy Schubert 792b15cb3dSCy SchubertChanges in 1.4.8-stable: 802b15cb3dSCy Schubert o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov. 812b15cb3dSCy Schubert o Fix a merge problem in which name_from_addr returned pointers to the stack; found by Jiang Hong. 822b15cb3dSCy Schubert o Do not remove Accept-Encoding header 832b15cb3dSCy Schubert 842b15cb3dSCy SchubertChanges in 1.4.7-stable: 852b15cb3dSCy Schubert o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. 862b15cb3dSCy Schubert 872b15cb3dSCy SchubertChanges in 1.4.6-stable: 882b15cb3dSCy Schubert o evutil.h now includes <stdarg.h> directly 892b15cb3dSCy Schubert o switch all uses of [v]snprintf over to evutil 902b15cb3dSCy Schubert o Correct handling of trailing headers in chunked replies; from Scott Lamb. 912b15cb3dSCy Schubert o Support multi-line HTTP headers; based on a patch from Moshe Litvin 922b15cb3dSCy Schubert o Reject negative Content-Length headers; anonymous bug report 932b15cb3dSCy Schubert o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report 942b15cb3dSCy Schubert o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail 952b15cb3dSCy Schubert o Support multiple events listening on the same signal; make signals regular events that go on the same event queue; problem report by Alexander Drozdov. 962b15cb3dSCy Schubert o Deal with evbuffer_read() returning -1 on EINTR|EAGAIN; from Adam Langley. 972b15cb3dSCy Schubert o Fix a bug in which the DNS server would incorrectly set the type of a cname reply to a. 982b15cb3dSCy Schubert o Fix a bug where setting the timeout on a bufferevent would take not effect if the event was already pending. 992b15cb3dSCy Schubert o Fix a memory leak when using signals for some event bases; reported by Alexander Drozdov. 1002b15cb3dSCy Schubert o Add libevent.vcproj file to distribution to help with Windows build. 1012b15cb3dSCy Schubert o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov. 1022b15cb3dSCy Schubert o Fix off-by-one errors in devpoll; from Ian Bell 1032b15cb3dSCy Schubert o Make event_add not change any state if it fails; reported by Ian Bell. 1042b15cb3dSCy Schubert o Do not warn on accept when errno is either EAGAIN or EINTR 1052b15cb3dSCy Schubert 1062b15cb3dSCy SchubertChanges in 1.4.5-stable: 1072b15cb3dSCy Schubert o Fix connection keep-alive behavior for HTTP/1.0 1082b15cb3dSCy Schubert o Fix use of freed memory in event_reinit; pointed out by Peter Postma 1092b15cb3dSCy Schubert o Constify struct timeval * where possible; pointed out by Forest Wilkinson 1102b15cb3dSCy Schubert o allow min_heap_erase to be called on removed members; from liusifan. 1112b15cb3dSCy Schubert o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT. Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility. 1122b15cb3dSCy Schubert o Do not use SO_REUSEADDR when connecting 1132b15cb3dSCy Schubert o Fix Windows build 1142b15cb3dSCy Schubert o Fix a bug in event_rpcgen when generated fixed-sized entries 1152b15cb3dSCy Schubert 1162b15cb3dSCy SchubertChanges in 1.4.4-stable: 1172b15cb3dSCy Schubert o Correct the documentation on buffer printf functions. 1182b15cb3dSCy Schubert o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select. 1192b15cb3dSCy Schubert o Correctly handle timeouts larger than 35 minutes on Linux with epoll.c. This is probably a kernel defect, but we'll have to support old kernels anyway even if it gets fixed. 1202b15cb3dSCy Schubert o Fix a potential stack corruption bug in tagging on 64-bit CPUs. 1212b15cb3dSCy Schubert o expose bufferevent_setwatermark via header files and fix high watermark on read 1222b15cb3dSCy Schubert o fix a bug in bufferevent read water marks and add a test for them 1232b15cb3dSCy Schubert o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents 1242b15cb3dSCy Schubert o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy. 1252b15cb3dSCy Schubert o reduce system calls for getting current time by caching it. 1262b15cb3dSCy Schubert o fix evhttp_bind_socket() so that multiple sockets can be bound by the same http server. 1272b15cb3dSCy Schubert o Build test directory correctly with CPPFLAGS set. 1282b15cb3dSCy Schubert o Fix build under Visual C++ 2005. 1292b15cb3dSCy Schubert o Expose evhttp_accept_socket() API. 1302b15cb3dSCy Schubert o Merge windows gettimeofday() replacement into a new evutil_gettimeofday() function. 1312b15cb3dSCy Schubert o Fix autoconf script behavior on IRIX. 1322b15cb3dSCy Schubert o Make sure winsock2.h include always comes before windows.h include. 1332b15cb3dSCy Schubert 1342b15cb3dSCy SchubertChanges in 1.4.3-stable: 1352b15cb3dSCy Schubert o include Content-Length in reply for HTTP/1.0 requests with keep-alive 1362b15cb3dSCy Schubert o Patch from Tani Hosokawa: make some functions in http.c threadsafe. 1372b15cb3dSCy Schubert o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin 1382b15cb3dSCy Schubert o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks. 1392b15cb3dSCy Schubert o make event methods static so that they are not exported; from Andrei Nigmatulin 1402b15cb3dSCy Schubert o make RPC replies use application/octet-stream as mime type 1412b15cb3dSCy Schubert o do not delete uninitialized timeout event in evdns 1422b15cb3dSCy Schubert 1432b15cb3dSCy SchubertChanges in 1.4.2-rc: 1442b15cb3dSCy Schubert o remove pending timeouts on event_base_free() 1452b15cb3dSCy Schubert o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards 1462b15cb3dSCy Schubert o devpoll and evport need reinit; tested by W.C.A Wijngaards 1472b15cb3dSCy Schubert o event_base_get_method; from Springande Ulv 1482b15cb3dSCy Schubert o Send CRLF after each chunk in HTTP output, for compliance with RFC2626. Patch from "propanbutan". Fixes bug 1894184. 1492b15cb3dSCy Schubert o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values. 1502b15cb3dSCy Schubert o Use a 64-bit field to hold HTTP content-lengths. Patch from Scott Lamb. 1512b15cb3dSCy Schubert o Allow regression code to build even without Python installed 1522b15cb3dSCy Schubert o remove NDEBUG ifdefs from evdns.c 1532b15cb3dSCy Schubert o update documentation of event_loop and event_base_loop; from Tani Hosokawa. 1542b15cb3dSCy Schubert o detect integer types properly on platforms without stdint.h 1552b15cb3dSCy Schubert o Remove "AM_MAINTAINER_MODE" declaration in configure.in: now makefiles and configure should get re-generated automatically when Makefile.am or configure.in chanes. 1562b15cb3dSCy Schubert o do not insert event into list when evsel->add fails 1572b15cb3dSCy Schubert 1582b15cb3dSCy SchubertChanges in 1.4.1-beta: 1592b15cb3dSCy Schubert o free minheap on event_base_free(); from Christopher Layne 1602b15cb3dSCy Schubert o debug cleanups in signal.c; from Christopher Layne 1612b15cb3dSCy Schubert o provide event_base_new() that does not set the current_base global 1622b15cb3dSCy Schubert o bufferevent_write now uses a const source argument; report from Charles Kerr 1632b15cb3dSCy Schubert o better documentation for event_base_loopexit; from Scott Lamb. 1642b15cb3dSCy Schubert o Make kqueue have the same behavior as other backends when a signal is caught between event_add() and event_loop(). Previously, it would catch and ignore such signals. 1652b15cb3dSCy Schubert o Make kqueue restore signal handlers correctly when event_del() is called. 1662b15cb3dSCy Schubert o provide event_reinit() to reintialize an event_base after fork 1672b15cb3dSCy Schubert o small improvements to evhttp documentation 1682b15cb3dSCy Schubert o always generate Date and Content-Length headers for HTTP/1.1 replies 1692b15cb3dSCy Schubert o set the correct event base for HTTP close events 1702b15cb3dSCy Schubert o New function, event_{base_}loopbreak. Like event_loopexit, it makes an event loop stop executing and return. Unlike event_loopexit, it keeps subsequent pending events from getting executed. Patch from Scott Lamb 1712b15cb3dSCy Schubert o Removed obsoleted recalc code 1722b15cb3dSCy Schubert o pull setters/getters out of RPC structures into a base class to which we just need to store a pointer; this reduces the memory footprint of these structures. 1732b15cb3dSCy Schubert o fix a bug with event_rpcgen for integers 1742b15cb3dSCy Schubert o move EV_PERSIST handling out of the event backends 1752b15cb3dSCy Schubert o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly. 1762b15cb3dSCy Schubert o prefix {encode,decode}_tag functions with evtag to avoid collisions 1772b15cb3dSCy Schubert o Correctly handle DNS replies with no answers set (Fixes bug 1846282) 178*a466cc55SCy Schubert o The configure script now takes an --enable-gcc-warnings option that turns on many optional gcc warnings. (Nick has been building with these for a while, but they might be useful to other developers.) 1792b15cb3dSCy Schubert o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions. 1802b15cb3dSCy Schubert o removed linger from http server socket; reported by Ilya Martynov 1812b15cb3dSCy Schubert o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr. 1822b15cb3dSCy Schubert o demote most http warnings to debug messages 1832b15cb3dSCy Schubert o Fix Solaris compilation; from Magne Mahre 1842b15cb3dSCy Schubert o Add a "Date" header to HTTP responses, as required by HTTP 1.1. 1852b15cb3dSCy Schubert o Support specifying the local address of an evhttp_connection using set_local_address 1862b15cb3dSCy Schubert o Fix a memory leak in which failed HTTP connections would not free the request object 1872b15cb3dSCy Schubert o Make adding of array members in event_rpcgen more efficient, but doubling memory allocation 1882b15cb3dSCy Schubert o Fix a memory leak in the DNS server 1892b15cb3dSCy Schubert o Fix compilation when DNS_USE_OPENSSL_FOR_ID is enabled 1902b15cb3dSCy Schubert o Fix buffer size and string generation in evdns_resolve_reverse_ipv6(). 1912b15cb3dSCy Schubert o Respond to nonstandard DNS queries with "NOTIMPL" rather than by ignoring them. 1922b15cb3dSCy Schubert o In DNS responses, the CD flag should be preserved, not the TC flag. 1932b15cb3dSCy Schubert o Fix http.c to compile properly with USE_DEBUG; from Christopher Layne 1942b15cb3dSCy Schubert o Handle NULL timeouts correctly on Solaris; from Trond Norbye 1952b15cb3dSCy Schubert o Recalculate pending events properly when reallocating event array on Solaris; from Trond Norbye 1962b15cb3dSCy Schubert o Add Doxygen documentation to header files; from Mark Heily 1972b15cb3dSCy Schubert o Add a evdns_set_transaction_id_fn() function to override the default 1982b15cb3dSCy Schubert transaction ID generation code. 1992b15cb3dSCy Schubert o Add an evutil module (with header evutil.h) to implement our standard cross-platform hacks, on the theory that somebody else would like to use them too. 2002b15cb3dSCy Schubert o Fix signals implementation on windows. 2012b15cb3dSCy Schubert o Fix http module on windows to close sockets properly. 2022b15cb3dSCy Schubert o Make autogen.sh script run correctly on systems where /bin/sh isn't bash. (Patch from Trond Norbye, rewritten by Hagne Mahre and then Hannah Schroeter.) 2032b15cb3dSCy Schubert o Skip calling gettime() in timeout_process if we are not in fact waiting for any events. (Patch from Trond Norbye) 2042b15cb3dSCy Schubert o Make test subdirectory compile under mingw. 2052b15cb3dSCy Schubert o Fix win32 buffer.c behavior so that it is correct for sockets (which do not like ReadFile and WriteFile). 2062b15cb3dSCy Schubert o Make the test.sh script run unit tests for the evpoll method. 2072b15cb3dSCy Schubert o Make the entire evdns.h header enclosed in "extern C" as appropriate. 2082b15cb3dSCy Schubert o Fix implementation of strsep on platforms that lack it 2092b15cb3dSCy Schubert o Fix implementation of getaddrinfo on platforms that lack it; mainly, this will make Windows http.c work better. Original patch by Lubomir Marinov. 2102b15cb3dSCy Schubert o Fix evport implementation: port_disassociate called on unassociated events resulting in bogus errors; more efficient memory management; from Trond Norbye and Prakash Sangappa 2112b15cb3dSCy Schubert o support for hooks on rpc input and output; can be used to implement rpc independent processing such as compression or authentication. 2122b15cb3dSCy Schubert o use a min heap instead of a red-black tree for timeouts; as a result finding the min is a O(1) operation now; from Maxim Yegorushkin 2132b15cb3dSCy Schubert o associate an event base with an rpc pool 2142b15cb3dSCy Schubert o added two additional libraries: libevent_core and libevent_extra in addition to the regular libevent. libevent_core contains only the event core whereas libevent_extra contains dns, http and rpc support 2152b15cb3dSCy Schubert o Begin using libtool's library versioning support correctly. If we don't mess up, this will more or less guarantee binaries linked against old versions of libevent continue working when we make changes to libevent that do not break backward compatibility. 2162b15cb3dSCy Schubert o Fix evhttp.h compilation when TAILQ_ENTRY is not defined. 2172b15cb3dSCy Schubert o Small code cleanups in epoll_dispatch(). 2182b15cb3dSCy Schubert o Increase the maximum number of addresses read from a packet in evdns to 32. 2192b15cb3dSCy Schubert o Remove support for the rtsig method: it hasn't compiled for a while, and nobody seems to miss it very much. Let us know if there's a good reason to put it back in. 2202b15cb3dSCy Schubert o Rename the "class" field in evdns_server_request to dns_question_class, so that it won't break compilation under C++. Use a macro so that old code won't break. Mark the macro as deprecated. 2212b15cb3dSCy Schubert o Fix DNS unit tests so that having a DNS server with broken IPv6 support is no longer cause for aborting the unit tests. 2222b15cb3dSCy Schubert o Make event_base_free() succeed even if there are pending non-internal events on a base. This may still leak memory and fds, but at least it no longer crashes. 2232b15cb3dSCy Schubert o Post-process the config.h file into a new, installed event-config.h file that we can install, and whose macros will be safe to include in header files. 2242b15cb3dSCy Schubert o Remove the long-deprecated acconfig.h file. 2252b15cb3dSCy Schubert o Do not require #include <sys/types.h> before #include <event.h>. 2262b15cb3dSCy Schubert o Add new evutil_timer* functions to wrap (or replace) the regular timeval manipulation functions. 2272b15cb3dSCy Schubert o Fix many build issues when using the Microsoft C compiler. 2282b15cb3dSCy Schubert o Remove a bash-ism in autogen.sh 2292b15cb3dSCy Schubert o When calling event_del on a signal, restore the signal handler's previous value rather than setting it to SIG_DFL. Patch from Christopher Layne. 2302b15cb3dSCy Schubert o Make the logic for active events work better with internal events; patch from Christopher Layne. 2312b15cb3dSCy Schubert o We do not need to specially remove a timeout before calling event_del; patch from Christopher Layne. 232