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