summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | GuardMgr: Add Instant to update().Nick Mathewson2022-11-162-20/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets us avoid calling `Instant::now()`, when `Runtime::now()` is what we want. Unfortunately, there are a bunch of functions that called `update()` that needed to change. Fortunately, none of the changes were very complicated. Fixes a `TODO pt-client` comment.
| * | | GuardMgr: Rename "now" arg in update() to "wallclock"Nick Mathewson2022-11-161-10/+10
| |/ / | | | | | | | | | | | | | | | | | | I'm about to add an `Instant` argument. By convention, when we have both, we call the Instant "now". This commit is a pure renaming.
| | * Replace TransportRegistry with AbstractPtMgreta2022-11-225-74/+34
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't make much sense to have the pluggable transport manager be a registry, so replace its interface with a more narrowly defined, less generic version. Other changes: - instead of returning a &-reference, it returns an owned Arc, which should make the ptmgr easier to implement while allowing efficient reuse - provision for error handling is added, but will probably be revised in a future commit pending discussion - tor-ptmgr code that would generate warnings as a result of this change is temporarily removed This is a split out version of arti!886, intended so work on arti#659 can proceed.
* | Merge branch 'channelmap_rename' into 'main'eta2022-11-173-42/+41
|\ \ | |/ |/| | | | | | | | | ChanMgr: Rename ChannelMap to MgrState Closes #606 See merge request tpo/core/arti!864
| * chanmgr: rename new_test_channel_map to new_test_state.Nick Mathewson2022-11-161-5/+5
| |
| * chanmgr::mgr::*: misc spelling fixes and normali[sz]ationsNick Mathewson2022-11-162-6/+6
| |
| * Fix up documentation that referred to a ChannelMap.Nick Mathewson2022-11-162-18/+17
| |
| * ChanMgr: Rename map.rs to state.rsNick Mathewson2022-11-163-9/+9
| | | | | | | | This is another pure renaming.
| * ChanMgr: Rename ChannelMap to MgrStateNick Mathewson2022-11-162-7/+7
|/ | | | | | | | | We're doing this because the type now holds "all the mutable state in a ChanMgr", not just the map. This is a pure renaming; no documentation has been updated. Part of #606.
* Merge branch 'ptmgr-config' into 'main'eta2022-11-167-10/+112
|\ | | | | | | | | tor-ptmgr: make configuration use builders, plumb into arti-client See merge request tpo/core/arti!823
| * pt config, arti cfg test: Expect bridges.transports to be missingIan Jackson2022-11-161-2/+9
| | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/823#note_2854365
| * arti cfg test: Coalesce expect_missingIan Jackson2022-11-161-0/+22
| | | | | | | | | | | | If there are subkeys which are covered by also expected_missing superkeys, delete them, since we expect the superkey to be missing, so the subkey won't show up.
| * tor-ptmgr: make configuration use builders, plumb into arti-clienteta2022-11-166-8/+81
| | | | | | | | | | | | | | This brings the draft configuration mechanisms in tor-ptmgr in line with the config in other crates, using builders. It also plumbs the config type through into the main `arti-client` config, and adds some example lines to `arti-example-config.toml`.
* | Merge branch 'real_netdoc_pos' into 'main'Ian Jackson2022-11-162-21/+15
|\ \ | | | | | | | | | | | | | | | | | | Replace `Option<Pos>` with `Pos` in `ParseError`. Closes #640 See merge request tpo/core/arti!859
| * | Replace `Option<Pos>` with `Pos` in `ParseError`.Nick Mathewson2022-11-152-21/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already have `Pos::Unknown` for an error at an unknown location and `Pos::None` for an error where no location is sensible. There's no reason to have an additional `Option` here. Additionally, the use of `Option` gave us a bug where our old `ParseError::at_pos()` method didn't actually set the position unless the position was already set. That's not what we want! Fixes #640. Finally, we have to fix a test that was a bit broken because it was working around #640.
* | | Merge branch 'remove_netdoc_todo' into 'main'Nick Mathewson2022-11-151-2/+0
|\ \ \ | |/ / |/| | | | | | | | Remove a `TODO pt-client` in netdoc. See merge request tpo/core/arti!860
| * | Remove a `TODO pt-client` in netdoc.Nick Mathewson2022-11-151-2/+0
|/ / | | | | | | This issue is now torspec!94.
* | Merge branch 'fix_bridgeconf_lookup' into 'main'Nick Mathewson2022-11-154-2/+21
|\ \ | | | | | | | | | | | | | | | | | | Allow a subset-only ChanMethod match when looking up a BridgeConfig Closes #642 See merge request tpo/core/arti!858
| * | Resolve a dead-code warning.Nick Mathewson2022-11-151-0/+1
| | |
| * | Allow a subset-only ChanMethod match when looking up a BridgeConfigNick Mathewson2022-11-152-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a bridge guard that is using Direct connection and it knows multiple addresses, our code to match it with a BridgeConfig is wrong, because the BridgeConfig has only one address, and our code looks for an exact match. Fixes #642.
| * | Remove a spurious log that I committed by mistake. Whoops.Nick Mathewson2022-11-151-1/+0
| | |
* | | Merge branch 'cfg-doc' into 'main'Ian Jackson2022-11-151-3/+48
|\ \ \ | |/ / |/| / | |/ | | arti cfg test: Add more documentation See merge request tpo/core/arti!856
| * arti cfg test: Document exhaustive_1 and comment exhaustiveIan Jackson2022-11-151-0/+39
| |
| * arti cfg test: Break out CONFIG_KEYS_EXPECT_NO_EXAMPLEIan Jackson2022-11-151-2/+9
| | | | | | | | Giving this a name will allow us to refer to it docs in a moment.
| * arti cfg test: Drop a redundant allowIan Jackson2022-11-151-1/+0
| | | | | | | | | | This allow is also present in the standard lint block at the start of the test inline module.
* | Merge branch 'fix_parse' into 'main'eta2022-11-154-5/+42
|\ \ | | | | | | | | | | | | | | | | | | netdoc: Allow empty lines at the end of router descriptors Closes #637 See merge request tpo/core/arti!857
| * | netdoc: Allow empty lines at the end of a router descriptor.Nick Mathewson2022-11-152-3/+34
| | |
| * | tor-netdoc: Add a new ErrorKind for EmptyLine.Nick Mathewson2022-11-153-2/+8
| | | | | | | | | | | | | | | Empty lines were previously reported as BadKeyword, which is confusing.
* | | Merge branch 'implement_usage' into 'main'Nick Mathewson2022-11-151-1/+22
|\ \ \ | |/ / |/| | | | | | | | Implement more cases for `DirSpecificTarget`. See merge request tpo/core/arti!855
| * | Implement more cases for `DirSpecificTarget`.Nick Mathewson2022-11-151-1/+22
|/ / | | | | | | | | | | Without this fix, any attempt to actually use a circuit for a `DirSpecificTarget` will fail, since supports() will say false, and `restrict_mut()` will say `NotSupported`.
* | Merge branch 'bdm-arc' into 'main'Nick Mathewson2022-11-152-5/+12
|\ \ | |/ |/| | | | | | | | | arti-client: Retain a strong reference to the inner Arc<BridgeDescMgr> Closes #636 See merge request tpo/core/arti!854
| * guardmgr: Document that guardmgr only holds a WeakIan Jackson2022-11-151-0/+5
| |
| * arti-client: Retain a strong reference to the inner Arc<BridgeDescMgr>Ian Jackson2022-11-151-5/+7
|/ | | | Fixes #636.
* Merge branch 'bdm-plumb' into 'main'Ian Jackson2022-11-152-2/+86
|\ | | | | | | | | | | | | Create and install a BridgeDescMgr when we bootstrap Closes #631 See merge request tpo/core/arti!852
| * bridges: Create and install a BridgeDescMgr when we bootstrapIan Jackson2022-11-152-0/+72
| |
| * arti-client: Store a handle to the DirMgrStore in TorClient (fmt)Ian Jackson2022-11-151-1/+6
| | | | | | | | rustfmt only.
| * arti-client: Store a handle to the DirMgrStore in TorClientIan Jackson2022-11-151-1/+4
| | | | | | | | We'll need this shortly.
| * arti-client: Store a handle to the guardmgr in TorClientIan Jackson2022-11-151-1/+5
|/ | | | We'll need this shortly.
* Merge branch 'make_bridges_work' into 'main'Nick Mathewson2022-11-141-0/+1
|\ | | | | | | | | Bugfix: preserve active_set when loading guards See merge request tpo/core/arti!848
| * Preserve active_set when loading guards.Nick Mathewson2022-11-141-0/+1
| |
* | Merge branch 'report_missing_descs' into 'main'Nick Mathewson2022-11-143-1/+66
|\| | | | | | | | | | | | | GuardMgr: Update desired bridge descs from 'update' function. Closes #622 See merge request tpo/core/arti!847
| * GuardMgr: Update desired bridge descs from 'update' function.Nick Mathewson2022-11-142-1/+29
| | | | | | | | | | There are some new TODOs here for us to think about, but I think this will give us something to test.
| * GuardSet: Add a method to report which bridge descs we want.Nick Mathewson2022-11-141-0/+37
| |
* | Merge branch 'guardmgr' into 'main'Ian Jackson2022-11-145-4/+23
|\ \ | | | | | | | | | | | | Move guardmgr creation to arti-client, rather than within circmgr See merge request tpo/core/arti!850
| * | Move GuardMgr::new call to arti_client::TorClient (fmt)Ian Jackson2022-11-141-4/+8
| | | | | | | | | | | | rustfmt only, broken out to ease review.
| * | Move GuardMgr::new call to arti_client::TorClientIan Jackson2022-11-144-2/+13
| | | | | | | | | | | | | | | | | | | | | Having this done within circmgr was irregular - most of our other key buildup functions are done in TorClient::create_inner. It is also inconvenient, as it buries the guardmgr within the circmgr.
| * | Document Clone semantics of GuardMgr and DirMgrIan Jackson2022-11-112-0/+3
| | |
| * | cfg-ify an importIan Jackson2022-11-111-0/+1
| | |
* | | Merge branch 'store3' into 'main'Ian Jackson2022-11-147-165/+76
|\ \ \ | | | | | | | | | | | | | | | | dirmgr: Expopse DirMgrStore See merge request tpo/core/arti!851
| * | | dirmgr Store: Have constructors take DirMgrStoreIan Jackson2022-11-144-10/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Now the Store is constructed by arti_client, solving the problem described here https://gitlab.torproject.org/tpo/core/arti/-/issues/631#note_2853665 but in a different way.