- Apr 23, 2018
-
-
- Use misspell to check for typos in codebase - Add `make check-typos` to run the checks - Add `check-typos` to `make check`
-
- Apr 14, 2018
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Apr 13, 2018
-
-
Nick Mathewson authored
-
David Goulet authored
Both header and code file had some indentation issues after mass renaming. No code behavior change. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
Really, the uint32_t is only an optimization; any kind of unit should work fine. Some users might want to use time_t or monotime_coarse_t or something like that.
-
Nick Mathewson authored
(These functions were previously helper functions for token_bucket_rw_t).
-
Nick Mathewson authored
(The tests caught this one.)
-
Nick Mathewson authored
Begin by creating a lowest-level triple of the types needed to implement a token bucket: a configuration, a timestamp, and the raw bucket itself. Note that for low-level buckets, the units of the timestamp and the bucket itself are unspecified: each user can use a different type. (This patch breaks check-spaces; a later patch will fix it)
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
-
David Goulet authored
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
Add to the Denial of Service section of the man page an explanation about the three different mitigation Tor has. Fixes #25248. Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
-
Nick Mathewson authored
(This function is no longer used.)
-
Nick Mathewson authored
This is a simple search-and-replace to rename the token bucket type to indicate that it contains both a read and a write bucket, bundled with their configuration. It's preliminary to refactoring the bucket type.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
This test works by having two post-loop events activate one another in a tight loop. If the "post-loop" mechanism didn't work, this would be enough to starve all other events.
-
Nick Mathewson authored
This is a second motivating case for our postloop event logic.
-
Nick Mathewson authored
A linked connection_t is one that gets its I/O, not from the network, but from another connection_t. When such a connection has something to write, we want the corresponding connection to run its read callback ... but not immediately, to avoid infinite recursion and/or event loop starvation. Previously we handled this case by activating the read events outside the event loop. Now we use the "postloop event" logic. This lets us simplify do_main_loop_once() a little.
-
Nick Mathewson authored
We've been labeling some events as happening "outside the event loop", to avoid Libevent starvation. This patch provides a cleaner mechanism to avoid that starvation. For background, the problem here is that Libevent only scans for new events once it has run all its active callbacks. So if the callbacks keep activating new callbacks, they could potentially starve Libevent indefinitely and keep it from ever checking for timed, socket, or signal events. To solve this, we add the ability to label some events as "post-loop". The rule for a "post-loop" event is that any events _it_ activates can only be run after libevent has re-scanned for new events at least once.
-
Nick Mathewson authored
See bug #25787 for discussion; we should have a better fix here.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
This differs from our previous token bucket abstraction in a few ways: 1) It is an abstraction, and not a collection of fields. 2) It is meant to be used with monotonic timestamps, which should produce better results than calling gettimeofday over and over.
-
Nick Mathewson authored
(It turns out we can't just expose STAMP_TICKS_PER_SECOND, since Apple doesn't have that.)
-
- Apr 12, 2018
-
-
Nick Mathewson authored
In d1874b43, we adjusted this check so that we insist on using routerinfos for bridges. That's almost correct... but if we have a bridge that is also a regular relay, then we should use insist on its routerinfo when connecting to it as a bridge (directly), and be willing to use its microdescriptor when connecting to it elsewhere in our circuits. This bug is a likely cause of some (all?) of the (exit_ei == NULL) failures we've been seeing. Fixes bug 25691; bugfix on 0.3.3.4-alpha
-
Nick Mathewson authored
This function was only used by PortForwardingHelper, which was removed in 9df110cd. Its presence caused warnings on windows.
-