Commit Graph

1254 Commits

Author SHA1 Message Date
Nick Mathewson e4baf164dd Small cleanups and tweaks to same_subnet code. 2021-08-05 15:16:03 -04:00
Nick Mathewson 3bc0a03848 Merge remote-tracking branch 'origin/mr/45' 2021-08-05 14:59:34 -04:00
Nick Mathewson ac962a7665 Remove spurious "exit 0" 2021-08-04 16:04:24 -04:00
Nick Mathewson 7c9373a32f Add my "fuzz everything" script that I like to run overnight 2021-08-04 15:59:36 -04:00
Nick Mathewson ec6ec3f1d8 Update arti-corpora submodule. 2021-08-04 15:57:02 -04:00
rls c813eb1a10 Add symlinks to arti-corpora 2021-08-04 15:52:24 -04:00
Nick Mathewson 87edb38920 Small fixes on top of typo fixes 2021-08-03 09:01:46 -04:00
Nick Mathewson 6e04a3b0f7 Merge remote-tracking branch 'origin/mr/48' 2021-08-03 08:49:25 -04:00
Smitty 3100a6a6ae Support EnforceDistinctSubnets
Relays on the same IPv4 /16 or IPv6 /32 are treated as being in the same
family.
2021-08-01 19:01:06 -04:00
rls 297ca28170 Revert spelling change; "recognised" is valid 2021-07-31 18:21:18 +02:00
rls 51d91508f7 Fix typos and other spelling mistakes 2021-07-31 18:02:35 +02:00
Nick Mathewson 19e0558bcd Fix some CI warnings. 2021-07-31 18:01:25 +02:00
Nick Mathewson 4374ba4738 Fix some CI warnings. 2021-07-30 17:38:54 -04:00
Nick Mathewson af90626ab8 Add a note about the other (current) daemon task. 2021-07-30 15:24:43 -04:00
Nick Mathewson 7fda771f45 Whenever the consensus changes, inform the circmgr about new params
Closes #144
2021-07-30 15:16:43 -04:00
Nick Mathewson cc6302deda Give DirMgr the ability to notify subscribers about events.
This is not 100% what we'll want long term:
  - We might want more kinds of events
  - We'll probably want to generate them in a more reliable way
  - We might want some of this mechanism to be in a crate other than
    DirMgr.

But for now, let's use this as a start and get experience with it.
2021-07-30 12:53:54 -04:00
Nick Mathewson 95e8f67a4a Disable a warning from Rust 1.54 2021-07-29 10:49:40 -04:00
Nick Mathewson 6dbdfdcc84 Add a kludge to make resolve requests work.
Apparently "a circuit supporting no target ports" is not truly an
exit circuit.  We should add a better fix here, however.
2021-07-27 13:53:56 -04:00
Nick Mathewson 4ccc4cecfe Now that we support RESOLVE*, log what SOCKS command we are seeing 2021-07-27 13:49:57 -04:00
Nick Mathewson 9c8dcecf20 socksproto: Allow port 0 for RESOLVE and RESOLVE_PTR. 2021-07-27 13:48:24 -04:00
Nick Mathewson 962b01ca4e Do not try to resolve .onion addresses. 2021-07-27 13:19:32 -04:00
Nick Mathewson be05441cfb tor-client: rename circ function to a more descriptive name 2021-07-27 13:18:44 -04:00
Nick Mathewson b40b5d9412 tor_proto: Use iterators and functions to simplify resolve functions. 2021-07-27 13:13:27 -04:00
Nick Mathewson 64daf41a9b ResolvedVal: Rename answers() to into_answers(). 2021-07-27 13:00:25 -04:00
Nick Mathewson 26f00ed396 tor-proto: Tweak documentation for resolve/resolve_ptr 2021-07-27 12:58:33 -04:00
Nick Mathewson a6a0189449 Merge remote-tracking branch 'origin/mr/39' 2021-07-27 10:38:20 -04:00
Nick Mathewson a28e088240 Add OSX instructions to CONTRIBUTING.md
Closes #151.
2021-07-23 15:00:35 -04:00
Yuan Lyu 2dfe4b69a0 Add support for RESOLVE and RESOLVE_PTR 2021-07-22 20:51:28 -04:00
dagger d160c88cc5 [f] fix pareto test not compile issue
Signed-off-by: dagger <0xdagger@gmail.com>
2021-07-22 09:11:12 +07:00
Nick Mathewson 3f6b22fa14 adjust WANT_FROM_OTHER_CRATES 2021-07-21 13:11:24 -04:00
Nick Mathewson a2ca2222b8 Merge remote-tracking branch 'origin/mr/42' 2021-07-21 09:42:16 -04:00
Nick Mathewson 9f61a392be Use cargo audit with "-D warnings". 2021-07-21 09:33:32 -04:00
Nick Mathewson c2a0a572b0 Merge remote-tracking branch 'origin/mr/41' 2021-07-21 09:32:26 -04:00
Nick Mathewson c9841f5b1a Fix a ocumentation link issue. 2021-07-21 09:19:57 -04:00
Daniel Eades ed14a7fcf2 address some possibly slightly controversial lints 2021-07-21 07:27:26 +01:00
Daniel Eades d23256074e address a bunch of hopefully uncontroversial lints 2021-07-20 22:59:59 +01:00
Trinity Pointard c6fef98a83 attempt to add cargo audit to CI 2021-07-20 23:39:23 +02:00
Trinity Pointard 594b65fff6 switch to maintained crates for memmap and tmpdir
They don't have actual documented security issues but it makes
`cargo audit` complain

https://rustsec.org/advisories/RUSTSEC-2018-0017
https://rustsec.org/advisories/RUSTSEC-2020-0077
2021-07-20 23:35:17 +02:00
Nick Mathewson 888296cca6 Temporarily disable build.rs tests as unreliable :/ 2021-07-20 13:46:32 -04:00
Nick Mathewson bd355d14f3 tor-circmgr: Improve coverage on build.rs.
The good news is that this tests the succeeding and failing cases,
and even managed to expose an off-by-one error in our hop counting.

The bad news is that these tests have shown even more ways in which
our wait_for code is unreliable, and forced me to slow it down even
harder.
2021-07-19 14:30:42 -04:00
Nick Mathewson 6bf1f9723a Fix an actual off-by-one error!
This was in deciding when to report a circuit as completed.
2021-07-19 13:49:55 -04:00
Nick Mathewson 37fe255fda Try refactoring build.rs for testability.
I'm adding a local "Buildable" trait here so I can swap out Circuits
for something else.  This also lets me refactor Builder<> to be
parameterized on TimeoutEstimator again, and lets us get rid of the
first_hop() accessor on paths.
2021-07-19 12:25:26 -04:00
Nick Mathewson 1821532dd8 Add a test for double_timeout.
There is something wrong here, though.  I had to rewrite wait_for() a
lot back in the main branch to get this test working right.  See
arti#149 for details on that issue.
2021-07-19 12:25:26 -04:00
Nick Mathewson 61d8e5175c tor-circbuild: use SleepProvider::now() instead of Instant::now()
This should make time mockable for testing purposes.
2021-07-19 12:25:26 -04:00
Nick Mathewson 94db617682 Add the ability to reconfigure a running ParetoEstimator 2021-07-19 12:25:26 -04:00
Nick Mathewson 2bc762a3ca Monomorphize: just use the pareto timeout implementation. 2021-07-19 12:25:26 -04:00
Nick Mathewson f341e493ea Allow the pareto estimator to be disabled. 2021-07-19 12:25:26 -04:00
Nick Mathewson 3e894218aa Connect the timeout estimator code to our circuit builder.
This currently leaves a bit to be desired, since the logic is kind
of gnarly.  I'm not sure I want to be using so many Arc<>s.
2021-07-19 12:25:26 -04:00
Nick Mathewson cd51d8bb8b Implement a circuit timeout estimator backend.
This backend uses the kludged-up^W heuristic-enhanced Pareto
estimator from path-spec.txt section 2.4.  See path-spec.txt for
full details on the algorithm.  I've tried to note with TODO-SPEC
comments all the things that the spec currently leaves out.

Nothing actually uses this code yet.  By the time it's in use, I'd
expect that many of these functions will need to have new
visibilities.
2021-07-19 12:25:26 -04:00
Nick Mathewson 379c28b2a8 Implement consensus parameters related to circuit timeout inference. 2021-07-19 12:25:26 -04:00