summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | Circmgr: construct paths using either Relay or OwnedCircTargetNick Mathewson2022-10-242-34/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we could only use Relay for this case, which won't work any more: a Bridge is not a `tor_netdir::Relay`. Instead we allow the GuardMgr to give us something that knows how to convert itself into an OwnedCircTarget. This change required a far amount of follow-on revisions and refactoring, but it should all be internal to the path-building logic.
| * | | netdir: Expose addrs-in-same-subnets calculation from SubnetConfigNick Mathewson2022-10-242-8/+20
| | | | | | | | | | | | | | | | | | | | Previously this was a private method only visible from Relay, but now we can use it on any two HasAddrs objects.
| * | | linkspec: Remove now-useless declared_peer_addrNick Mathewson2022-10-242-8/+4
| | | | | | | | | | | | | | | | The singleton variation here is almost never what we want.
| * | | guardmgr: Refactor the interior of FirstHop.Nick Mathewson2022-10-248-75/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now it contains either an `OwnedChanTarget` or an `OwnedCircTarget`, which will let `GuardMgr` return bridges that can be used to make circuits. As part of this change, it was necessary to revise some address-modification functions that applied to filters and `OwnedChanTarget`. Now they do the smart thing, and remove only the address that are in the `ChanMethod`. This means that the addresses from HasAddrs are still accurate about which addresses the relay "has".
| * | | guardmgr: Hold FallbackDir in fallback::set::EntryNick Mathewson2022-10-213-43/+61
| | | | | | | | | | | | | | | | This resolves an old TODO, and will simplify our work a little.
| * | | linkspec: Add compare-by-relay-ids function to HasRelayIdsNick Mathewson2022-10-213-3/+74
| | | |
| * | | guardmgr: Add bridges sample, encode sample ID in FirstHopId.Nick Mathewson2022-10-216-52/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The most important part of this commit is to make sure that each `FirstHopId` includes the `GuardSetSelector` from which the guard was selected. Doing this lets us be certain that when we report that a guard has succeeded or failed, we're reporting it in the right context. Additionally, this commit uses strum to make an iterator over the samples, so that we can make sure that our "for each sample" code is robust against future changes, and we don't miss the bridge sample.
* | | | Merge branch 'by_ids_mutate' into 'main'Nick Mathewson2022-10-241-16/+171
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | Add two ways to change entries in an n_key_set See merge request tpo/core/arti!797
| * | | n_key_set: clean up some wide linesNick Mathewson2022-10-241-21/+38
| | | |
| * | | n_key_set: Re-insert by_foo_mut() accessors, but make them unsafe.Nick Mathewson2022-10-241-0/+21
| | | |
| * | | Fix some litter in a doc comment.Nick Mathewson2022-10-241-1/+1
| | | |
| * | | n_key_set: Add ability to modify entries in the map.Nick Mathewson2022-10-241-1/+118
| |/ / | | | | | | | | | | | | | | | The keys can change: if they do, then the entry is removed from its previous position and inserted at the new one, possibly displacing others.
* | | Merge branch 'fix_typos' into 'main'eta2022-10-211-3/+3
|\ \ \ | | | | | | | | | | | | | | | | tor-cell: Fix typos in msg.rs See merge request tpo/core/arti!788
| * | | tor-cell: Fix typos in msg.rsEmil Engler2022-10-211-3/+3
| | |/ | |/|
* | | Merge branch 'remove_redundant' into 'main'eta2022-10-211-2/+0
|\ \ \ | | | | | | | | | | | | | | | | tor-cell: Remove redundant match clauses See merge request tpo/core/arti!792
| * | | tor-cell: Remove redundant match clausesEmil Engler2022-10-211-2/+0
| |/ / | | | | | | | | | | | | This commit removes two redundant match clauses inside the take_one_netinfo_addr function found inside msg.rs.
* | | Merge branch 'concrete_comments' into 'main'eta2022-10-212-7/+12
|\ \ \ | | | | | | | | | | | | | | | | tor-cell: Make historical comments more concrete See merge request tpo/core/arti!787
| * | | tor-cell: Make historical comments more concreteEmil Engler2022-10-212-7/+12
| |/ / | | | | | | | | | | | | This commit extends comments that make references to historical protocol versions of Tor, by adding the concrete protocol version numbers.
* | | Merge branch 'circmgr' into 'main'eta2022-10-217-14/+40
|\ \ \ | | | | | | | | | | | | | | | | tor-circmgr make get_or_launch_dir_specific depend on specific-relay feature See merge request tpo/core/arti!795
| * | | tor-circmgr: Make get_or_launch_dir_specific feature-specificIan Jackson2022-10-215-5/+22
| | | |
| * | | tor-circmgr: Rename get_or_launch_dir_specific from _bridgeIan Jackson2022-10-211-1/+1
| | | | | | | | | | | | | | | | | | | | DirSpecificTarget in the usage was renamed apropos an MR comment but this function name was overlooked.
| * | | tor-chanmgr: Suppress an unused imports warning for `use super::*`Ian Jackson2022-10-211-0/+1
| | | | | | | | | | | | | | | | | | | | If pt-client is disabled, there are in fact no tests, so the module is empty. But we would always want `use super::*` here.
| * | | tor-circmgr README: Add experimental features boilerplateIan Jackson2022-10-211-0/+18
| | | |
| * | | tor-circmgr README: Remove "Limitations"Ian Jackson2022-10-211-6/+0
| | | | | | | | | | | | | | | | | | | | This doesn't make sense now we've released Arti 1.0. The version number is enough I think.
| * | | tor-dirmgr README: Remove some redundant/duplicated headingsIan Jackson2022-10-211-4/+0
| | |/ | |/|
* | | Merge branch 'ci-cleanup' into 'main'Ian Jackson2022-10-212-2/+38
|\ \ \ | | | | | | | | | | | | | | | | cleanup target dir on job completion See merge request tpo/core/arti!786
| * | | cleanup target dir on job completiontrinity-1686a2022-10-212-2/+38
| | | |
* | | | Merge branch 'no_redundant_copy' into 'main'Ian Jackson2022-10-211-2/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | tor-cell: Avoid redundant pointer copy See merge request tpo/core/arti!791
| * | | tor-cell: Avoid redundant pointer copyEmil Engler2022-10-211-2/+2
| | |/ | |/| | | | | | | | | | | | | This commit changes an iteration by copying a u16 (which is 2 bytes) instead of a pointer address, which is most likely 8 bytes on most machines.
* | | Merge branch 'bridge-api-error' into 'main'Nick Mathewson2022-10-215-5/+22
|\ \ \ | |_|/ |/| | | | | | | | Make error from bridge descriptor provider be a trait object See merge request tpo/core/arti!796
| * | tor-guardmgr: descs: Make BridgeDescError DynCloneIan Jackson2022-10-213-1/+6
| | |
| * | tor-guardmgr: descs: Make BridgeDescError into a traitIan Jackson2022-10-211-4/+15
| | |
| * | tor-error: make HasRetryTime object-safeIan Jackson2022-10-212-1/+2
|/ / | | | | | | | | | | | | | | We could in the future provide a version of abs_retry_time which took an &dyn closure if that turns out to be wanted. I think this isn't a semver break because trait implementors are allowed to relax bounds.
* | Merge branch 'whoops_unused_imports' into 'main'Nick Mathewson2022-10-211-3/+9
|\ \ | | | | | | | | | | | | Oops: Mark some imports as pt-client only. See merge request tpo/core/arti!794
| * | Oops: Mark some imports as pt-client only.Nick Mathewson2022-10-211-3/+9
| | | | | | | | | | | | This causes CI problems, and is entirely my fault.
* | | Merge branch 'matrix-features' into 'main'Nick Mathewson2022-10-216-4/+118
|\ \ \ | |/ / |/| | | | | | | | | | | | | | add checks for many feature combinations Closes #303 See merge request tpo/core/arti!775
| * | move test to dedicated jobtrinity-1686a2022-10-171-2/+8
| | |
| * | fix doc-feature synchrotrinity-1686a2022-10-163-2/+10
| | |
| * | add test for many featurestrinity-1686a2022-10-163-2/+102
| | | | | | | | | | | | and fix issue compiling tor-rtcompat with on ssl runtime
* | | Merge branch 'no_redundant_allocation' into 'main'Nick Mathewson2022-10-211-1/+1
|\ \ \ | | | | | | | | | | | | | | | | tor-cell: Avoid redundant allocation See merge request tpo/core/arti!790
| * | | tor-cell: Avoid redundant allocationEmil Engler2022-10-211-1/+1
| | |/ | |/| | | | | | | | | | | | | This commit changes the way how a vector with a known sized gets allocated, by using Vec::with_capacity() instead of Vec::new(). It will eventually avoid an allocation of more memory than required.
* | | Merge branch 'fixed_len_handshake' into 'main'Nick Mathewson2022-10-211-7/+7
|\ \ \ | |/ / |/| | | | | | | | tor-cell: Rename fixed_len to fixed_len_handshake See merge request tpo/core/arti!789
| * | tor-cell: Rename fixed_len to fixed_len_handshakeEmil Engler2022-10-211-7/+7
|/ / | | | | | | | | | | This commit renames the fixed_len! macro to fixed_len_handshake!, in order to indicate, that this macro is only suited for cells with commands related to handshaking.
* | Merge branch 'dirclient-errors' into 'main'Ian Jackson2022-10-205-43/+147
|\ \ | | | | | | | | | | | | Make DirResponse API not an error handling footgun See merge request tpo/core/arti!782
| * | tor-dirclient: Provide fallible DirResponse::output and into_outputIan Jackson2022-10-202-1/+82
| | |
| * | tor-dirclient: Make DirResponse be CloneIan Jackson2022-10-202-1/+2
| | | | | | | | | | | | I want this for testing. It seems friendly to provide it, though.
| * | tor-dirclient: Introduce RequestError:HttpStatusIan Jackson2022-10-201-0/+5
| | |
| * | tor-dirclient: Make RequestFailed its own error type (rustfmt)Ian Jackson2022-10-201-12/+18
| | | | | | | | | | | | Split off to assist review.
| * | tor-dirclient: Make RequestFailed its own error typeIan Jackson2022-10-204-31/+38
| | | | | | | | | | | | | | | | | | | | | We're going to have functions on Response that fail by returning only one of these. Sadly this diff is quite noisy.
| * | tor-dirclient Response: Rename output methodsIan Jackson2022-10-203-7/+11
| | | | | | | | | | | | | | | These don't check errors and are therefore quite hazardous. I'm going to introduce a more cooked version in a moment.