summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | tor-netdoc: GloballyInternable for PortPolicyClara Engler2026-06-241-10/+6
| | | |
| * | | tor-netdoc: GloballyInternable for RelayFamilyClara Engler2026-06-241-10/+5
| | | |
| * | | Add derive-deftly for GloballyInternableClara Engler2026-06-241-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | Adds a derive-deftly based macro so that interfacing code can derive GloballyInternable on structs in order to save redundant and repetitive implementation calls.
| * | | Add derive-deftly to tor-basic-utilsClara Engler2026-06-243-0/+5
| | | | | | | | | | | | | | | | We will make use of it in the next commit.
| * | | Define GloballyInternable traitClara Engler2026-06-241-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This defines a trait called GloballyInternable with a single method `.intern_cache()` returning a static reference to the globally available cache. The next commit will add a derive-deftly based macro for it.
| * | | Use Intern<T> (fmt)Clara Engler2026-06-241-1/+3
| | | | | | | | | | | | | | | | No functional change.
| * | | Use Intern<T>Clara Engler2026-06-245-16/+20
| | | | | | | | | | | | | | | | | | | | This commit modifies the codebase to actually return Intern<T> in InternCache<T> and adds calls to .into() accordingly.
| * | | Introduce Intern<T>Clara Engler2026-06-241-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new type for use with InternCache<T>: Intern<T>. Right now, we have the problem that this cache returns a general Arc<T>, which leads to the issue that we quickly loose overview from where values originate. With this type, it becomes clearer from where they come. In the next commit, we will adjust InternCache and the remaining codebase accordingly.
* | | | Merge branch 'incoming-reject' into 'main'gabi-2502026-06-248-85/+272
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | proto: Add circ reactor scaffolding for rejecting pending streams Closes #2590 See merge request tpo/core/arti!4139
| * | | proto: Rename LocalApplicationStream for clarityGabriela Moldovan2026-06-231-4/+4
| | | | | | | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/4139#note_3429586
| * | | proto: Rework error handling in `HopMgr::get_or_spawn_reactor()`Gabriela Moldovan2026-06-232-13/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reworks `get_or_spawn_reactor()` to return `Error` instead of `ReactorError`. The main change here is that we now have a dedicated `Error::Spawn` variant for `SpawnError`s, instead of mapping these to `ReactorError` (which actually triggers a clean shutdown, which is not quite what we want here).
| * | | proto: Simplify StreamEvent::LocalStreamClosed (fmt)Gabriela Moldovan2026-06-231-1/+6
| | | |
| * | | proto: Simplify StreamEvent::LocalStreamClosedGabriela Moldovan2026-06-231-15/+4
| | | | | | | | | | | | | | | | | | | | This doesn't need to contain the `CloseStreamBehavior` or `TerminateReason`, because we always use the same ones.
| * | | proto: Rename StreamEvent::Closed to LocalStreamClosedGabriela Moldovan2026-06-231-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I realized the previous naming was ambiguous. Hopefully this makes it clear that this `StreamEvent` triggers when the MPSC channel connecting the reactor to the local application stream (for example the local TCP connection of the stream, in the case of exit streams) is dropped.
| * | | proto: Remove unnecessary result mappingGabriela Moldovan2026-06-231-1/+1
| | | | | | | | | | | | | | | | This already returns `()` in the `Ok` case.
| * | | proto: Implement ClosePendingStream in the stream reactorGabriela Moldovan2026-06-233-5/+40
| | | | | | | | | | | | | | | | Closes #2590
| * | | proto: Add a helper function for handling closed streams (fmt)Gabriela Moldovan2026-06-231-10/+10
| | | |
| * | | proto: Add a helper function for handling closed streamsGabriela Moldovan2026-06-231-6/+22
| | | | | | | | | | | | | | | | This will soon be reused for implementing `CtrlMsg::ClosePendingStream`.
| * | | proto: Add a new StreamReactor control message for closing streamsGabriela Moldovan2026-06-231-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will be sent by the FWD reactor. Essentially, this going to be the final control message in the chain `IncomingStream::reject()` -> `RelayCirc::reject()` -> `forward::CtrlCmd::ClosePendingStream`-> `HopMgr::close_pending()` -> `stream::CtrlCmd::ClosePendingStream` -> stream gets removed from the stream map, END sent Part of #2590
| * | | proto: Update docs to clarify where the StreamReactor cell sender isGabriela Moldovan2026-06-231-1/+2
| | | |
| * | | proto: Implement RelayCirc::close_pending()Gabriela Moldovan2026-06-231-4/+17
| | | | | | | | | | | | | | | | Closes #2590
| * | | proto: Add a control message for closing pending streams (fmt)Gabriela Moldovan2026-06-231-3/+4
| | | |
| * | | proto: Add a control message for closing pending streamsGabriela Moldovan2026-06-232-1/+41
| | | |
| * | | proto: Replace StreamMsg with a new CtrlMsg typeGabriela Moldovan2026-06-234-26/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the `StreamMsg` `StreamReactor` sender with a new `CtrlMsg` type. This `CtrlMsg` currently only has a `DeliverStreamMsg` variant (which is the same as the old `StreamMsg` type), but will soon grow another variant, for terminating a stream.
| * | | proto: Make the new reject_stream() test check the END cell tooGabriela Moldovan2026-06-231-1/+5
| | | |
| * | | proto: Factor helper macro out of test functionGabriela Moldovan2026-06-231-17/+17
| | | | | | | | | | | | | | | | This is just code motion
| * | | proto: Refactor test macro to not rely on function contextGabriela Moldovan2026-06-231-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | I am about to move this out of the `extend_and_forward()` test, because I want to reuse it in the new `reject_stream()` test for checking that the relay wrote an END cell to the stream.
| * | | proto: Add a test for rejecting an incoming stream in the relay reactorGabriela Moldovan2026-06-231-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test currently fails, because `IncomingStream::reject()` calls `RelayCirc::close_pending()` under the hood, which isn't implemented yet. Part of #2590
* | | | Merge branch 'log_hopsettings' into 'main'Nick Mathewson2026-06-231-1/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | proto: log hop settings at trace upon client circuit opening. See merge request tpo/core/arti!4076
| * | | proto: log hop settings at trace upon client circuit opening.Nick Mathewson2026-06-231-1/+2
| | | |
* | | | Merge branch 'edcert-timerangebound' into 'main'Clara Engler2026-06-233-72/+57
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Use TimerangeBound for EdCert verify See merge request tpo/core/arti!4136
| * | | | tor-netdoc: Blocking TODOs for dangerous callsClara Engler2026-06-231-0/+2
| | | | |
| * | | | tor-checkable: TODO for TimerangeBound from TimeboundClara Engler2026-06-231-0/+4
| | | | |
| * | | | tor-netdoc: Explain why .dangerously_assume_timely() is okClara Engler2026-06-231-0/+2
| | | | |
| * | | | tor-netdoc: Update semver.mdClara Engler2026-06-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This updates semver.md with the breaking changes done to the Ed25519 certificate verification methods.
| * | | | tor-netdoc: Fix EdCert rustdoc numberingClara Engler2026-06-231-16/+14
| | | | |
| * | | | tor-netdoc: Use TimerangeBound for EdCert verify (fmt)Clara Engler2026-06-231-14/+14
| | | | | | | | | | | | | | | | | | | | No functional change.
| * | | | tor-netdoc: Use TimerangeBound for EdCert verifyClara Engler2026-06-231-48/+26
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the .verify() method for the Ed25519 embedded certificates to wrap the result in a TimerangeBound, which inevitably also changes the function signature in terms of arguments to no longer accept SystemTime/Duration arguments.
* | | | Merge branch 'deftly-impl' into 'main'Ian Jackson2026-06-233-24/+15
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Try out deftly $impl feature, mostly in tor-config See merge request tpo/core/arti!4095
| * | | | tor-memquota-cost derive: Tidy formattingIan Jackson2026-06-111-2/+2
| | | | |
| * | | | tor-memquota-cost derive: Use beta_deftly Impl featureIan Jackson2026-06-111-1/+2
| | | | |
| * | | | tor-memquota-cost derive: Use beta_deftly Xmeta default featureIan Jackson2026-06-111-4/+3
| | | | |
| * | | | tor-config: Flattenable: use beta_deftly $impl featureIan Jackson2026-06-111-3/+2
| | | | |
| * | | | tor-config: derive.rs: use beta_deftly $impl featureIan Jackson2026-06-111-16/+8
| | | | |
* | | | | Merge branch 'addr-policy-fix' into 'main'Ian Jackson2026-06-234-68/+55
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: addr policy: Overhaul and fix /0 bug Closes #2589 See merge request tpo/core/arti!4128
| * | | | tor-netdoc: addr policy: Rename variant from Star to AllIan Jackson2026-06-181-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IMO it makes more sense to describe the semantics, than the syntax. (This is a private type at the moment.)
| * | | | tor-netdoc: addr policy: Add tests for overlong prefixesIan Jackson2026-06-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | These are currently accepted. I'm not sure if we want to change that. For now, add a test case.
| * | | | tor-netdoc: addr policy: Use ipnet instead of open-coding it allIan Jackson2026-06-183-31/+19
| | | | | | | | | | | | | | | | | | | | | | | | | ipnet is a very widely used crate which is already in our dependency stack.
| * | | | tor-netdoc: addr policy: Fix /0 handling bugIan Jackson2026-06-181-16/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ADDR/0 is not the same as *, because it specifies the IP version. Turning 0.0.0.0/0 into * is wrong, because * accepts IPv6 too. Do this by abolishing the V4Star and V6Star variants. Sadly Rust thinks that u32 << 32 is an overflow, not zero, so we do still need a special case for a zero prefix length. (But we're about to delete this code.) Fixes #2589.
| * | | | tor-netdoc: addr policy tests: Add test case for IPv4 /0Ian Jackson2026-06-181-0/+1
| | | | | | | | | | | | | | | | | | | | This is, also, wrong.