aboutsummaryrefslogtreecommitdiff
path: root/src/common/compat_libevent.c
Commit message (Collapse)AuthorAge
* Get Libevent's PRNG functioning under the linux sandboxNick Mathewson2014-04-16
| | | | | | | | | | | | | | Libevent uses an arc4random implementation (I know, I know) to generate DNS transaction IDs and capitalization. But it liked to initialize it either with opening /dev/urandom (which won't work under the sandbox if it doesn't use the right pointer), or with sysctl({CTL_KERN,KERN_RANDOM,RANDOM_UUIC}). To make _that_ work, we were permitting sysctl unconditionally. That's not such a great idea. Instead, we try to initialize the libevent PRNG _before_ installing the sandbox, and make sysctl always fail with EPERM under the sandbox.
* Fix whitespace errors, all of them mine.Nick Mathewson2014-03-05
|
* Merge remote-tracking branch 'public/bug10169_024' into bug10169_025_v2Nick Mathewson2014-03-04
|\ | | | | | | | | | | Conflicts: src/common/compat_libevent.h src/or/relay.c
| * Merge remote-tracking branch 'public/bug10169_023' into bug10169_024Nick Mathewson2014-03-04
| |\ | | | | | | | | | | | | Conflicts: src/or/relay.c
| | * Monotonize the OOM-killer data timersNick Mathewson2014-02-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a couple of places, to implement the OOM-circuit-killer defense against sniper attacks, we have counters to remember the age of cells or data chunks. These timers were based on wall clock time, which can move backwards, thus giving roll-over results for our age calculation. This commit creates a low-budget monotonic time, based on ratcheting gettimeofday(), so that even in the event of a time rollback, we don't do anything _really_ stupid. A future version of Tor should update this function to do something even less stupid here, like employ clock_gettime() or its kin.
* | | Add tests for buffer time tracking.Nick Mathewson2014-02-12
| | |
* | | Added --library-versions flag to print the compile time and runtime versions ↵Kevin Butler2013-09-01
|/ / | | | | | | of libevent, openssl and zlib. Partially implements #6384.
* | Rename log() to tor_log() for loggingNick Mathewson2013-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | This is meant to avoid conflict with the built-in log() function in math.h. It resolves ticket 7599. First reported by dhill. This was generated with the following perl script: #!/usr/bin/perl -w -i -p s/\blog\(LOG_(ERR|WARN|NOTICE|INFO|DEBUG)\s*,\s*/log_\L$1\(/g; s/\blog\(/tor_log\(/g;
* | More of b30d06255c24165 for #6826: fix compat_libevent compilationNick Mathewson2013-01-21
| | | | | | | | | | | | | | | | It looks like there was a compilation error for 6826 on some platforms. Removing even more now-uncallable code to handle detecting libevent versions before 1.3e. Fixes bug 8012; bug not in any released Tor.
* | Even more code-removal for 6826Nick Mathewson2013-01-17
| | | | | | | | (Pull on a thread and the whole sweater unravels.)
* | Drop detection logic for pre-1.3 busted libeventsNick Mathewson2013-01-17
| | | | | | | | | | | | | | | | This won't actually break them any worse than they were broken before: it just removes a set of warnings that nobody was actually seeing, I hope. Closes 6826
* | Update the copyright date to 201.Nick Mathewson2013-01-16
| |
* | Don't log about Libevent/OpenSSL initialization when all's wellNick Mathewson2012-09-06
|/ | | | | OTOH, log the Libevent and OpenSSL versions on the first line when we're starting Tor.
* Whitespace fixNick Mathewson2012-06-15
|
* Move tor_gettimeofday_cached() into compat_libeventNick Mathewson2012-06-15
|
* Update copyright dates to 2012; add a few missing copyright statementsNick Mathewson2012-06-04
|
* Add about 60 more DOCDOC comments to 0.2.3Nick Mathewson2012-06-04
| | | | | | | | Also, try to resolve some doxygen issues. First, define a magic "This is doxygen!" macro so that we take the correct branch in various #if/#else/#endifs in order to get the right documentation. Second, add in a few grouping @{ and @} entries in order to get some variables and fields to get grouped together.
* Use the standard _WIN32, not the Torism MS_WINDOWS or deprecated WIN32Nick Mathewson2012-01-31
| | | | | | | | | | | This commit is completely mechanical; I used this perl script to make it: #!/usr/bin/perl -w -i.bak -p if (/^\s*\#/) { s/MS_WINDOWS/_WIN32/g; s/\bWIN32\b/_WIN32/g; }
* appease check-spacesSebastian Hahn2011-12-08
| | | | | | This re-applies f77f9bddb8bf0dd6e9c3e0d94269aa23f459a272 which got accidentally reverted in 53f535aeb863204470379b2da4631770fa10b13f. Thanks asn for spotting this.
* Revert "Use callback-driven approach to block renegotiations."Nick Mathewson2011-12-06
| | | | This reverts commit 406ae1ba5ad529a4d0e710229dab6ed645d42b50.
* Revert "appease check-spaces"Nick Mathewson2011-12-06
| | | | This reverts commit f77f9bddb8bf0dd6e9c3e0d94269aa23f459a272.
* Revert "Refactor tor_event_base_once to do what we actually want"Nick Mathewson2011-12-06
| | | | This reverts commit 7920ea55b8d994268d2b07f27316b0f34d8f27e5.
* Revert "use event_free() wrapper; fix bug 4582"Nick Mathewson2011-12-06
| | | | This reverts commit 9a88c0cd32df53116a6bbb6b961650943755061c.
* Revert "Make pending libevent actions cancelable"Nick Mathewson2011-12-06
| | | | This reverts commit aba25a6939a5907d40dbcff7433a8c130ffd12ad.
* Make pending libevent actions cancelableNick Mathewson2011-11-29
| | | | | This avoids a dangling pointer issue in the 3412 code, and should fix bug 4599.
* use event_free() wrapper; fix bug 4582Nick Mathewson2011-11-25
|
* Refactor tor_event_base_once to do what we actually wantNick Mathewson2011-11-25
| | | | | This version avoids the timeout system entirely, gives a nicer interface, and lets us manage allocation explicitly.
* Merge remote-tracking branch 'asn/bug4312'Nick Mathewson2011-11-25
|\
| * Use callback-driven approach to block renegotiations.George Kadianakis2011-11-13
| | | | | | | | Also use this new approach in the bufferevents-enabled case.
* | appease check-spacesSebastian Hahn2011-11-24
| |
* | Disable IOCP and retry event_base_new_with_config once on failureNick Mathewson2011-11-14
| | | | | | | | | | | | | | | | | | | | This is a fancier bug4457 workaround for 0.2.3. In 0.2.2, we could just tell Libevent "Don't enable locking!" so it wouldn't try to make the event_base notifiable. But for IOCP, we need a notifiable base. (Eventually, we'll want a notifiable base for other stuff, like multithreaded crypto.) So the solution is to try a full-featured initialization, and then retry with all the options turned off if that fails.
* | Merge remote-tracking branch 'public/bug4457_022' into bug4457_masterNick Mathewson2011-11-14
|\ \ | |/ |/| | | | | | | | | | | | | Conflicts: src/common/compat_libevent.c Resolving conflict by not taking 7363eae13cb8 ("Use the EVENT_BASE_FLAG_NOLOCK flag to prevent socketpair() invocation"): in Tor 0.2.3.x, we _do_ sometimes use notifiable event bases.
| * Detect failure from event_init() or event_base_new_with_config()Nick Mathewson2011-11-14
| |
| * Use the EVENT_BASE_FLAG_NOLOCK flag to prevent socketpair() invocationNick Mathewson2011-11-14
| | | | | | | | | | | | In Tor 0.2.2, we never need the event base to be notifiable, since we don't call it from other threads. This is a workaround for bug 4457, which is not actually a Tor bug IMO.
* | Make bufferevents work with TokenBucketRefillIntervalNick Mathewson2011-09-22
| |
* | Apply rate-limiting to the lowest bufferevent in the stack.Nick Mathewson2011-08-24
| | | | | | | | | | | | | | When we're doing filtering ssl bufferevents, we want the rate-limits to apply to the lowest level of the bufferevent stack, so that we're actually limiting bytes sent on the network. Otherwise, we'll read from the network aggressively, and only limit stuff as we process it.
* | Automatically use filtering bufferevents with IOCP.Nick Mathewson2011-08-18
| |
* | Call evthread_use_windows_threads when running with IOCP on windowsNick Mathewson2011-08-17
| |
* | Replace 4 more sscanf()s with tor_sscanf()Nick Mathewson2011-07-01
| | | | | | | | | | | | | | | | For some inexplicable reason, Coverity departs from its usual standards of avoiding false positives here, and warns about all sscanf usage, even when the formatting strings are totally safe. Addresses CID # 447, 446.
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-23
|\| | | | | | | | | | | Conflicts: src/common/Makefile.am src/or/control.c
| * Fix comment typoRobert Ransom2011-05-12
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-04-07
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/common/address.c src/common/compat_libevent.c src/common/memarea.c src/common/util.h src/or/buffers.c src/or/circuitbuild.c src/or/circuituse.c src/or/connection.c src/or/directory.c src/or/networkstatus.c src/or/or.h src/or/routerlist.c
| * Clean up a comment-conversation about bad libevent version/method combosNick Mathewson2011-03-25
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-03-16
|\|
| * Resolve the one DOCDOC in the 0.2.2 code atmNick Mathewson2011-03-16
| |
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-03-16
|\| | | | | | | | | | | | | Trivial Conflicts in src/common/crypto.c src/or/main.h src/or/or.h
| * Doxygen documentation for about 100 things that didn't have anyNick Mathewson2011-03-16
| | | | | | | | About 860 doxygen-less things remain in 0.2.2
* | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\|
| * Bump copyright statements to 2011 (0.2.2)Nick Mathewson2011-01-03
| |
* | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2010-12-21
|\|