ChangeLog


Log

Author Commit Date CI Message
Nick Mathewson 12199fa7 2009-07-28T17:11:03 Fix segfault during failed allocatino of locked evdns base. We need to comb the rest of the code to make sure that we don't blindly wrap functions in LOCK(x), UNLOCK(x) when those functions might contain a FREE(x) in the middle. Rocco Carbone found and reported this bug. svn:r1384
Nick Mathewson f8b527e6 2009-07-28T05:09:06 Fix a dumb bug where we would allocate too little memory in event_get_supported_methods(). svn:r1383
Nick Mathewson 709c21c4 2009-07-28T04:03:57 Bufferevent support for openssl. This code adds a new Bufferevent type that is only compiled when the openssl library is present. It supports using an SSL object and an event alert mechanism, which can either be an fd or an underlying bufferevent. There is still more work to do: the unit tests are incomplete, and we need to support flush and shutdown much better. Sometimes events are generated needlessly: this will hose performance. There's a new encrypting proxy in sample/le-proxy.c. This code has only been tested on OSX, and nowhere else. svn:r1382
Nick Mathewson e8400a43 2009-07-20T14:55:35 Rename encode_int(64) to avoid polluting the global namespace. They're now called evtag_encode_int(64). The old names are available as macros in event2/tag_compat.h. Also, add unit tests for encode/decode_int64. svn:r1365
Nick Mathewson 9fcd84d1 2009-07-14T19:19:45 Include disabled methods in event_get_supported_methods() output. Previously, events that were disabled using EVENT_NO* were left out of event_get_supported_methods(). This was wrong, broke unit tests (under some circumstances) and left the user with no good way to tell which methods were actually compiled in. Fixes bug 2821015. svn:r1344
Nick Mathewson 6b4b77a2 2009-07-14T16:54:48 Make event_del(E) block while E is running in another thread. This gives you the property that once you have called event_del(E), you know that E is no longer running or pending or active at all, and so it is safe to delete the resource used by E's callback. svn:r1341
Nick Mathewson d3a8ccb8 2009-07-10T19:38:16 Change use of AC_CHECK_LIB to AC_SEARCH_LIBS. Patch from Zack Weinberg. His message: This one eliminates all use of AC_CHECK_LIB in the configure script. AC_CHECK_LIB has a serious flaw: if the library you mention *exists* but is not *necessary* for the function you want, it adds it to $(LIBS) anyway. This was fine in the days of static libraries, because the linker would ignore an .a library that didn't contain anything you needed. However, ELF shared libraries are different (let's not get into why): the linker will by default record a DT_NEEDED entry for every shared object mentioned on the link command line. Thus, every use of AC_CHECK_LIB is a potential unnecessary DT_NEEDED, making extra work for the dynamic loader. The cure is simply to use AC_SEARCH_LIBS instead; it first tries to find the function you ask for in libc, and only if that doesn't work does it try to use the extra library you mention. For the same reasons, pkg-config .pc files should distinguish between the libraries to use for shared linkage (Libs:) and the additional libraries needed for static linkage (Libs.private:). I have also made that correction in this patch. I also took the opportunity to clean up the substitution variables a little and make absolutely sure that the core library does not get linked against zlib. svn:r1338
Nick Mathewson a501d683 2009-07-10T19:34:00 Add a lock/unlock pair inside the event callbacks in bufferevents. This fixes part of bug 2800642, I believe, though there is still a general race condition in multithreaded use of events that we need to think about. svn:r1337
Niels Provos 6469598e 2009-07-03T17:43:26 Allow C identifiers as struct names; allow multiple comments in .rpc files; from Zack Weinberg; plus a tiny tweak svn:r1336
Niels Provos fbb181d1 2009-07-03T17:31:17 Allow specifying the output filename for rpcgen; based on work by jmansion; patch from Zack Weinberg. svn:r1335
Niels Provos bbcc54ef 2009-07-03T17:25:45 fix preamble of rpcgen-generated files to rely on event2 includes; based on work by jmansion; patch from Zack Weinberg. svn:r1334
Niels Provos 37d3e16c 2009-07-03T17:20:56 Raise RpcGenError in event_rpcgen.py; from jmanison and Zack Weinberg svn:r1333
Nick Mathewson 342ad355 2009-06-30T14:23:18 The truncated bit is in the 3rd byte of a dns reply, not the 4th. [fwd-port] svn:r1332
Nick Mathewson d1ffba1d 2009-06-05T19:52:13 Replace some read/write instances with send/recv to work properly on win32. svn:r1324
Nick Mathewson cdaca02c 2009-05-27T15:35:00 Activate fd events in a pseudorandom order on older backends. New backends like poll and kqueue and so on add fds to the queue in the order that they are triggered. But the select backend currently activates low-numbered fds first, whereas the poll and win32 backends currently favor whatever fds have been on for the longest. This is no good for fairness. svn:r1318
Nick Mathewson 8c66eb2e 2009-05-22T14:48:40 Try to contain the failure when we are running without socketpair(). Some win32 systems (mostly those using Kaspersky, it would seem) prevent us from faking socketpair(). This makes our signal notification code just not work. Our response since 1.4 has been to assert. For users who would rather work without signals than not work at all, this has been a regression from 1.3e. This patch makes adding signal events fail in this case; there's no reason to kill the whole process. svn:r1303
Nick Mathewson 59cd4936 2009-05-22T14:31:07 Do not free the event base lock until we are done removing all the events. Spotted by Joachim Bauch; fixes bug 2795402. svn:r1302
Nick Mathewson 59484297 2009-05-20T12:24:13 Fix a deadlock: there were some LOCKs that should have been UNLOCKs. Resolves bug 2794244 svn:r1298
Nick Mathewson 66df9daf 2009-05-19T21:49:53 Add changelog for last commit svn:r1297
Nick Mathewson dc4c7b95 2009-05-15T22:44:18 Change the interface of evbuffer_add_reference: give the cleanup function more info. svn:r1294
Nick Mathewson bba69e03 2009-05-15T20:23:59 New semantics for evbuffer_cb_set_flags(). Previously, set_flags() would replace all previous user-visible flags. Now it just sets the flags, and there is a clear_flags() function to clear other flags. svn:r1293
Nick Mathewson b4886ec8 2009-05-15T18:44:44 Trim 22 bytes from struct event on 32 bit platforms, more on 64-bit platforms. svn:r1292
Nick Mathewson 31d89f27 2009-05-13T20:37:21 Add a "ctrl" mechanism to bufferevents for property access. OpenSSL uses something like this to implement get/set access for properties on its BIOs, so that it doesn't need to add a pair of get/set functions to the vtable struct for every new abstract property it provides an accessor for. Doing this lets us make bufferevent_setfd abstract, and implement an abstract bufferevent_getfd. svn:r1284
Nick Mathewson 83f46e51 2009-05-13T20:36:56 Do not use the "evbuffer_" prefix to denote parts of bufferevents. This is a bit of an interface doozy, but it's really needed in order to be able to document this stuff without apologizing it. This patch does the following renamings: evbuffercb -> bufferevent_data_cb everrorcb -> bufferevent_event_cb EVBUFFER_(READ,WRITE,...) -> BEV_EVENT_(...) EVBUFFER_(INPUT,OUTPUT) -> bufferevent_get_(input,output) All the old names are available in event2/bufferevent_compat.h svn:r1283
Nick Mathewson f11dff2c 2009-05-07T03:45:51 Add and use locale-independent strcasecmp functions. svn:r1280
Nick Mathewson 659d54d5 2009-05-05T02:59:26 Add new code to make and accept connections. This is stuff that it's easy to get wrong (as I noticed when writing bench_http), and that takes up a fair amount of space (see http.c). Also, it's something that we'll eventually want to abstract to use IOCP, where available. svn:r1272
Nick Mathewson 0fd70978 2009-05-05T01:09:03 Add an event_get_base() function to remove one more reason to include event_struct.h svn:r1271
Nick Mathewson 0e63e72a 2009-05-03T18:56:08 Nothing ever sets event_sigcb or event_gotsig any more: remove them. svn:r1270
Nick Mathewson d5ca0763 2009-05-02T16:23:29 Move event_set() and friends to event2/event_compat.h. These functions are deprecated in favor of event_assign(). svn:r1267
Nick Mathewson a109d95c 2009-05-02T16:11:06 Add changelog entry for vc++ fixes svn:r1264
Nick Mathewson 2ebfd3ba 2009-04-28T19:08:17 Oops. We never actually defined event_config_set_flag(). svn:r1246
Niels Provos b228ff91 2009-04-25T00:15:31 remove vararg macros for accessing evrpc structs svn:r1243
Niels Provos 5c4c13d8 2009-04-24T03:24:22 make sendfile work on freebsd svn:r1239
Nick Mathewson a5897917 2009-04-23T21:43:44 Changelog entry for r1237 svn:r1238
Nick Mathewson faa756c7 2009-04-23T21:34:37 Oops. event_config.flags was never initialized. Bugfix on 2.0.1-alpha. Found by Victor Goya. svn:r1236
Nick Mathewson 9516df0e 2009-04-23T05:40:06 Fix c89 bugs reported by Cory Stup. Others may remain. I wasn't able to get gcc --std=c89 to build libevent at all, so I don't know what compiler the original reporter is using here. Note that this change requires us to disable the part of our rpc code that uses variadic macros when using a non-gcc compiler. This is a problem if we want our rpc api to be portable. svn:r1231
Nick Mathewson df0617f2 2009-04-23T00:21:23 Use signal.h, not sys/signal.h. This is patch 2673214 from mmadia. It is correct, since we unconditionally include signal.h in many other places, and only sometimes include sys/signal.h. It is necessary to compile on Haiku, I'm told. svn:r1228
Nick Mathewson 8b7a3b36 2009-04-23T00:01:24 Fix min_heap_erase when we remove an element from the middle of the heap. Previously, we could lose the heap property when we removed an item whose parent was greater than the last element in the heap. We would replace the removed item with the last element, and consider shifting it down, but we wouldn't consider shifting it up. Patch from Marko Kreen. svn:r1226
Nick Mathewson 253151c5 2009-04-22T20:28:30 Detect and reject n_priorities less than 1. svn:r1222
Nick Mathewson 01bda2b8 2009-04-22T20:27:21 Add forgotten changelog. svn:r1221
Nick Mathewson d3fbe7fa 2009-04-21T18:47:53 Do not free the signal index unless it was at some point allocated svn:r1217
Nick Mathewson b7907a7b 2009-04-19T01:59:25 Note dns work in changelog and whatsnew svn:r1206
Nick Mathewson a98a512b 2009-04-17T23:12:34 Add a generic way for any bufferevent to make its callback deferred svn:r1197
Nick Mathewson e3d82497 2009-04-10T14:21:53 Don't allow internal events to starve lower-priority events. This is exceptionally important with multithreaded stuff, where we use an event to notify the base that other events have been made active. If the activated events have a prioirty number greater than that of the notification event, it will starve them, and that's no good. svn:r1149
Niels Provos ce146eb1 2009-04-10T05:43:45 Fix parsing of queries where the encoded queries contained \r, \n or + svn:r1148
Nick Mathewson 72b6ffe8 2009-04-08T03:05:42 Prevent unsupported modifications to bufferevent_sock buffers. In particular, we don't allow adding any data to end front of inbuf (we do that when we read), or removing it from the front of outbuf (we drain data only when we write). svn:r1144
Nick Mathewson 747331d1 2009-04-08T03:04:39 Add freeze support to evbuffers. From the documentation: Prevent calls that modify an evbuffer from succeeding. A buffer may frozen at the front, at the back, or at both the front and the back. If the front of a buffer is frozen, operations that drain data from the front of the buffer, or that prepend data to the buffer, will fail until it is unfrozen. If the back a buffer is frozen, operations that append data from the buffer will fail until it is unfrozen. We'll use this to ensure correctness on an evbuffer when we're waiting for an overlapped IO call to finish. svn:r1143
Nick Mathewson 77c80b8d 2009-02-11T17:24:11 New bind-to option to allow DNS clients to bind to arbitrary ports for their outgoing addresses. svn:r1119
Nick Mathewson c7b2f8fd 2009-02-10T19:38:05 New function to abstract SO_REUSEADDR. svn:r1102
Niels Provos fdf69493 2009-01-27T06:05:38 sendfile/mmap and memory reference implementation for evbuffers svn:r1057
Niels Provos 56ea4687 2009-01-22T02:33:38 Change the semantics of timeouts in conjunction with EV_PERSIST; timeouts in that case will now repeat until deleted. svn:r1032
Nick Mathewson 309fc7c4 2009-01-21T07:51:25 New functions to provide sane threading callbacks with pthreads and win32 threading implementations. svn:r1031
Nick Mathewson f6eb1f81 2009-01-19T21:53:03 Change evbuffer_read implementation to split data across chunks, and use readv when available. This should make us use less space. svn:r1024
Nick Mathewson a5901991 2009-01-19T20:37:24 Use eventfd for main-thread notification where available (i.e., linux). svn:r1023
Nick Mathewson 99db0e7f 2009-01-12T20:42:19 Add a new evbuffer_write_atmost() functino to write no more than a given number of bytes to an fd. svn:r993
Nick Mathewson 135591ae 2009-01-02T20:46:35 Change the type of nameserver.address from u32 to sockaddr_storage, so that we can handle nameservers at IPv6 addresses. svn:r985
Nick Mathewson 0d9d5cfe 2009-01-02T20:46:12 New functions in evutil to clone inet_pton and inet_ntop, with tests. Adapted from Tor code. svn:r983
Niels Provos 02b2b4d1 2008-12-23T16:37:01 Restructure the event backends so that they do not need to keep track of events themselves, as a side effect multiple events can use the same fd or signal. svn:r972
Niels Provos f700566c 2008-12-19T21:31:43 Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it svn:r963
Nick Mathewson dd731685 2008-12-03T20:09:13 Implement increased DSN-poisoning resistance via the 0x20 hack. svn:r958
Niels Provos 4fa4a562 2008-11-27T19:57:48 fix a typo in setting the global event base; reported by lance svn:r953
Niels Provos 4fe25cef 2008-11-27T19:27:33 Clear the timer cache when leaving the event loop; reported by Robin Haberkorn svn:r950
Niels Provos 5792d42f 2008-11-16T23:22:14 Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones svn:r948
Niels Provos 50202d75 2008-11-15T05:27:23 only bind the socket on connect when a local address has been provided; reported by Ajejo Sanchez svn:r946
Niels Provos 31cfe526 2008-10-30T19:38:31 clear the timer cache on entering event loop; reported by Victor Chang svn:r944
Niels Provos b3d6a569 2008-09-07T23:24:54 do not remove accept-encoding header in make request svn:r938
Nick Mathewson de069b99 2008-09-05T16:29:56 On win32, errno is not the last socket error. Worse, WSAGetLastError() is not the last socket error sometimes (i.e., EWOULDBLOCK). Also, strerror() does not handle winsock errors. Therefore, event_err() and event_warn() are completely wrong for windows socket errors. Fix that. svn:r936
Niels Provos a710d817 2008-08-30T23:19:49 Match the query in DNS replies to the query in the request; from Vsevolod Stakhov svn:r930
Niels Provos c968eb3e 2008-08-19T11:26:47 Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. svn:r928
Niels Provos cca2f8fa 2008-07-25T01:29:54 make event_add not change any state if it fails; repoted by Ian Bell svn:r923
Niels Provos 1aa6826f 2008-07-25T01:18:40 fix off by one errors in devpoll; from Ian Bell svn:r921
Niels Provos e67a5ea9 2008-07-25T00:19:15 fix a problem with epoll and event_reinit; reported by Alexander Drozdov svn:r917
Niels Provos c4af6211 2008-07-11T16:11:16 forgot to add Alexander Drozdov as bug reporter in ChangeLog svn:r905
Niels Provos f7e61870 2008-07-11T15:49:04 support multiple events listening on the same signal; make signals regular events that go on the same event queue svn:r901
Niels Provos 5512be01 2008-07-11T15:15:04 fix a bug where deleting signals with kqueue would delete subsequent adds svn:r899
Niels Provos df97fca9 2008-07-02T06:08:16 From Scott Lamb: * Allow the user to set the Content-Length: then stream a reply. This is useful for large requests of a known size. Added unit test. * Don't send a response body on HEAD requests, 1xx status codes, 204 status codes, or 304 status codes, as described in RFC 2616 section 4.3. (Doing otherwise causes problems - in particular, if a 304 has a chunked body (even an empty one), Safari 3.1.1 issues and then fails the next request on the connection with the non-sequitur error message "Too many HTTP redirects"!) * Specify a default Content-Type: when a response body is required, not when we have data in the response buffer by the time we make the header. (I.e., do this on evhttp_send_reply_start() for consistency.) * Don't expect a body in response to HEAD requests. svn:r898
Niels Provos 409236a7 2008-07-02T04:39:09 detect CLOCK_MONOTONIC at runtime for evdns svn:r896
Niels Provos 707f6784 2008-07-02T04:22:48 reject negative content-length headers svn:r894
Niels Provos cb7c3bd6 2008-06-29T01:30:06 support multi-line http headers; based on a patch from Moshe Litvin svn:r890
Niels Provos 9998c0cb 2008-06-26T00:40:57 correct handling of trailing headers in chunked replies; from Scott Lamb. svn:r887
Niels Provos 99a1063e 2008-06-21T02:21:25 support 64-bit integers in rpc structs svn:r856
Niels Provos 4c56ba1c 2008-06-20T06:52:13 do not use SO_REUSEADDR when connecting svn:r854
Nick Mathewson 2baaac7f 2008-06-14T17:50:36 Forward-port: Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT, but keep the INPUT/OUTPUT aliases on non-win32 platforms to maintain backwards compatibility. svn:r852
Niels Provos a6ce520c 2008-06-12T14:43:35 allow min_heap_erase to be called on removed members; from liusifan svn:r849
Niels Provos 344c2b56 2008-06-02T05:45:26 deliver partial data to request callbacks when chunked callback is set even if there is no chunking on the http level; allows cancelation of requests from within the chunked callback; from Scott Lamb. svn:r846
Nick Mathewson 05965921 2008-05-31T14:37:31 Add new functions to access backends by their features and to query the features of a backend. svn:r842
Nick Mathewson 39400e68 2008-05-30T16:56:34 Patch from Valery Kholodkov: support for edge-triggered events with epoll and kqueue. Changed from original patch: made test into a regression test, with explicit success/failure for edge-triggered and non-edge-triggered cases. Closes SF request 1968284. svn:r840
Nick Mathewson 9ca7a3a3 2008-05-30T16:19:01 Resolve two conflicts. svn:r839
Niels Provos 2deb3ce0 2008-05-29T01:39:43 simplify handling of environment variables for disabling backends; make event_get_supported_methods obey environment variables; this fixes make verify; problem reported by Scott Lamb. svn:r838
Niels Provos 8b66f1bd 2008-05-17T02:14:17 constify struct timeval * svn:r836
Niels Provos 134344b7 2008-05-16T01:55:40 Fix use of freed memory in event_reinit; pointed out by Peter Postma svn:r834
Niels Provos ec3956ba 2008-05-15T01:53:48 fix connection keep-alive behavior for HTTP/1.0 svn:r822
Nick Mathewson c6da86ff 2008-05-12T16:44:24 r19709@catbus: nickm | 2008-05-12 12:42:48 -0400 Possible fix for [1960723] snprintf and vsnprintf return values are wrong on win32 svn:r813
Niels Provos 1080852e 2008-05-12T03:12:09 allow cancelation of user initiated http requests; this will allow cancelation of rpc requests eventually svn:r812
Nick Mathewson 64ce7990 2008-05-08T23:57:31 r15555@tombo: nickm | 2008-05-08 19:56:51 -0400 fwd-port The IRIX compiler thinks #error means warn. Fix configure.in to tolerate this. svn:r801
Nick Mathewson a26442c5 2008-05-08T14:06:33 r19649@catbus: nickm | 2008-05-08 10:00:14 -0400 Replace gettimeofday() usage with a new evutil_gettimeofday(). This removes all previous need for win32-code/misc.[ch] svn:r792
Niels Provos 85ed7133 2008-05-08T07:00:16 deprecate timeout_* event functions by moving them to event_compat.h svn:r791
Niels Provos de1c4392 2008-05-08T06:15:04 migrate evhttp to event2; accessors are still missing svn:r790
Niels Provos 3f56e364 2008-05-08T05:56:20 event_base_new_with_config() and related methods svn:r789
Niels Provos 3b2022ef 2008-05-08T05:33:15 provide an api for retrieving the supported event mechanisms svn:r788