summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Fix a compile warning in event_reinitcompilewarningSebastian Hahn2012-01-31
| | | | Introduced in 272033efe575a9dc7ec6f123a96afba5c69ff1c6
* Make test-changelist fasterNick Mathewson2012-01-27
|
* Check changelist as part of checking representational integrityNick Mathewson2012-01-27
|
* Restore fast-path event_reinit() for slower backendsNick Mathewson2012-01-27
| | | | | | | | | | | | | | We used to use the needs_reinit flag in struct eventop to indicate whether an event backend had shared state across a fork(), and therefore would require us to construct a new event backend. But when we realized that the signal notification fds and the thread notification fds would always be shared across forks, we stopped looking at it. This patch restores the old behavior so that poll, select, and win32select don't need to do a linear scan over all pending fds/signals when they do a reinit. Their life is hard enough already.
* Make event_reinit() more robust and maintainableNick Mathewson2012-01-27
| | | | | | | | | | | | | | | | | | | Previously, event_reinit required a bunch of really dubious hacks, and violated a lot of abstraction barriers to mess around with lists of internal events and "pretend" to re-add them. The new (and fairly well commented!) implementation tries to be much smarter, by isolating the changes as much as possible to the backend state, and minimizing the amount of abstraction violations. Specifically, we now use event_del() to remove events we want to remove, rather than futzing around with queues in event_reinit(). To avoid bogus calls to evsel->del(), we temporarily replace evsel with a null-object stub. Also, we now push the responsibility for calling evsel->add() down into the evmap code, so that we don't actually need to unlink and re-link all of our events.
* Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-26
|\
| * Better workaround for Linux 3.2 edge-triggered epoll bugNick Mathewson2012-01-26
| | | | | | | | | | On further investigation, it appears that this problem is limited to AF_UNIX sockets, so let's just do the test on AF_INET sockets.
* | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-24
|\ \ | |/
| * Do a memberwise comparison of threading function tablesNate R2012-01-24
| | | | | | | | | | Doing a memcmp risks comparing uninitialized padding bytes at the end of the structure.
* | When including an -internal.h header outside the main tree, do so earlyNick Mathewson2012-01-24
| | | | | | | | | | | | | | | | | | | | Some of our unit tests and sample code need functions and structures defined in an -internal.h header. But that can freak out OpenSolaris, where stdio.h wants to define _FILE_OFFSET_BITS unless it's already defined, and then evconfig-internal.h defines it. Regular users should never ever use our -internal.h headers, so the solution is to make sure that if we're going to use them ourselves, we do so before system headers.
* | Allow more slop in deferred_cb_skew test; freebsd needs itNick Mathewson2012-01-24
| |
* | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-24
|\ \ | |/
| * Make event_base integrity check work on windowsNick Mathewson2012-01-24
| |
| * Start writing a changelog for 2.0.17-stableNick Mathewson2012-01-24
| |
* | Remove a couple of now-unused variablesNick Mathewson2012-01-24
| |
* | Use test_timeval_diff_eq more consistentlyNick Mathewson2012-01-24
| |
* | Make regression tests run over 3x faster.Nick Mathewson2012-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | This was mainly a matter of reducing timeouts and delays, paying special attention to every test that took longer than a second to finish. We could do better here; IMO anything over .7 sec is probably too long, but it's a big win as it is. Remember, interactive computing is a big win over batch processing: anything that makes you get up and walk away from the terminal might as well be making you carry your punch cards over to the mainframe.
* | New evhttp function to adjust initial retry timeoutNick Mathewson2012-01-24
| |
* | Reduce the timeout in the main/fork test.Nick Mathewson2012-01-24
| | | | | | | | There was no reason for it to be so long, except for the lack of a usleep
* | Add an (internal) usleep function for use by unit testsNick Mathewson2012-01-24
| |
* | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-24
|\ \ | |/
| * Oops:remove an accidentally committed "sleep(1)" in a unit testNick Mathewson2012-01-24
| |
* | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-24
|\ \ | |/
| * Workaround in the unit tests for an apparent epoll bug in Linux 3.2Nick Mathewson2012-01-24
| |
* | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-24
|\ \ | |/ | | | | | | | | | | | | Conflicts: event.c Edits required in: evmap.c
| * Fix a fd leak in event_reinit()Nick Mathewson2012-01-23
| | | | | | | | We were supposed to be closing the ev_signal_pair sockets.
| * Fix a list corruption bug when using event_reinit() with signals presentNick Mathewson2012-01-23
| | | | | | | | | | | | | | | | | | While re-adding all the events, event_reinit() could add a signal event, which could then cause evsig_add() to add the base->sig.ev_signal event. Later on its merry path through base->eventqueue, event_reinit() would find that same event and give it to event_io_add a second time. This would make the ev_io_next list for that fd become circular. Ouch!
| * Check event_base correctness at end of each unit testNick Mathewson2012-01-23
| |
| * Add function to check referential integrity of an event_baseNick Mathewson2012-01-21
| |
* | Fix compilation of windows evutil_check_ifaddrsNick Mathewson2012-01-22
| |
* | Merge remote-tracking branch 'github/linked_list'Nick Mathewson2012-01-20
|\ \ | | | | | | | | | | | | Conflicts: include/event2/event_struct.h
| * | Use LIST rather than TAILQ for bufferevent_rate_limit_group membersNick Mathewson2010-04-09
| | | | | | | | | | | | | | | | | | Once again, there's no reason to keep these lists in the order we were keeping them in. Every time we needed to traverse them for any important purpose, we started at a random point anyway.
| * | Use LIST rather than TAILQ for evbuffer callbacksNick Mathewson2010-04-09
| | | | | | | | | | | | | | | | | | There's no reason to traverse these out-of-order, and we never defined the order that you'd get your callbacks on an evbuffer if you happened to add more than one.
| * | Use LIST rather than TAILQ for evmap_io and evmap_signalNick Mathewson2010-04-09
| | | | | | | | | | | | | | | | | | These structures used TAILQ for the lists of events waiting on a single fd or signal. But order doesn't matter for these lists; only the order of the active events lists actually matters.
| * | Add LIST_ delaration to event_struct.h to supplment TAILQ_Nick Mathewson2010-04-09
| | | | | | | | | | | | | | | | | | | | | Generally, LIST_ can be a little faster than TAILQ_ for most operations. We only need to use TAILQ_ when we care about traversing lists from tail-to-head, or we need to be able to add items to the end of the list.
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-20
|\ \ \ | | |/ | |/|
| * | Force strict validation of HTTP version in response.Catalin Patulea2012-01-20
| | | | | | | | | | | | This sometimes accepted invalid versions like 'ICY' (n = 0, major = undefined, sometimes > 1).
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-16
|\ \ \ | |/ /
| * | Suppress a gcc warning from ignoring fwrite return in http-sample.cNick Mathewson2012-01-16
| | | | | | | | | | | | Found by Steve Snyder
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-09
|\ \ \ | |/ /
| * | Fix a race condition in the dns/bufferevent_connect_hostname test.Nick Mathewson2012-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As originally written, the test would only pass if the accept() callbacks for the evconnlistener were all invoked before the last of the CONNECTED/ERROR callbacks for the connecting/resolving bufferevent had its call to event_base_loopexit() complete. But this was only accidentally true in 2.0, and might not be true at all in 2.1 where we schedule event_base_once() callbacks more aggressively. Found by Sebastian Hahn.
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2012-01-09
|\ \ \ | |/ /
| * | Make evconnlistener work around bug in older Linux when getting nmappedNick Mathewson2012-01-09
| | | | | | | | | | | | | | | | | | Older Linuxes sometimes respond to some nmap probes by having accept() return a success but with socklen 0. That can lead to confusing behavior when you go to process the sockaddr.
| * | Remove bogus casts of socket to int before calling ev_callbackNick Mathewson2012-01-09
| | | | | | | | | | | | | | | | | | This should make 64-bit windows act better. Found by Mark Heily.
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2011-12-14
|\ \ \ | |/ /
| * | Backport evhttp_connection_get_bufferevent to Libevent 2.0Arno Bakker2011-12-14
| | | | | | | | | | | | Backport by Arno Bakker; original implementation in 8d3a8500f4
* | | Merge remote-tracking branch 'origin/patches-2.0'Nick Mathewson2011-12-08
|\ \ \ | |/ /
| * | Slightly clarify evbuffer_peek documentationNick Mathewson2011-12-08
| | |
| * | Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)Zack Weinberg2011-12-08
| | | | | | | | | | | | | | | (Patch altered by nickm to not affect the behavior of evbuffer_peek(buf,-1,NULL,vec,n_vec).)
* | | Remove some accidentally-committed debugging codeNick Mathewson2011-12-08
| | |