aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | tunnel: Implement Buildable for ClientTunnelDavid Goulet2025-08-056-88/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to pull this off, the Arc requirement needs to go away because the Arc<ClientCirc> is now within the ClientTunnel. This commit also has a rename of the CircuitBuilder to TunnelBuilder in order to reflect the change that it now builds a ClientTunnel. There is a slight rename in tor-proto as well just for accuracy. Signed-off-by: David Goulet <[email protected]>
* | | proto: Change PendingClientCirc to yield back a ClientTunnelDavid Goulet2025-08-053-27/+28
| | | | | | | | | | | | | | | | | | And rename it in the process to "PendingClientTunnel". Signed-off-by: David Goulet <[email protected]>
* | | circmgr: Major rename for the new Tunnel namespaceDavid Goulet2025-08-058-625/+635
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CircMgr will no longer yield circuits but tunnels (src/tunnel.rs). This is a first step to rename most circuit related objects to use "tunnel" instead. Some "circuit" names have been kept for more precise definitions. No behavior changes. Signed-off-by: David Goulet <[email protected]>
* | | proto: Add last_hop() to Tunnel interfaceDavid Goulet2025-08-052-0/+43
| | | | | | | | | | | | Signed-off-by: David Goulet <[email protected]>
* | | circmgr: New Tunnel object interfaceDavid Goulet2025-08-054-2/+494
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce the new Tunnel structs that is planned to expose publicly as a replacement to `ClientCirc`. Future commits will make those tunnel objects be used accross the code base up until tor-proto which than handles Circuit directly. Signed-off-by: David Goulet <[email protected]>
* | | proto: Move ClientCirc stream functions to ClientTunnelDavid Goulet2025-08-056-483/+456
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to pull this off, some client => tunnel renaming needed to happen including the comments. The send_raw_msg() is an experimental and expert mode method that any tunnel should have access to in order to be able to send whatever message in whatever tunnel type. No behavior changes. Signed-off-by: David Goulet <[email protected]>
* | | proto: Add a new ClientTunnel typeGabriela Moldovan2025-08-053-2/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To use the functionality only allowed on single-circuit tunnels (such as `extend*`), callers will have to call `ClientTunnel::as_single_circ()` to obtain a handle to the underlying `ClientCirc`. This is an opinionated design decision that goes against the plan from [!2790]. It stems from my thinking that it would make more sense to keep `ClientCirc`, than to merge it into `ClientTunnel`. If we merge the two, many functions will need become fallible and less ergonomic, because the user of `ClientTunnel` needs to know whether the `ClientTunnel` consists of a single-circuit or not. Providing (fallible) access to the underlying `ClientCirc` of the `ClientTunnel` seems simpler than the alternative. That being said, I am open to switching back to the original plan if this design turns out to be annoying to work with. [!2790]: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2790
* | | Merge branch 'fix_rustdoc_nightly' into 'main'Nick Mathewson2025-08-0514-8/+30
|\ \ \ | |_|/ |/| | | | | | | | Fix errors from rustdoc nightly. See merge request tpo/core/arti!3124
| * | Fix errors from rustdoc nightly.Nick Mathewson2025-08-0514-8/+30
| | |
* | | Merge branch 'changelog' into 'main'arti-v1.4.6Ian Jackson2025-08-051-1/+1
|\ \ \ | | | | | | | | | | | | | | | | Changelog content for 1.4.6 See merge request tpo/core/arti!3119
| * | | Update the release dateIan Jackson2025-08-051-1/+1
| | |/ | |/|
* | | Bump version of tor-basic-utilsIan Jackson2025-08-0528-35/+35
| | | | | | | | | | | | This was accidentally omitted from my version bump script.
* | | Update hashx-bench lockfileIan Jackson2025-08-051-20/+27
| | | | | | | | | | | | cd crates/hashx/bench && cargo update
* | | Update equix-bench lockfileIan Jackson2025-08-051-20/+27
| | | | | | | | | | | | cd crates/equix/bench && cargo update
* | | Version bumps for 1.4.6Ian Jackson2025-08-0550-445/+445
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made with the following shell script: export CARGO='nailing-cargo -Eu' # Non-functional changes only maint/bump_nodep hashx # Special $CARGO set-version -p arti 1.4.6 # Additional features, no breaking changes, depended on in tree $CARGO set-version -p safelog 0.4.8 # Unconditional bump to 0.33.0 xargs -I P <<END $CARGO set-version -p P 0.33.0 tor-error tor-general-addr tor-geoip tor-rtcompat tor-rtmock tor-async-utils tor-config tor-config-path tor-rpc-connect tor-log-ratelim tor-rpcbase tor-memquota tor-units tor-llcrypto tor-bytes tor-protover tor-checkable tor-cert tor-key-forge tor-hscrypto tor-socksproto tor-linkspec tor-cell tor-proto tor-netdoc tor-consdiff tor-netdir tor-relay-selection tor-persist tor-chanmgr tor-ptmgr tor-guardmgr tor-circmgr tor-dirclient tor-dirmgr tor-keymgr tor-hsclient tor-hsservice tor-hsrproxy tor-relay-crypto arti-client arti-relay arti-rpcserver arti-ureq arti-rpc-client-core END
* | Merge branch 'update' into 'main'Ian Jackson2025-08-0425-26/+26
|\ \ | | | | | | | | | | | | Dependency updates (release prep) See merge request tpo/core/arti!3117
| * | Bump rusqlite to 0.37Ian Jackson2025-08-041-1/+1
| | |
| * | Bump derive-deftly to 1.2.0Ian Jackson2025-08-0424-25/+25
| |/ | | | | | | No upstream changes that break our code.
* | Merge branch 'features' into 'main'Nick Mathewson2025-08-043-1/+4
|\ \ | | | | | | | | | | | | Sort out fixup-features See merge request tpo/core/arti!3120
| * | cargo features: Run fixup-features (fmt)Ian Jackson2025-08-041-1/+2
| | | | | | | | | | | | Manual format tidying
| * | cargo features: Run fixup-featuresIan Jackson2025-08-042-2/+2
| | | | | | | | | | | | | | | | | | This just added some obvious full-transitivity. It left a formatting oddity.
| * | cargo features: Restore "memquota" feature into "full"Ian Jackson2025-08-042-0/+2
| |/ | | | | | | | | Our feature doctrine doesn't have a special case for features that are empty and retained for compatibility. "full" is probably best.
* / arti-ureq: Move `builder()` and `new()` to non-generic PreferredRuntime implnield2025-08-041-4/+6
|/ | | | `builder()` and `new()` always return a runtime with `tor_rtcompat::PreferredRuntime` so these methods should only be implemented for that type.
* tor-memquota: moved auto calc into separate functionSteven Engler2025-07-311-49/+112
|
* tor-memquota: return an error when `total_available_memory()` failsSteven Engler2025-07-311-15/+29
|
* arti: update example configSteven Engler2025-07-311-5/+16
|
* tor-memquota: small fmt change to log messageSteven Engler2025-07-311-1/+1
| | | | | | All other INFO log lines emitted when arti starts begin with an uppercase character, so this line looks out of place if it begins with a lowercase character.
* tor-memquota: change behaviour of "auto"Steven Engler2025-07-311-23/+180
| | | | | A `max` of "auto" (the default) now determines a limit based on the system's total available memory, rather than acting as "disabled".
* tor-memquota: config now supports `ExplicitOrAuto`Steven Engler2025-07-313-17/+61
| | | | | Note that this contains a breaking change to the `ConfigBuilder`. This should not break any existing toml configuration files.
* tor-memquota: add 'cfg-if' and 'sysinfo' dependenciesSteven Engler2025-07-311-0/+2
|
* tor-config: impl `NotAutoValue` for `ByteQty`Steven Engler2025-07-312-0/+4
|
* tor-config: add `ExplicitOrAuto::map` and `From<T> for ExplicitOrAuto<T>`Steven Engler2025-07-311-0/+18
|
* tor-memquota: add config test for `usize::MAX`Steven Engler2025-07-311-0/+4
|
* arti-relay: always enable "tor-memquota/memquota"Steven Engler2025-07-311-2/+1
|
* arti: make "memquota" feature a no-opSteven Engler2025-07-314-34/+35
|
* arti-client: make "memquota" feature a no-opSteven Engler2025-07-312-3/+12
|
* arti-client: always enable "tor-memquota/memquota"Steven Engler2025-07-311-2/+1
|
* Use new DisplayRedacted/DebugRedacted code for HsId.Nick Mathewson2025-07-3113-54/+68
| | | | Closes #2012.
* safelog: Add new DisplayRedacted/DebugRedacted APIs.Nick Mathewson2025-07-312-1/+176
| | | | | | | These APIs differ from Redactable by forcing the caller to choose whether an object should be displayed in redacted or non-redacted form. (Redactable objects still implement Display, which creates the risk of accidentally displaying an un-redacted object.)
* arti: hss: Add `arti hss ctor-migrate`hjrgrn2025-07-3113-46/+353
|
* Merge branch 'configuration-sources-pub' into 'main'Alexander Hansen Færøy2025-07-301-1/+1
|\ | | | | | | | | arti-client: Re-export `ConfigurationSources` See merge request tpo/core/arti!3044
| * arti-client: Re-export `ConfigurationSources`Clara Engler2025-06-111-1/+1
| | | | | | | | | | | | | | This commit re-exports `ConfigurationSources` in `arti_client::config`. The similar `ConfigurationSource` is already publicly exported, but it unfortunately it is pretty useless without a `ConfigurationSources` to which it belongs.
* | proto: Add test for ShutdownAndReturnCircuit error condition.Gabriela Moldovan2025-07-251-0/+47
| | | | | | | | | | | | | | This command is supposed to return an error when handled by a tunnel reactor that has more than one circuit. Prevents the `ConfluxSet::take_single_leg()` bug fixed in 00bb0628.
* | proto: Remove an already-addressed TODO.Gabriela Moldovan2025-07-251-2/+0
| | | | | | | | This was fixed in !3091
* | proto: Remove element_idx + remove in favor of remove_unchecked().Gabriela Moldovan2025-07-251-11/+1
| |
* | proto: Replace hand-rolled exactly_one() impl with itertools.Gabriela Moldovan2025-07-252-52/+27
| | | | | | | | | | | | | | This slightly reduces the amount of code we need to maintain. This also drive-by fixes a bug in `ConfluxSet::take_single_leg`, which previously never actually checked if the conflux set was of size one.
* | proto: Add a ConfluxSet::remove_unchecked method.Gabriela Moldovan2025-07-251-0/+16
| | | | | | | | | | This method will enable us to remove some duplicated code, as well as the `element_idx` function.
* | tor-hsservice: Fix doccomment link.Wesley Aptekar-Cassels2025-07-231-1/+1
| |
* | tor-hsservice: Add monotonic request id to RendRequestOrdByEffort.Wesley Aptekar-Cassels2025-07-231-4/+23
| | | | | | | | | | This ensures that even in situations where multiple requests are received at the exact same time, we will not drop any requests.
* | tor-hsservice: Add note about SUGGESTED_EFFORT_DEADZONE.Wesley Aptekar-Cassels2025-07-231-0/+4
| |