<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/path.rs, branch ios-sqlite-hacks</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=ios-sqlite-hacks</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=ios-sqlite-hacks'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2023-09-18T11:25:36Z</updated>
<entry>
<title>arti-client: add exit selection with GeoIP country codes</title>
<updated>2023-09-18T11:25:36Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2023-08-22T15:52:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a6fe895eb5c605e9c8de7ba871fc2114d65e098c'/>
<id>urn:sha1:a6fe895eb5c605e9c8de7ba871fc2114d65e098c</id>
<content type='text'>
This threads the country codes work through the rest of the codebase:

- `tor-dirmgr` will now enable GeoIP with the embedded database when the
  `geoip` future is enabled
  - This can be extended later using the `DirMgrConfig` to allow
    specifying a custom database; this is not done here, though
- `tor-circmgr`'s `SupportedCircUsage` and `TargetCircUsage` fields gain
  new `country_code` members to allow filtering circuits by country
  - These are `()` in builds where the `geoip` feature is not enabled --
    doing it this way means we don't have to copy and paste huge swathes
    of code, since we can't use `#[cfg]` in patterns
- `ExitPathBuilder` gains (hacked-in) support for choosing a relay with
  the correct country code
  - Due to the lack of conjuction, we just copy and paste a small bit,
    pending further refactoring
- `StreamPrefs` now lets you specify a country code, letting embedders
  make use of the feature
</content>
</entry>
<entry>
<title>remove unused type parameter</title>
<updated>2023-03-18T19:43:17Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2023-03-18T19:43:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a2f2b3175153831f8315336aed6b9eb6c8da67b9'/>
<id>urn:sha1:a2f2b3175153831f8315336aed6b9eb6c8da67b9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>circmgr: downgrade TODO pt-client comments</title>
<updated>2022-11-08T13:31:59Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-08T13:31:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6b422b1c4d19f32b1e70c4808afdff3f071edaa8'/>
<id>urn:sha1:6b422b1c4d19f32b1e70c4808afdff3f071edaa8</id>
<content type='text'>
These are structure-internal things we can solve later, if ever.
</content>
</entry>
<entry>
<title>circmgr: More NOTEs and TODO pt-clients.</title>
<updated>2022-10-24T12:59:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-10-23T20:16:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c4263543d40f1788180a12bc15b608cbd136ecff'/>
<id>urn:sha1:c4263543d40f1788180a12bc15b608cbd136ecff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Circmgr: construct paths using either Relay or OwnedCircTarget</title>
<updated>2022-10-24T12:59:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-10-20T15:37:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=103c88dd9569bcad4d4d8e79225eccc6e2ef91cb'/>
<id>urn:sha1:103c88dd9569bcad4d4d8e79225eccc6e2ef91cb</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Introduce HasRelayIds::same_relay_ids.</title>
<updated>2022-08-02T18:19:00Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-08-02T18:10:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=fdfc5f29e31bb69488482ee01a891134e9f16b83'/>
<id>urn:sha1:fdfc5f29e31bb69488482ee01a891134e9f16b83</id>
<content type='text'>
This method tells if two HasRelayIds contain exactly the same set of
Relay identities, and is generally useful for debugging.
</content>
</entry>
<entry>
<title>tor-linkspec: Refactor out traits to represent a relay's ID set.</title>
<updated>2022-08-02T16:40:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-07-26T14:03:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b68a3ed5e55c4f04c534fc4c643ad1178848d4f7'/>
<id>urn:sha1:b68a3ed5e55c4f04c534fc4c643ad1178848d4f7</id>
<content type='text'>
We want the set of identities supported by a relay to be extensible
in the future with minimal fuss; we'd also like to make working
with these ID sets more convenient.  To handle that, this commit
adds a new trait for "Something that has the same IDs as a relay"
and a new object for "an owned representation of a relay's IDs."

This commit introduces a similar trait for "Something with a list of
SocketAddr, like a relay has."  There's no owned equivelent for
that, since Vec&lt;SocketAddr&gt; is already a thing.

Closes #428.
</content>
</entry>
<entry>
<title>squash! Bump every crate's edition to 2021.</title>
<updated>2022-04-25T17:06:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-25T16:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f6bc6bdc431fa36de70a167eea777dcf3f60bf2'/>
<id>urn:sha1:2f6bc6bdc431fa36de70a167eea777dcf3f60bf2</id>
<content type='text'>
Remove all `use` statements for `TryFrom` and `TryInto`.  These are
now redundant in Rust 2021.
</content>
</entry>
<entry>
<title>circmgr: Use guard-manager's view of the fallbacks when possible.</title>
<updated>2022-03-30T14:39:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T20:56:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ed6389acc7c872854984ae1ea38dbda6542f48cb'/>
<id>urn:sha1:ed6389acc7c872854984ae1ea38dbda6542f48cb</id>
<content type='text'>
If we're building a path with the guard manager involved, we now ask
the guard manager to pick our first hop no matter what.  We only
pick from the fallback list ourselves if we're using the API with no
guard manager.

This causes some follow-on changes where we have to remember an
OwnedChanTarget object in a TorPath we've built, and where we gain
the ability to say we're building a path "from nothing extra at
all."  Those are all internal to the crate, though.

Closes #220, by making sure that we use our guards to get a fresh
netdir (if we can) before falling back to any fallbacks, even if our
consensus is old.

Compilation should be fixed in the next commit.
</content>
</entry>
<entry>
<title>Move fallback.rs into guardmgr.</title>
<updated>2022-03-30T14:34:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T17:38:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d'/>
<id>urn:sha1:80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d</id>
<content type='text'>
This is the logical place for it, I think: the GuardMgr's job is to
pick the first hop for a circuit depending on remembered status for
possible first hops.  Making this change will let us streamline the
code that interacts with these objects.
</content>
</entry>
</feed>
