summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | proxy: Mark ENFILES and EMFILES as survivable.Nick Mathewson2021-10-143-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | I don't love this approach, but those errors aren't distinguished by ErrorKind, so we have to use libc or winapi, apparently. At least nothing here is unsafe. Addresses part of #188.
* | | Add a few tracing directives to tor-dirmgr.Nick Mathewson2021-10-133-3/+14
| | |
* | | tor-dirmgr: report bootstrap success on all successful cases.Nick Mathewson2021-10-131-0/+5
| | | | | | | | | | | | | | | Previously we would sometimes fail to report that we had successfully bootstrapped.
* | | Fix a documentation link error.Nick Mathewson2021-10-131-4/+2
| | |
* | | Report errors in logging configuration a bit more usefullyNick Mathewson2021-10-131-2/+22
| | |
* | | Document trace_filter example in main.rs too.Nick Mathewson2021-10-131-0/+2
| | |
* | | Don't report the bootstrap as completed unless it actually succeeds.Nick Mathewson2021-10-132-5/+14
| | | | | | | | | | | | | | | (Previously we'd report it as successful even if the inner download task was a failure.)
* | | Use better reporting for guard status.Nick Mathewson2021-10-135-24/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code would report all failures to build a circuit as failures of the guard. But of course that's not right: If we fail to extend to the second or third hop, that might or might not be the guard's fault. Now we use the "pending status" feature of the GuardMonitor type so that an early failure is attributed to the guard, but a later failure is attributed as "Indeterminate". Only a complete circuit is called a success. We use a new "GuardStatusHandle" type here so that we can report the status early if there is a timeout.
* | | Rename GuardStatusMsg, make it public, add an `Indeterminate` case.Nick Mathewson2021-10-133-26/+43
| | |
* | | Implement guards for multihop paths.Nick Mathewson2021-10-133-26/+87
| | | | | | | | | | | | There are some limitations here, as noted in the comments.
* | | Actually select guards for directory circuits.Nick Mathewson2021-10-134-13/+27
| | |
* | | Pass the guard manager down to the path selection functions.Nick Mathewson2021-10-116-14/+38
| | |
* | | WIPNick Mathewson2021-10-114-13/+19
| | |
* | | Make the guard selection function return a more useful type.Nick Mathewson2021-10-113-4/+56
| | |
* | | Add a function to look up a Relay by ChanTarget.Nick Mathewson2021-10-111-0/+8
| | |
* | | Integrate GuardUsability and GuardMonitor into CircuitBuilder.Nick Mathewson2021-10-103-11/+73
| | | | | | | | | | | | | | | | | | (When we're building a path with a guard, we need to tell the guard manager whether the path succeeded, and we need to wait to hear whether the guard is usable.)
* | | Notify guard manager on network change and state flush.Nick Mathewson2021-10-106-8/+67
| | |
* | | Add a GuardMgr member to CircuitBuilderNick Mathewson2021-10-106-4/+22
| | |
* | | Merge branch 'sync_guard_api'Nick Mathewson2021-10-102-61/+40
|\ \ \
| * | | Change the GuardMgr APIs to no longer be async.Nick Mathewson2021-10-101-32/+18
| | | |
| * | | Use an mpsc::unbounded() channel in GuardMgr.Nick Mathewson2021-10-102-29/+22
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The advantage here is that we no longer have to use a futures-aware Mutex, or a blocking send operation, and therefore can simplify a bunch of the GuardMgr APIs to no longer be async. That'll avoid having to propagate the asyncness up the stack. The disadvantage is that unbounded channels are just that: nothing in the channel prevents us from overfilling it. Fortunately, the process that consumes from the channel shouldn't block much, and the channel only gets filled when we're planning a circuit path.
* | | Require up-to-date x25519-dalek, async_executors, and argh.Nick Mathewson2021-10-093-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | I tried using -Z minimal-versions to downgrade all first-level dependencies to their oldest permitted versions, and found that we were apparently depending on newer features of all three crates. I'm kind of surprised there were only three.
* | | Lock down some dirmgr config functions.Nick Mathewson2021-10-091-11/+11
| | |
* | | Re-export configuration types from tor-client.Nick Mathewson2021-10-0911-14/+55
| | |
* | | enable checked_conversions lint.Nick Mathewson2021-10-0930-23/+75
| | |
* | | Remove some planned items in add_warnings.Nick Mathewson2021-10-091-8/+12
| | |
* | | Normalize tor-guardmgr warningsNick Mathewson2021-10-091-6/+6
| | |
* | | Note a possible heisenbug in a unit test.Nick Mathewson2021-10-081-0/+6
| | |
* | | Small edits on Android.mdNick Mathewson2021-10-081-17/+18
| | |
* | | Fix some typos (via the "typos" tool)Nick Mathewson2021-10-083-8/+8
| | |
* | | Add a few tracing calls to tor-guardmgr.Nick Mathewson2021-10-083-17/+74
| | |
* | | Update the tor-guardmgr README.md.Nick Mathewson2021-10-071-1/+97
| | |
* | | Resolve small issues and XXXX/TODO comments in GuardMgr.Nick Mathewson2021-10-075-48/+63
| | | | | | | | | | | | | | | By the time I merge this, most of the comments should have tickets to go with them.
* | | Tests for top-level GuardMgr.Nick Mathewson2021-10-076-23/+206
| | | | | | | | | | | | | | | | | | | | | Also, refactor our message handling to be more like the tor_proto reactors. The previous code had a bug where, once the stream of events was exhausted, we wouldn't actually get any more notifications.
* | | Tests for tor_guardmgr::sample.Nick Mathewson2021-10-071-1/+330
| | |
* | | Initial tests for tor_guardmgr::guardNick Mathewson2021-10-072-0/+296
| | |
* | | Implement persistent state for guard mgrNick Mathewson2021-10-073-10/+27
| | |
* | | Initial backend implementation for guard node manager.Nick Mathewson2021-10-0717-12/+2576
| | | | | | | | | | | | | | | | | | | | | There are some missing parts here (like persistence and tests) and some incorrect parts (I am 90% sure that the "exploratory circuit" flag is bogus). Also it is not integrated with the circuit manager code.
* | | Update total_weight to use UncheckedRelay.Nick Mathewson2021-10-071-3/+7
| | |
* | | Make UncheckedRelay public in tor-netdir.Nick Mathewson2021-10-071-4/+4
| | | | | | | | | | | | This will let us provide a couple of better APIs for use in tor-guardmgr
* | | Add From<u64> for RelayWeight.Nick Mathewson2021-10-071-0/+6
| | |
* | | Change tor-persist to use json instead of toml.Nick Mathewson2021-10-075-21/+23
| | | | | | | | | | | | | | | | | | The limitations with toml seemed to be reaching a head, and I wasn't able to refactor the guardmgr code enough to actually have its state be serializable as toml. Json's limitations are much narrower.
* | | Fix a type inference complaint in tor-dirmgr's tests.Nick Mathewson2021-10-071-1/+1
| | | | | | | | | | | | I have no idea why this just turned up now.
* | | update ctrlc and derTrinity Pointard2021-10-062-7/+7
|/ / | | | | | | ctrlc had rustsec issues, der was yanked
* | Update cargo.lock again.Nick Mathewson2021-10-051-4/+4
| |
* | Update cargo.lock; upgrade to newer rusqlite.Nick Mathewson2021-10-052-13/+13
| |
* | Use subtle and some refactoring to remove branches in ntorNick Mathewson2021-10-013-22/+54
| | | | | | | | Closes #163
* | Implement ConstantTimeEq for key ids.Nick Mathewson2021-10-012-4/+16
| |
* | In CI, *temporarily* ignore RUSTSEC-2021-0119 in nix crate.Nick Mathewson2021-10-011-1/+1
| | | | | | | | | | | | The affected API (getgrouplist) isn't one that we use, directly or transitively. We can't just upgrade immediately, since the ctrlc crate is currently stuck on the older version of nix.
* | Allow building tor-persist for WASMJani Monoses2021-10-012-1/+5
| |