summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | PtTargetSettings: Enforce correctness at lower level.Nick Mathewson2022-11-071-19/+49
| | | | | | | | | | | | | | | | | | | | This resolves a number of TODOs.
| * | | | Remove a blank lineNick Mathewson2022-11-071-1/+0
| | | | |
| * | | | Downgrade TODO on chan_methodNick Mathewson2022-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This is not something we need to solve for 1.1.0 (and it might not need to be solved ever).
| * | | | Remove TODO about third ChannelMethod variant.Nick Mathewson2022-11-071-2/+0
| | | | | | | | | | | | | | | | | | | | We didn't find a use for this.
| * | | | Remove TODO about inlining PtTargetSettings.Nick Mathewson2022-11-071-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Since there are (or soon will be) parsing restrictions on this type, we don't want to inline it as a simple Vec.
* | | | | Merge branch 'store-yak-misc' into 'main'eta2022-11-084-11/+39
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | Small misc yaks for bridge descriptor persistence See merge request tpo/core/arti!828
| * | | | tor-dirmgr: impl AsRef<dyn Error> for ErrorIan Jackson2022-11-041-0/+7
| | | | | | | | | | | | | | | | | | | | This allows use with tor_error::Report.
| * | | | tor-netdoc: RouterDesc: Add published accessorIan Jackson2022-11-041-0/+5
| | | | | | | | | | | | | | | | | | | | The bridge descriptor manager is going to want this.
| * | | | dirmgr: Make store be in an ArcIan Jackson2022-11-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This will let us share it with the bridge descriptor manager. (As discussed with Nick.)
| * | | | dirmgr sqlite store: Improve schema updatesIan Jackson2022-11-041-9/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Centralise applying the schema updates, in a closure * Make the schema update SQL texts be in an array so we can loop * Make the version update statement generic, not cloned-and-hacked This will make it possible to add another schema version without error-prone conditions etc.
* | | | | Merge branch 'guards_as_bridges_part4' into 'main'Nick Mathewson2022-11-0817-233/+584
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | GuardMgr: Almost finish wiring Bridges in as a guard substitute See merge request tpo/core/arti!832
| * | | | Try to explain exactly what lookup_bridge_circ_target doesNick Mathewson2022-11-081-0/+11
| | | | |
| * | | | GuardMgr: Try to explain what is going on with update()Nick Mathewson2022-11-081-10/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This explanation is slightly complicated by the fact that I think that one of the calls to update_guardset_internal() is possibly unnecessary, and that one of the calls that it makes is potentially ill-advised. I'm not going to make those changes right now, however, because they are potentially a little destabilizing.
| * | | | Refactor configured_bridgesNick Mathewson2022-11-081-30/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now it is an Option, and is set to None if bridges aren't enabled. This simplifies `replace_bridge_config` a bit, and forces us to check for `None` in a few more places.
| * | | | GuardMgr: Document that providers should only be installed once.Nick Mathewson2022-11-081-0/+14
| | | | | | | | | | | | | | | | | | | | Enforce this with assert!() and a documented panics section.
| * | | | GuardMgr: Fix build with bridge-client disabled.Nick Mathewson2022-11-082-1/+4
| | | | |
| * | | | GuardMgr: Remove no-longer-relevant `TODO pt-client` commentsNick Mathewson2022-11-084-21/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Also remove a bunch of now-unnecessary `allow(dead_code)` annotations.
| * | | | GuardMgr: Rename an error variantNick Mathewson2022-11-082-3/+3
| | | | |
| * | | | GuardMgr: Spelling fixes and normalizations.Nick Mathewson2022-11-084-7/+8
| | | | |
| * | | | GuardMgr: do not use fallbacks when in bridge mode.Nick Mathewson2022-11-081-5/+5
| | | | |
| * | | | GuardMgr: When possible, return a FirstHop that can be a CircTargetNick Mathewson2022-11-083-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do this by checking the FirstHops we're about to return, and when they correspond to bridges, looking up an appropriate BridgeRelay in the current BridgeSet (if we can).
| * | | | GuardMgr: Refactor UniverseRef to contains Arcs.Nick Mathewson2022-11-083-27/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already _have_ these Arc<>s whenever we construct a UniverseRef, so there's no real point in using &refs and making these so hard to construct.
| * | | | GuardMgr: Remove an outdated "Limitations" comment.Nick Mathewson2022-11-081-10/+0
| | | | | | | | | | | | | | | | | | | | Found while grepping for NetDir.
| * | | | GuardMgr: do not block netdir if we are using bridgesNick Mathewson2022-11-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `GuardMgr` code has functionality to tell the DirMgr "Hey, don't switch to the new NetDir yet: we still need more guard information!" But we never want to do that if we're selecting bridges, since they don't come from the NetDir.
| * | | | GuardMgr: Add UniverseType to make code more explicit.Nick Mathewson2022-11-081-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of duplicating the logic about which guard sample uses which universe, we explicitly ask it, and then use that universe. This will avoid trouble if/when we introduce more samples.
| * | | | GuardMgr: Launch a background task to keep the list of bridgeNick Mathewson2022-11-082-1/+38
| | | | | | | | | | | | | | | | | | | | descriptors updated as appropriate.
| * | | | GuardMgr: Exit keep-netdir-updated task early if GuardMgr disappears.Nick Mathewson2022-11-081-0/+2
| | | | |
| * | | | GuardMgr: Pass correct universe to "Bridges" `GuardSet`.Nick Mathewson2022-11-084-15/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can probably be done in a simpler way, but for the moment I would prefer to try to minimize the amount of code I'm changing here.
| * | | | GuardMgr: Change BridgeSet, BridgeRelay to use more referencesNick Mathewson2022-11-082-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will match our needs better and help avoid some `Arc<>`s. It will be especially helpful for avoiding `Arc`s we don't actually have.
| * | | | GuardMgr: Store bridge configuration.Nick Mathewson2022-11-081-15/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm using an Arc<[]> here though I think that there's a chance that a simple Vec<> would suffice. Since it's an internal type, nothing will break if we change it later. Also, we now switch into and out of the Bridges guard sample as needed. However, that selection is not (yet) built from the list of bridges. That will come soon.
| * | | | GuardMgr: Remove duplicate code in set_filterNick Mathewson2022-11-081-13/+2
| | | | |
| * | | | GuardMgr: Clarify intent with update_active_set.Nick Mathewson2022-11-081-4/+5
| | | | | | | | | | | | | | | | | | | | Also fix its behavior when using bridges.
| * | | | GuardMgr: Split `update_internal` into two functions.Nick Mathewson2022-11-081-27/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first part changes which guard set is active based on based on the parameters, which always come from a NetDir; the second changes the contents of the active guard set, based on a Universe.
| * | | | Refactor external guardmgr APIs: Stop taking NetDir arguments.Nick Mathewson2022-11-087-84/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These arguments were used only for legacy (testing) purposes; the tests now use `TestNetDirProvider`. This lets us simplify our internal logic for passing a `NetDir` to our samples, and prepare for having a `BridgeSet` to pass there instead. This is a breaking change to `guardmgr` and `circmgr`.
| * | | | Mock implementation of a NetDirProvider for testing.Nick Mathewson2022-11-082-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | I'm about to remove the old testing APIs from GurdMgr that took in a NetDir in each function: adding this will make that possible.
| * | | | Add an accessor for the latest BridgeDescList.Nick Mathewson2022-11-081-0/+12
| | | | |
| * | | | Implement GuardMgr::install_bridge_desc_providerNick Mathewson2022-11-081-6/+25
| | | | |
| * | | | Require Send+Sync for BridgeDescProviderNick Mathewson2022-11-081-1/+1
| | |/ / | |/| | | | | | | | | | We require these for NetDirProvider, so this shouldn't be a big reach.
* | | | Merge branch 'hilev_spelling' into 'main'Nick Mathewson2022-11-075-8/+8
|\ \ \ \ | |/ / / |/| | | | | | | | | | | Spelling fixes and normalizations on some high-level crates See merge request tpo/core/arti!835
| * | | Spelling fixes and normalizations on some high-level cratesNick Mathewson2022-11-075-8/+8
| | | |
* | | | Merge branch 'bdm-dyn-clone' into 'main'Nick Mathewson2022-11-071-1/+3
|\ \ \ \ | |/ / / |/| | | | | | | | | | | bridge desc: Make BridgeDescProvider DynClone See merge request tpo/core/arti!834
| * | | bridge desc: Make BridgeDescProvider DynCloneIan Jackson2022-11-071-1/+3
|/ / / | | | | | | | | | | | | This allows the use of Box<dyn BridgeDescProvider> in callers, since Box<dyn BridgeDescProvider> is now Clone.
* | | Merge branch 'typos' into 'main'Nick Mathewson2022-11-066-9/+9
|\ \ \ | |/ / |/| | | | | | | | Fix typos See merge request tpo/core/arti!833
| * | Fix typosDimitris Apostolou2022-11-066-9/+9
|/ /
* | Merge branch 'store-yak-bd' into 'main'Nick Mathewson2022-11-042-65/+99
|\ \ | |/ |/| | | | | bridgedesc: yaks for persistent storage See merge request tpo/core/arti!827
| * bridgedesc: Rename "text" from "output"Ian Jackson2022-11-031-5/+5
| | | | | | | | | | | | This was confusing, because it's the output of the donwload, but nowhere near the output of the whole process. And it's going to become even less so.
| * bridgedesc: Make process_document into a free functionIan Jackson2022-11-031-53/+67
| | | | | | | | It deserves this treatment, I think.
| * bridgedesc: Introduce DownloadedIan Jackson2022-11-031-13/+17
| | | | | | | | | | This gives names to things and makes things clearer, and this will be even more true in a moemnt.
| * bridgedesc: download: Break out process_documentIan Jackson2022-11-031-47/+54
| | | | | | | | We're going to want to reuse this for handling cached stuff.
| * bridgedesc: Prepare Mockable trait for if-modified-sinceIan Jackson2022-11-032-6/+15
|/