Yawning Angel
c8132aab92
Send back SOCKS5 errors for all of the address related failures.
...
Cases that now send errors:
* Malformed IP address (SOCKS5_GENERAL_ERROR)
* CONNECT/RESOLVE request with IP, when SafeSocks is set
(SOCKS5_NOT_ALLOWED)
* RESOLVE_PTR request with FQDN (SOCKS5_ADDRESS_TYPE_NOT_SUPPORTED)
* Malformed FQDN (SOCKS5_GENERAL_ERROR)
* Unknown address type (SOCKS5_ADDRESS_TYPE_NOT_SUPPORTED)
Fixes bug 13314.
2014-10-01 14:16:59 +00:00
teor
27f30040f6
Add TestingDirAuthVoteExit option (like TestingDirAuthVoteGuard)
...
Add the TestingDirAuthVoteExit option, a list of nodes to vote Exit for,
regardless of their uptime, bandwidth, or exit policy.
TestingTorNetwork must be set for this option to have any effect.
Works around an issue where authorities would take up to 35 minutes to
give nodes the Exit flag in a test network, despite short consensus
intervals. Partially implements ticket 13161.
2014-10-01 17:44:21 +10:00
Andrea Shepard
99d312c293
Make channel_flush_some_cells() mockable
2014-09-30 23:14:59 -07:00
Andrea Shepard
dc3af04ba8
Make scheduler_compare_channels() mockable
2014-09-30 23:14:58 -07:00
Andrea Shepard
f8ceb0f028
Make scheduler_run() mockable
2014-09-30 23:14:58 -07:00
Andrea Shepard
b7125961de
Expose scheduler_compare_channels() to test suite
2014-09-30 23:14:58 -07:00
Andrea Shepard
c5f73e52e5
Make circuitmux_compare_muxes() and circuitmux_get_policy() mockable
2014-09-30 23:14:58 -07:00
Andrea Shepard
71a9ed6feb
Make some scheduler.c static functions visible to the test suite
2014-09-30 23:14:57 -07:00
Andrea Shepard
9869254608
Make scheduler.c static globals visible to test suite
2014-09-30 23:14:25 -07:00
Andrea Shepard
a2de0a1034
Make buf_datalen() mockable
2014-09-30 23:14:25 -07:00
Andrea Shepard
3b080230e9
Make connection_or_connect() mockable
2014-09-30 23:14:24 -07:00
Andrea Shepard
3bc7108d2c
Make is_local_addr() mockable
2014-09-30 23:14:24 -07:00
Andrea Shepard
452bce6c72
Make channel_dump_statistics() mockable
2014-09-30 23:14:23 -07:00
Andrea Shepard
5a24ff0563
What the hell was I on?
2014-09-30 23:14:23 -07:00
Andrea Shepard
9eea42f844
Make channel_flush_from_first_active_circuit() mockable
2014-09-30 23:14:02 -07:00
Andrea Shepard
5b7a58f7c4
Make circuitmux_num_cells() mockable
2014-09-30 23:14:02 -07:00
Andrea Shepard
ae3ed185e4
Let channel unit tests mess with global queue estimate
2014-09-30 23:14:01 -07:00
Andrea Shepard
bbb06b73cd
Expose some channel cell queue stuff to the test suite
2014-09-30 23:09:15 -07:00
Andrea Shepard
2ee69bd5d7
Expose get_unique_circ_id_by_chan() to test suite
2014-09-30 23:09:14 -07:00
Andrea Shepard
ade60890d0
Make scheduler_channel_doesnt_want_writes() mockable
2014-09-30 23:09:14 -07:00
Andrea Shepard
fd57840a77
Make scheduler_channel_doesnt_want_writes() mockable
2014-09-30 22:54:10 -07:00
Andrea Shepard
85ee070852
Make scheduler_release_channel() mockable
2014-09-30 22:49:58 -07:00
Andrea Shepard
8907554cf3
Make channel_note_destroy_not_pending() mockable
2014-09-30 22:49:58 -07:00
Andrea Shepard
dabf4c33e2
Refactor channel_get_cell_queue_entry_size() to avoid an unreachable line for test coverage, and fix a nasty lurking memory bug in channel_flush_some_cells_from_outgoing_queue()
2014-09-30 22:49:58 -07:00
Andrea Shepard
ac1b627e85
Implement scheduler_touch_channel()
2014-09-30 22:49:58 -07:00
Andrea Shepard
ed1927d6bf
Use a non-stupid data structure in the scheduler
2014-09-30 22:49:56 -07:00
Andrea Shepard
3530825c53
Eliminate some unnecessary smartlists in scheduler.c
2014-09-30 22:49:36 -07:00
Andrea Shepard
63bb9a795e
Fix compiler warning
2014-09-30 22:49:36 -07:00
Andrea Shepard
55907da28d
Sort the scheduler's channel list by cmux comparisons
2014-09-30 22:49:36 -07:00
Andrea Shepard
700d6e7525
Add inter-cmux comparison support to circuitmux_ewma.c
2014-09-30 22:49:35 -07:00
Andrea Shepard
9db596d2ef
Add cmux support for inter-cmux comparisons
2014-09-30 22:49:35 -07:00
Andrea Shepard
1275002a46
Schedule according to a queue size heuristic
2014-09-30 22:49:35 -07:00
Andrea Shepard
4f567c8cc8
Let the new scheduler handle writes
2014-09-30 22:49:03 -07:00
Andrea Shepard
f314d9509c
Fix return values from channel_flush_some_cells() to correctly count cells directly written by channel_flush_from_first_active_circuit()
2014-09-30 22:49:03 -07:00
Andrea Shepard
2fc3da3ff5
Implement global queue size query in channel.c
2014-09-30 22:49:03 -07:00
Andrea Shepard
8852a1794c
Track total queue size per channel, with overhead estimates, and global queue total
2014-09-30 22:49:03 -07:00
Andrea Shepard
5e0a6d54d0
Add global cell/byte counters and per channel byte counters to channel.c
2014-09-30 22:49:02 -07:00
Andrea Shepard
f0533d8d22
Remove no-longer-used channel_tls_t functions
2014-09-30 22:49:02 -07:00
Andrea Shepard
b09f41424c
Actually call channel_flush_some_cells() from the scheduler
2014-09-30 22:49:01 -07:00
Andrea Shepard
2efbab2aaf
Provide generic mechanism for scheduler to query writeable cells on a channel
2014-09-30 22:48:26 -07:00
Nick Mathewson
472b62bfe4
Uglify scheduler init logic to avoid crash on startup.
...
Otherwise, when we authority try to do a self-test because of
init-keys, if that self-test can't be launched for whatever reason and
so we close the channel immediately, we crash.
Yes, this a silly way for initialization to work.
2014-09-30 22:48:26 -07:00
Nick Mathewson
85ee5b3095
Use event_active, not 0-length timeouts. It's idempotent, too.
2014-09-30 22:48:26 -07:00
Nick Mathewson
fc13184e44
Fix unused-arguments warnings
2014-09-30 22:48:26 -07:00
Nick Mathewson
08bea13c35
Temporarily disable scheduler_trigger as unused
2014-09-30 22:48:26 -07:00
Andrea Shepard
d438cf1ec9
Implement scheduler mechanism to track lists of channels wanting cells or writes; doesn't actually drive the cell flow from it yet
2014-09-30 22:48:24 -07:00
Nick Mathewson
b448ec195d
Clear the cached address from resolve_my_address() when our IP changes
...
Closes 11582; patch from "ra".
2014-09-29 13:47:58 -04:00
Nick Mathewson
ac9b0a3110
Try to make max_dl_per_request a bit smarter
2014-09-29 10:56:38 -04:00
Nick Mathewson
2b1b1def46
Merge remote-tracking branch 'teor/circuitstats-pareto-avoid-div-zero'
2014-09-29 09:48:02 -04:00
Nick Mathewson
11ebbf5e88
Merge branch 'bug12971_take2_squashed'
2014-09-29 09:18:03 -04:00
Nick Mathewson
fcebc8da95
Rename socks5 error code setting function again
...
I'd prefer not to use the name "send" for any function that doesn't
really send things.
2014-09-29 09:17:29 -04:00