Nick Mathewson
275aff6917
Rectify include paths (automated)
2018-06-21 10:47:11 -04:00
Nick Mathewson
0dab29ce10
Run rectify_include_paths.py
2018-06-20 09:35:05 -04:00
Nick Mathewson
fb0019daf9
Update copyrights to 2018.
2018-06-20 08:13:28 -04:00
Nick Mathewson
ed0731c7de
Extract routerinfo_t into its own header.
...
I was expecting this to be much worse.
2018-06-15 14:49:46 -04:00
Nick Mathewson
8b7df72359
Split socks_request_t into its own header.
2018-06-15 13:01:50 -04:00
Nick Mathewson
bba998af65
Extract connection_t into its own header.
...
Now the entire connection_t hierarchy is extracted from or.h
2018-06-15 11:05:56 -04:00
Nick Mathewson
19c34b4658
Move or_connection_t to its own header.
2018-06-15 10:48:50 -04:00
Nick Mathewson
6c0fe9d07c
Split listener_connection_t into its own header
...
For once, it's a type that is used almost nowhere else besides the
logical place.
2018-06-15 10:37:33 -04:00
Nick Mathewson
1416f54d1e
Split dir_connection_t into its own header
2018-06-15 10:31:21 -04:00
Nick Mathewson
3b917b2408
Split control_connection_t into its own header.
...
This one was actually fairly simple.
2018-06-15 10:17:27 -04:00
Nick Mathewson
5d5c442e6a
Split entry and edge_connection_t into their own headers.
2018-06-15 10:10:24 -04:00
Nick Mathewson
df9a3fe86f
Make server_port_cfg_t and port_cfg_t into separate headers.
2018-06-14 16:48:15 -04:00
Nick Mathewson
aab626405c
Merge remote-tracking branch 'catalyst-github/bug25756'
2018-05-11 18:15:43 -04:00
Nick Mathewson
1eede00a4b
Merge branch 'ticket26063_squashed'
2018-05-10 09:13:28 -04:00
Nick Mathewson
f684b48b5b
Merge branch 'ticket26009'
2018-05-09 14:01:08 -04:00
Nick Mathewson
fa7847e450
Use net_is_completely_disabled() in connection.c
...
This fixes the XXXX case that we had before, and also enforces the
rule that we won't open connections when we're in hard hibernation.
2018-05-09 12:26:50 -04:00
Nick Mathewson
c0feb698a0
Comment-only fix: annotate we_are_hibernating() usage
...
Everywhere we use we_are_hibernating(), remind the reader what it
means.
(Also, add an XXXX to note a DisableNetwork usage to change later.)
2018-05-09 12:18:39 -04:00
Taylor Yu
c223377ce6
Make clock_skew_warning() mockable
2018-05-08 17:59:03 -05:00
Nick Mathewson
c3b7258370
Merge remote-tracking branch 'isis/bug24660_r1'
2018-05-03 13:50:18 -04:00
Nick Mathewson
83137275a7
Add update_current_time() calls to periodic and event-driven callbacks
...
This is part of 26009, where we're going to keep track of the
current time and its jumps without having to do so in
second_elapsed_callback.
2018-05-03 12:02:10 -04:00
Nick Mathewson
7cbc44eeb1
Remove the "cached gettimeofday" logic.
...
Previously were using this value to have a cheap highish-resolution
timer. But we were only using it in one place, and current dogma is
to use monotime_coarse_t for this kind of thing.
2018-04-26 12:01:48 -04:00
Nick Mathewson
33cba1195b
Remove a blank line that was bothering me.
2018-04-26 09:10:58 -04:00
Nick Mathewson
3527f4b8a4
Merge remote-tracking branch 'github/lazy_bucket_refill'
2018-04-23 09:47:05 -04:00
Nick Mathewson
bd3f8260a3
Rename some functions to start with a uniform prefix
2018-04-18 11:45:44 -04:00
Nick Mathewson
087ace7009
Fix a compilation warning on clang
2018-04-17 18:41:39 -04:00
Nick Mathewson
47df912f1c
Remove the periodic refill event entirely.
...
Now that we update our buckets on demand before reading or writing,
we no longer need to update them all every TokenBucketRefillInterval
msec.
When a connection runs out of bandwidth, we do need a way to
reenable it, however. We do this by scheduling a timer to reenable
all blocked connections for TokenBucketRefillInterval msec after a
connection becomes blocked.
(If we were using PerConnBWRate more, it might make sense to have a
per-connection timer, rather than a single timeout. But since
PerConnBWRate is currently (mostly) unused, I'm going to go for the
simpler approach here, since usually whenever one connection has
become blocked on bandwidth, most connections are blocked on
bandwidth.)
Implements ticket 25373.
2018-04-17 18:20:03 -04:00
Nick Mathewson
780d1b44cf
Move responsibility for recording read/written bytes
...
Previously this was done as part of the refill callback, but there's
no real reason to do it like that. Since we're trying to remove the
refill callback completely, we can do this work as part of
record_num_bytes_transferred_impl(), which already does quite a lot
of this.
2018-04-17 18:06:46 -04:00
Nick Mathewson
a2acb9b9e9
Refill each token bucket at the last instant before reading/writing.
...
(This patch does not yet eliminate the global refill callback;
fortunately, bucket refilling is idempotent.)
2018-04-17 12:20:06 -04:00
Nick Mathewson
9af4cd6f31
Refactor responsibility for checking global write bucket emptiness
...
We used to do this 10x per second in connection_buckets_refill();
instead, we now do it when the bucket becomes empty. This change is
part of the work of making connection_buckets_refill() obsolete.
Closes ticket 25828; bugfix on 0.2.3.5-alpha.
2018-04-17 12:12:07 -04:00
Nick Mathewson
1356d51af6
Rename connection_bucket_refill to connection_bucket_refill_all
...
Also document its actual behavior
2018-04-17 11:47:31 -04:00
Nick Mathewson
993f5d284d
Rename connection_bucket_round_robin -> get_share
...
There was nothing round_robinish about this function.
2018-04-17 11:42:14 -04:00
Nick Mathewson
488e2b00bf
Refactor the "block the connection on bandwidth" logic
...
Right now, this patch just introduces and exposes some new
functions. Later, these functions will get a little more complexity.
2018-04-17 11:39:16 -04:00
Mike Perry
dfa6808f57
Bug 25400: Make CIRC_BW event properly total everything on a circ.
2018-04-16 21:46:12 +00:00
Nick Mathewson
4b58b97c68
32-bit compilation warnings
2018-04-13 17:01:03 -04:00
Nick Mathewson
03b96882de
Rename token_bucket_t to token_bucket_rw_t.
...
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.
2018-04-13 10:54:26 -04:00
Nick Mathewson
12f58f2f87
Remove a bunch of int casts; make clang happier.
2018-04-13 10:41:14 -04:00
Nick Mathewson
6be994fa71
Ensure that global buckets are updated on configuration change
2018-04-13 10:41:14 -04:00
Nick Mathewson
a38fd9bc5b
Replace the global buckets with token_bucket_t
2018-04-13 10:41:14 -04:00
Nick Mathewson
9fced56ef1
Refactor or_connection token buckets to use token_bucket_t
2018-04-13 10:41:14 -04:00
Nick Mathewson
16f08de0fd
Remove TestingEnableTbEmptyEvent
...
This option was used for shadow testing previously, but is no longer
used for anything. It interferes with refactoring our token buckets.
2018-04-10 12:16:21 -04:00
Isis Lovecruft
fe3aca1491
crypto: Refactor (P)RNG functionality into new crypto_rand module.
...
* ADD new /src/common/crypto_rand.[ch] module.
* ADD new /src/common/crypto_util.[ch] module (contains the memwipe()
function, since all crypto_* modules need this).
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 21:45:28 +00:00
Nick Mathewson
a4ab273a0d
Merge remote-tracking branch 'fristonio/ticket-25261'
2018-02-20 10:03:52 -05:00
Nick Mathewson
b56fd17d00
Merge branch 'maint-0.3.3'
2018-02-15 21:05:12 -05:00
Nick Mathewson
3d7bf98d13
Merge remote-tracking branch 'valentecaio/t-24714'
2018-02-15 20:19:53 -05:00
Nick Mathewson
3c8a481599
Merge branch 'bug18105'
2018-02-15 20:17:31 -05:00
Deepesh Pathak
3553383312
ticket 25261: Removed multiple includes of transports.h in connection.c
2018-02-15 22:28:34 +05:30
David Goulet
652d3a5b66
Remove anything related to the old SocksSockets option
...
At this commit, the SocksSocketsGroupWritable option is renamed to
UnixSocksGroupWritable. A deprecated warning is triggered if the old option is
used and tor will use it properly.
Fixes #24343
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-02-07 14:05:33 -05:00
Deepesh Pathak
ca6682f3f8
Fix spelling mistakes corresponding to ticket #23650
2018-02-07 10:41:57 -05:00
Caio Valente
7884ce76e1
refactor: rename connection_t struct fields.
...
connection_t.timestamp_lastwritten renamed to
connection_t.timestamp_last_write_allowed
connection_t.timestamp_lastread renamed to
connection_t.timestamp_last_read_allowed
Closes ticket 24714.
2018-02-01 03:12:38 +01:00
David Goulet
cd81403cc0
Merge branch 'ticket24902_029_05' into ticket24902_033_02
2018-01-30 09:33:12 -05:00