summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'special_methods' into 'main'Nick Mathewson2024-05-169-37/+264
|\ \ | | | | | | | | | | | | | | | | | | Allow RPC methods with non-serializable types Closes #1403 See merge request tpo/core/arti!2152
| * | Add a few "TODO RPC" notesNick Mathewson2024-05-162-0/+8
| | |
| * | RPC: Expose dispatch table from ContextNick Mathewson2024-05-163-0/+11
| | | | | | | | | | | | | | | We need to do this so that we can actually invoke RPC functions from one another.
| * | RPC: Fill in documentation about invoke_specialNick Mathewson2024-05-162-6/+27
| | |
| * | Tests for invoke_specialNick Mathewson2024-05-161-0/+42
| | |
| * | RPC: Fix types for DispatchTable::invoke_specialNick Mathewson2024-05-161-11/+14
| | | | | | | | | | | | | | | Now that Method::Error exists, we can downcast Any to the actual function's return type.
| * | RPC: Require an Error type in methods.Nick Mathewson2024-05-167-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | This is needed so that we can cast special methods' return types properly. I wish I could make this optional, but Rust doesn't allow defaulting an associated type.
| * | Rpc: Allow invoker_ents to be marked as @specialNick Mathewson2024-05-161-7/+21
| | | | | | | | | | | | A @special invoker does not get an RPC entry.
| * | Relax Serialize requirement on method outputs.Nick Mathewson2024-05-162-11/+13
| | | | | | | | | | | | | | | Now Methods can return anything; and only if their outputs are Serialize will they implement RpcInvocable.
| * | Split Invocable into RpcInvocable.Nick Mathewson2024-05-161-50/+77
| | | | | | | | | | | | | | | RpcInvocable will only be implemented on types whose output can be serialized.
| * | RPC: Add an "invoke special" mechanismNick Mathewson2024-05-161-1/+62
| | | | | | | | | | | | This is part of work on #1403.
| * | rpc: Move typetag onto subtrait of DynMethodNick Mathewson2024-05-164-23/+43
| | | | | | | | | | | | | | | | | | This will allow us to create dispatchable methods that are only invoked from inside the arti code, and are not themselves serializable.
* | | Merge branch 'vanguards-stub-terminology' into 'main'gabi-2502024-05-163-71/+83
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-circmgr: Replace STUB/STUB+ terminology with SHORT/EXTENDED. Closes #1339 See merge request tpo/core/arti!2161
| * | | tor-circmgr: Fix a broken doc link.Gabriela Moldovan2024-05-161-1/+1
| | | |
| * | | tor-circmgr: Clarify module-level docs.Gabriela Moldovan2024-05-161-0/+6
| | | |
| * | | tor-circmgr: Replace STUB/STUB+ terminology with SHORT/EXTENDED (fmt).Gabriela Moldovan2024-05-161-1/+3
| | | |
| * | | tor-circmgr: Replace STUB/STUB+ terminology with SHORT/EXTENDED.Gabriela Moldovan2024-05-163-46/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous STUB/STUB+ terminology was confusing, because STUB and STUB+ are both "circuit stubs" (but STUB is shorter than STUB+). Closes #1339
| * | | tor-circmgr: Rename HsCircStubKind::Stub to HsCircStubKind::Short.Gabriela Moldovan2024-05-163-25/+31
| | | | | | | | | | | | | | | | Part of #1339
* | | | Merge branch 'enforce_sendme_max' into 'main'Nick Mathewson2024-05-163-5/+16
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | proto: Explicitly enforce maxima on SENDME windows. See merge request tpo/core/arti!2150
| * | | proto: Explicitly enforce maxima on SENDME windows.Nick Mathewson2024-05-143-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No actual bug here, just technical debt: For `SendWindow`s, our tag system already ensured that we rejected any SENDME that didn't correspond to an appropriate drain. Still, it doesn't hurt to check. For `RecvWindow`s, it would have been a protocol violation if we ever did this, but it makes sense to make it an internal error if we try. Part of #1383.
* | | | Merge branch 'enforce_method_names' into 'main'Nick Mathewson2024-05-167-11/+138
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RPC: Enforce method name format. Closes #823 See merge request tpo/core/arti!2149
| * | | | RPC: Give error from RpcMgr::new if method name is sufficiently bad.Nick Mathewson2024-05-142-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | (We don't give an error about unrecognized namespaces (for now), since we have no way to opt in to them.)
| * | | | RPC: Enforce method name format.Nick Mathewson2024-05-144-1/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to do this carefully, since we want our system to be extensible with new namespaces. First, when we are constructing an RpcMgr, we _warn_ about any method names that are misformed. Second, we add a test in the `arti` crate to fail if any method names are invalid. This will only catch method names in crates that `arti` depends on.
| * | | | RPC: Use RPC method names in a consistent format.Nick Mathewson2024-05-143-6/+6
| |/ / / | | | | | | | | | | | | | | | | Specifically, we want a single colon, and we want our method names to be in snake_case.
* | | | Merge branch 'use-locked-build' into 'main'Ian Jackson2024-05-162-2/+2
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | doc: Use locked build See merge request tpo/core/arti!2157
| * | | doc: Use locked buildpinkforest2024-05-162-2/+2
| | | |
* | | | Merge remote-tracking branch 'upstream/main' into HEADGabriela Moldovan2024-05-15115-1170/+2411
|\| | |
| * | | arti-client: Add one-hop circuit examplejuga2024-05-152-0/+67
| | |/ | |/| | | | | | | Co-authored-by: gabi-250 <[email protected]>
| * | Merge branch 'vanguards-extend-stub' into 'main'gabi-2502024-05-142-22/+98
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-circmgr: If necessary, extend the circuit to become STUB+. Closes #1400 and #1409 See merge request tpo/core/arti!2145
| | * | tor-circmgr: Reword a somewhat inaccurate comment about vanguards.Nick Mathewson2024-05-141-1/+1
| | | |
| | * | tor-circmgr: Fix path not being extended if lite vanguards are enabled.Gabriela Moldovan2024-05-141-1/+10
| | | |
| | * | tor-circmgr: Assign error-handling closure to variable.Gabriela Moldovan2024-05-141-7/+10
| | | | | | | | | | | | | | | | We will soon need to reuse this.
| | * | tor-circmgr: Rename neighbor_exclusion variables for clarity.Gabriela Moldovan2024-05-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | I am about to reuse one of these on the "lite" vanguards branch. I am renaming them to make it easier to see which one of the two I will be using.
| | * | tor-circmgr: After building the HS path, assert the length is correct.Gabriela Moldovan2024-05-141-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | One of these assertions currently fails, because we have a bug in the vanguard path builder: if lite vanguards are enabled, we only build 2-hop circuits instead of 3.
| | * | tor-circmgr: If necessary, extend the circuit to become STUB+.Gabriela Moldovan2024-05-131-8/+42
| | | | | | | | | | | | | | | | Closes #1400
| | * | tor-circmgr: Add a helper for extending HsCircStubs by one hop.Gabriela Moldovan2024-05-131-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | We're about to use this in `maybe_extend_stub_circuit` too. Part of #1400
| * | | DirMgr: Clarify dead_code status on storage methods.Nick Mathewson2024-05-141-2/+5
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | Per comments on #1383, we're keeping these methods. This commit replaces the "TODO" comments with comments explaining why it's okay that this methods are unused. Part of #1383.
| * | Merge branch 'rpc_stream_integration_v3' into 'main'Nick Mathewson2024-05-1411-75/+523
| |\ \ | | | | | | | | | | | | | | | | RPC: Allow SOCKS applications to create streams. See merge request tpo/core/arti!2143
| | * | RPC: Use a slightly less awful workaround in socks.rsNick Mathewson2024-05-141-20/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that Rust won't let us say ``` type ConnTarget<R> = Arc<dyn ClientConnectionTarget>; ``` because the R parameter wasn't used. Previously we solved this by using a macro instead of a type definition, which is ugly. I had been thinking previously I would need to declare some kind of additional wrapper type, and had shrunk from the verbosity. But @diziet pointed out that I could just use a 2-tuple unconditionally. It's still not beautiful, but it is less hideous than before.
| | * | RPC: Add notes about ClientConnectionTargetNick Mathewson2024-05-141-0/+7
| | | | | | | | | | | | | | | | | | | | Document its relation to the method system, and possible future evolution.
| | * | RPC: Require DynClone for ClientConnectionError.Nick Mathewson2024-05-143-5/+8
| | | |
| | * | RPC: Seal ClientConnectionError.Nick Mathewson2024-05-141-2/+19
| | | |
| | * | RPC: Document RpcDataSTream state transitions.Nick Mathewson2024-05-141-1/+19
| | | |
| | * | RPC: Rename RpcDataStream::{Waiting => Launching}Nick Mathewson2024-05-141-5/+9
| | | | | | | | | | | | | | | | Also, improve documentation.
| | * | proto: Fix compilation with stream-ctrl but not experimental-api.Nick Mathewson2024-05-142-2/+2
| | | |
| | * | Remove excess indentation from last commit.Nick Mathewson2024-05-141-14/+11
| | | | | | | | | | | | | | | | (This is a separate commit to make the branch more readable)
| | * | RPC: Refactor socks interpretation to remove stream id, add isolation.Nick Mathewson2024-05-141-41/+41
| | | |
| | * | RPC: RpcDataStream type to act as a "stream-shaped hole"Nick Mathewson2024-05-146-0/+242
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The application creates these, using a new-stream-handle RPC command, on an object that can actually create streams. Then later, the application provides the (global) identity of one of these objects when it's making a SOCKS connection. This causes the object to take hold of a `DataStreamCtrl`.
| | * | RPC: Add a trait that can be the target of SOCKS requestsNick Mathewson2024-05-126-28/+174
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (These will later become objects that can receive any application request, once we have HTTP connect.) For now, Session and TorClient implement this trait; but soon there will be a new type to hold on to the created DataStreamCtrl. There are some XXXXs here, marking code that is too ugly to live. I should fix it before I merge this branch.
| * / Suppress a false positive for a new lint on Rust BetaIan Jackson2024-05-131-0/+1
| |/