1c43e99fdSEd MasteChanges in 1.4.14b-stable 2c43e99fdSEd Maste o Set the VERSION_INFO correctly for 1.4.14 3c43e99fdSEd Maste 4c43e99fdSEd MasteChanges in 1.4.14-stable 5c43e99fdSEd Maste o Add a .gitignore file for the 1.4 branch. (d014edb) 6c43e99fdSEd Maste o Backport evbuffer_readln(). (b04cc60 Nicholas Marriott) 7c43e99fdSEd Maste o Make the evbuffer_readln backport follow the current API (c545485) 8c43e99fdSEd Maste o Valgrind fix: Clear struct kevent before checking for OSX bug. (5713d5d William Ahern) 9c43e99fdSEd Maste o Fix a crash when reading badly formatted resolve.conf (5b10d00 Yasuoka Masahiko) 10c43e99fdSEd Maste o Fix memory-leak of signal handler array with kqueue. [backport] (01f3775) 11c43e99fdSEd Maste o Update sample/signal-test.c to use newer APIs and not leak. (891765c Evan Jones) 12c43e99fdSEd Maste o Correct all versions in 1.4 branch (ac0d213) 13c43e99fdSEd Maste o Make evutil_make_socket_nonblocking() leave any other flags alone. (81c26ba Jardel Weyrich) 14c43e99fdSEd Maste o Adjusted fcntl() retval comparison on evutil_make_socket_nonblocking(). (5f2e250 Jardel Weyrich) 15c43e99fdSEd Maste o Correct a debug message in evhttp_parse_request_line (35df59e) 16c43e99fdSEd Maste o Merge branch 'readln-backport' into patches-1.4 (8771d5b) 17c43e99fdSEd Maste o Do not send an HTTP error when we've already closed or responded. (4fd2dd9 Pavel Plesov) 18c43e99fdSEd Maste o Re-add event_siglcb; some old code _was_ still using it. :( (bd03d06) 19c43e99fdSEd Maste o Make Libevent 1.4 build on win32 with Unicode enabled. (bce58d6 Brodie Thiesfield) 20c43e99fdSEd Maste o Distribute nmake makefile for 1.4 (20d706d) 21c43e99fdSEd Maste o do not fail while sending on http connections the client closed. (5c8b446) 22c43e99fdSEd Maste o make evhttp_send() safe against terminated connections, too (01ea0c5) 23c43e99fdSEd Maste o Fix a free(NULL) in min_heap.h (2458934) 24c43e99fdSEd Maste o Fix memory leak when setting up priorities; reported by Alexander Drozdov (cb1a722) 25c43e99fdSEd Maste o Clean up properly when adding a signal handler fails. (ae6ece0 Gilad Benjamini) 26c43e99fdSEd Maste o Do not abort HTTP requests missing a reason string. (29d7b32 Pierre Phaneuf) 27c43e99fdSEd Maste o Fix compile warning in http.c (906d573) 28c43e99fdSEd Maste o Define _REENTRANT as needed on Solaris, elsewhere (6cbea13) 29c43e99fdSEd Maste 30c43e99fdSEd Maste 31c43e99fdSEd MasteChanges in 1.4.13-stable: 32c43e99fdSEd Maste 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. 33c43e99fdSEd Maste 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. 34c43e99fdSEd Maste o Fix compilation on Android, which forgot to define fd_mask in its sys/select.h 35c43e99fdSEd Maste o Do not drop data from evbuffer when out of memory; reported by Jacek Masiulaniec 36c43e99fdSEd Maste o Rename our replacement compat/sys/_time.h header to avoid build a conflict on HPUX; reported by Kathryn Hogg. 37c43e99fdSEd Maste o Build kqueue.c correctly on GNU/kFreeBSD platforms. Patch pulled upstream from Debian. 38c43e99fdSEd Maste o Fix a problem with excessive memory allocation when using multiple event priorities. 39c43e99fdSEd Maste o When running set[ug]id, don't check the environment. Based on a patch from OpenBSD. 40c43e99fdSEd Maste 41c43e99fdSEd Maste 42c43e99fdSEd MasteChanges in 1.4.12-stable: 43c43e99fdSEd Maste o Try to contain degree of failure when running on a win32 version so heavily firewalled that we can't fake a socketpair. 44c43e99fdSEd Maste o Fix an obscure timing-dependent, allocator-dependent crash in the evdns code. 45c43e99fdSEd Maste o Use __VA_ARGS__ syntax for varargs macros in event_rpcgen when compiler is not GCC. 46c43e99fdSEd Maste 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). 47c43e99fdSEd Maste o Fix another pair of fencepost bugs in epoll.c. [Patch from Adam Langley.] 48c43e99fdSEd Maste o Do not break evdns connections to nameservers when our IP changes. 49c43e99fdSEd Maste o Set truncated flag correctly in evdns server replies. 50c43e99fdSEd Maste o Disable strict aliasing with GCC: our code is not compliant with it. 51c43e99fdSEd Maste 52c43e99fdSEd MasteChanges in 1.4.11-stable: 53c43e99fdSEd Maste o Fix a bug when removing a timeout from the heap. [Patch from Marko Kreen] 54c43e99fdSEd Maste o Remove the limit on size of HTTP headers by removing static buffers. 55c43e99fdSEd Maste o Fix a nasty dangling pointer bug in epoll.c that could occur after epoll_recalc(). [Patch from Kevin Springborn] 56c43e99fdSEd Maste o Distribute Win32-Code/event-config.h, not ./event-config.h 57c43e99fdSEd Maste 58c43e99fdSEd MasteChanges in 1.4.10-stable: 59c43e99fdSEd Maste o clean up buffered http connection data on reset; reported by Brian O'Kelley 60c43e99fdSEd Maste o bug fix and potential race condition in signal handling; from Alexander Drozdov 61c43e99fdSEd Maste o rename the Solaris event ports backend to evport 62c43e99fdSEd Maste o support compilation on Haiku 63c43e99fdSEd Maste o fix signal processing when a signal callback delivers a signal; from Alexander Drozdov 64c43e99fdSEd Maste o const-ify some arguments to evdns functions. 65c43e99fdSEd Maste o off-by-one error in epoll_recalc; reported by Victor Goya 66c43e99fdSEd Maste o include Doxyfile in tar ball; from Jeff Garzik 67c43e99fdSEd Maste o correctly parse queries with encoded \r, \n or + characters 68c43e99fdSEd Maste 69c43e99fdSEd MasteChanges in 1.4.9-stable: 70c43e99fdSEd Maste o event_add would not return error for some backends; from Dean McNamee 71c43e99fdSEd Maste o Clear the timer cache on entering the event loop; reported by Victor Chang 72c43e99fdSEd Maste o Only bind the socket on connect when a local address has been provided; reported by Alejo Sanchez 73c43e99fdSEd Maste o Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones. 74c43e99fdSEd Maste o Clear the timer cache when leaving the event loop; reported by Robin Haberkorn 75c43e99fdSEd Maste o Fix a typo in setting the global event base; reported by lance. 76c43e99fdSEd Maste o Fix a memory leak when reading multi-line headers 77c43e99fdSEd Maste o Fix a memory leak by not running explicit close detection for server connections 78c43e99fdSEd Maste 79c43e99fdSEd MasteChanges in 1.4.8-stable: 80c43e99fdSEd Maste o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov. 81c43e99fdSEd Maste o Fix a merge problem in which name_from_addr returned pointers to the stack; found by Jiang Hong. 82c43e99fdSEd Maste o Do not remove Accept-Encoding header 83c43e99fdSEd Maste 84c43e99fdSEd MasteChanges in 1.4.7-stable: 85c43e99fdSEd Maste o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. 86c43e99fdSEd Maste 87c43e99fdSEd MasteChanges in 1.4.6-stable: 88c43e99fdSEd Maste o evutil.h now includes <stdarg.h> directly 89c43e99fdSEd Maste o switch all uses of [v]snprintf over to evutil 90c43e99fdSEd Maste o Correct handling of trailing headers in chunked replies; from Scott Lamb. 91c43e99fdSEd Maste o Support multi-line HTTP headers; based on a patch from Moshe Litvin 92c43e99fdSEd Maste o Reject negative Content-Length headers; anonymous bug report 93c43e99fdSEd Maste o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report 94c43e99fdSEd Maste o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail 95c43e99fdSEd Maste 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. 96c43e99fdSEd Maste o Deal with evbuffer_read() returning -1 on EINTR|EAGAIN; from Adam Langley. 97c43e99fdSEd Maste o Fix a bug in which the DNS server would incorrectly set the type of a cname reply to a. 98c43e99fdSEd Maste o Fix a bug where setting the timeout on a bufferevent would take not effect if the event was already pending. 99c43e99fdSEd Maste o Fix a memory leak when using signals for some event bases; reported by Alexander Drozdov. 100c43e99fdSEd Maste o Add libevent.vcproj file to distribution to help with Windows build. 101c43e99fdSEd Maste o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov. 102c43e99fdSEd Maste o Fix off-by-one errors in devpoll; from Ian Bell 103c43e99fdSEd Maste o Make event_add not change any state if it fails; reported by Ian Bell. 104c43e99fdSEd Maste o Do not warn on accept when errno is either EAGAIN or EINTR 105c43e99fdSEd Maste 106c43e99fdSEd MasteChanges in 1.4.5-stable: 107c43e99fdSEd Maste o Fix connection keep-alive behavior for HTTP/1.0 108c43e99fdSEd Maste o Fix use of freed memory in event_reinit; pointed out by Peter Postma 109c43e99fdSEd Maste o Constify struct timeval * where possible; pointed out by Forest Wilkinson 110c43e99fdSEd Maste o allow min_heap_erase to be called on removed members; from liusifan. 111c43e99fdSEd Maste o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT. Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility. 112c43e99fdSEd Maste o Do not use SO_REUSEADDR when connecting 113c43e99fdSEd Maste o Fix Windows build 114c43e99fdSEd Maste o Fix a bug in event_rpcgen when generated fixed-sized entries 115c43e99fdSEd Maste 116c43e99fdSEd MasteChanges in 1.4.4-stable: 117c43e99fdSEd Maste o Correct the documentation on buffer printf functions. 118c43e99fdSEd Maste o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select. 119c43e99fdSEd Maste 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. 120c43e99fdSEd Maste o Fix a potential stack corruption bug in tagging on 64-bit CPUs. 121c43e99fdSEd Maste o expose bufferevent_setwatermark via header files and fix high watermark on read 122c43e99fdSEd Maste o fix a bug in bufferevent read water marks and add a test for them 123c43e99fdSEd Maste o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents 124c43e99fdSEd Maste o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy. 125c43e99fdSEd Maste o reduce system calls for getting current time by caching it. 126c43e99fdSEd Maste o fix evhttp_bind_socket() so that multiple sockets can be bound by the same http server. 127c43e99fdSEd Maste o Build test directory correctly with CPPFLAGS set. 128c43e99fdSEd Maste o Fix build under Visual C++ 2005. 129c43e99fdSEd Maste o Expose evhttp_accept_socket() API. 130c43e99fdSEd Maste o Merge windows gettimeofday() replacement into a new evutil_gettimeofday() function. 131c43e99fdSEd Maste o Fix autoconf script behavior on IRIX. 132c43e99fdSEd Maste o Make sure winsock2.h include always comes before windows.h include. 133c43e99fdSEd Maste 134c43e99fdSEd MasteChanges in 1.4.3-stable: 135c43e99fdSEd Maste o include Content-Length in reply for HTTP/1.0 requests with keep-alive 136c43e99fdSEd Maste o Patch from Tani Hosokawa: make some functions in http.c threadsafe. 137c43e99fdSEd Maste o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin 138c43e99fdSEd Maste o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks. 139c43e99fdSEd Maste o make event methods static so that they are not exported; from Andrei Nigmatulin 140c43e99fdSEd Maste o make RPC replies use application/octet-stream as mime type 141c43e99fdSEd Maste o do not delete uninitialized timeout event in evdns 142c43e99fdSEd Maste 143c43e99fdSEd MasteChanges in 1.4.2-rc: 144c43e99fdSEd Maste o remove pending timeouts on event_base_free() 145c43e99fdSEd Maste o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards 146c43e99fdSEd Maste o devpoll and evport need reinit; tested by W.C.A Wijngaards 147c43e99fdSEd Maste o event_base_get_method; from Springande Ulv 148c43e99fdSEd Maste o Send CRLF after each chunk in HTTP output, for compliance with RFC2626. Patch from "propanbutan". Fixes bug 1894184. 149c43e99fdSEd Maste o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values. 150c43e99fdSEd Maste o Use a 64-bit field to hold HTTP content-lengths. Patch from Scott Lamb. 151c43e99fdSEd Maste o Allow regression code to build even without Python installed 152c43e99fdSEd Maste o remove NDEBUG ifdefs from evdns.c 153c43e99fdSEd Maste o update documentation of event_loop and event_base_loop; from Tani Hosokawa. 154c43e99fdSEd Maste o detect integer types properly on platforms without stdint.h 155c43e99fdSEd Maste 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. 156c43e99fdSEd Maste o do not insert event into list when evsel->add fails 157c43e99fdSEd Maste 158c43e99fdSEd MasteChanges in 1.4.1-beta: 159c43e99fdSEd Maste o free minheap on event_base_free(); from Christopher Layne 160c43e99fdSEd Maste o debug cleanups in signal.c; from Christopher Layne 161c43e99fdSEd Maste o provide event_base_new() that does not set the current_base global 162c43e99fdSEd Maste o bufferevent_write now uses a const source argument; report from Charles Kerr 163c43e99fdSEd Maste o better documentation for event_base_loopexit; from Scott Lamb. 164c43e99fdSEd Maste 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. 165c43e99fdSEd Maste o Make kqueue restore signal handlers correctly when event_del() is called. 166c43e99fdSEd Maste o provide event_reinit() to reintialize an event_base after fork 167c43e99fdSEd Maste o small improvements to evhttp documentation 168c43e99fdSEd Maste o always generate Date and Content-Length headers for HTTP/1.1 replies 169c43e99fdSEd Maste o set the correct event base for HTTP close events 170c43e99fdSEd Maste 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 171c43e99fdSEd Maste o Removed obsoleted recalc code 172c43e99fdSEd Maste 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. 173c43e99fdSEd Maste o fix a bug with event_rpcgen for integers 174c43e99fdSEd Maste o move EV_PERSIST handling out of the event backends 175c43e99fdSEd Maste o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly. 176c43e99fdSEd Maste o prefix {encode,decode}_tag functions with evtag to avoid collisions 177c43e99fdSEd Maste o Correctly handle DNS replies with no answers set (Fixes bug 1846282) 178*b50261e2SCy 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.) 179c43e99fdSEd Maste o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions. 180c43e99fdSEd Maste o removed linger from http server socket; reported by Ilya Martynov 181c43e99fdSEd Maste o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr. 182c43e99fdSEd Maste o demote most http warnings to debug messages 183c43e99fdSEd Maste o Fix Solaris compilation; from Magne Mahre 184c43e99fdSEd Maste o Add a "Date" header to HTTP responses, as required by HTTP 1.1. 185c43e99fdSEd Maste o Support specifying the local address of an evhttp_connection using set_local_address 186c43e99fdSEd Maste o Fix a memory leak in which failed HTTP connections would not free the request object 187c43e99fdSEd Maste o Make adding of array members in event_rpcgen more efficient, but doubling memory allocation 188c43e99fdSEd Maste o Fix a memory leak in the DNS server 189c43e99fdSEd Maste o Fix compilation when DNS_USE_OPENSSL_FOR_ID is enabled 190c43e99fdSEd Maste o Fix buffer size and string generation in evdns_resolve_reverse_ipv6(). 191c43e99fdSEd Maste o Respond to nonstandard DNS queries with "NOTIMPL" rather than by ignoring them. 192c43e99fdSEd Maste o In DNS responses, the CD flag should be preserved, not the TC flag. 193c43e99fdSEd Maste o Fix http.c to compile properly with USE_DEBUG; from Christopher Layne 194c43e99fdSEd Maste o Handle NULL timeouts correctly on Solaris; from Trond Norbye 195c43e99fdSEd Maste o Recalculate pending events properly when reallocating event array on Solaris; from Trond Norbye 196c43e99fdSEd Maste o Add Doxygen documentation to header files; from Mark Heily 197c43e99fdSEd Maste o Add a evdns_set_transaction_id_fn() function to override the default 198c43e99fdSEd Maste transaction ID generation code. 199c43e99fdSEd Maste 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. 200c43e99fdSEd Maste o Fix signals implementation on windows. 201c43e99fdSEd Maste o Fix http module on windows to close sockets properly. 202c43e99fdSEd Maste 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.) 203c43e99fdSEd Maste o Skip calling gettime() in timeout_process if we are not in fact waiting for any events. (Patch from Trond Norbye) 204c43e99fdSEd Maste o Make test subdirectory compile under mingw. 205c43e99fdSEd Maste o Fix win32 buffer.c behavior so that it is correct for sockets (which do not like ReadFile and WriteFile). 206c43e99fdSEd Maste o Make the test.sh script run unit tests for the evpoll method. 207c43e99fdSEd Maste o Make the entire evdns.h header enclosed in "extern C" as appropriate. 208c43e99fdSEd Maste o Fix implementation of strsep on platforms that lack it 209c43e99fdSEd Maste o Fix implementation of getaddrinfo on platforms that lack it; mainly, this will make Windows http.c work better. Original patch by Lubomir Marinov. 210c43e99fdSEd Maste o Fix evport implementation: port_disassociate called on unassociated events resulting in bogus errors; more efficient memory management; from Trond Norbye and Prakash Sangappa 211c43e99fdSEd Maste o support for hooks on rpc input and output; can be used to implement rpc independent processing such as compression or authentication. 212c43e99fdSEd Maste 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 213c43e99fdSEd Maste o associate an event base with an rpc pool 214c43e99fdSEd Maste 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 215c43e99fdSEd Maste 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. 216c43e99fdSEd Maste o Fix evhttp.h compilation when TAILQ_ENTRY is not defined. 217c43e99fdSEd Maste o Small code cleanups in epoll_dispatch(). 218c43e99fdSEd Maste o Increase the maximum number of addresses read from a packet in evdns to 32. 219c43e99fdSEd Maste 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. 220c43e99fdSEd Maste 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. 221c43e99fdSEd Maste o Fix DNS unit tests so that having a DNS server with broken IPv6 support is no longer cause for aborting the unit tests. 222c43e99fdSEd Maste 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. 223c43e99fdSEd Maste 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. 224c43e99fdSEd Maste o Remove the long-deprecated acconfig.h file. 225c43e99fdSEd Maste o Do not require #include <sys/types.h> before #include <event.h>. 226c43e99fdSEd Maste o Add new evutil_timer* functions to wrap (or replace) the regular timeval manipulation functions. 227c43e99fdSEd Maste o Fix many build issues when using the Microsoft C compiler. 228c43e99fdSEd Maste o Remove a bash-ism in autogen.sh 229c43e99fdSEd Maste 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. 230c43e99fdSEd Maste o Make the logic for active events work better with internal events; patch from Christopher Layne. 231c43e99fdSEd Maste o We do not need to specially remove a timeout before calling event_del; patch from Christopher Layne. 232