| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | rpc: Move typetag onto subtrait of DynMethod | Nick Mathewson | 2024-05-16 | 2 | -7/+8 | |
| | | | | | | | This will allow us to create dispatchable methods that are only invoked from inside the arti code, and are not themselves serializable. | |||||
| * | RPC: Give error from RpcMgr::new if method name is sufficiently bad. | Nick Mathewson | 2024-05-14 | 1 | -4/+22 | |
| | | | | | | (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 Mathewson | 2024-05-14 | 1 | -0/+6 | |
| | | | | | | | | | | | | | 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 Mathewson | 2024-05-14 | 2 | -3/+3 | |
| | | | | | | Specifically, we want a single colon, and we want our method names to be in snake_case. | |||||
| * | RPC: Require DynClone for ClientConnectionError. | Nick Mathewson | 2024-05-14 | 1 | -1/+1 | |
| | | ||||||
| * | RPC: Document RpcDataSTream state transitions. | Nick Mathewson | 2024-05-14 | 1 | -1/+19 | |
| | | ||||||
| * | RPC: Rename RpcDataStream::{Waiting => Launching} | Nick Mathewson | 2024-05-14 | 1 | -5/+9 | |
| | | | | | Also, improve documentation. | |||||
| * | RPC: RpcDataStream type to act as a "stream-shaped hole" | Nick Mathewson | 2024-05-14 | 2 | -0/+228 | |
| | | | | | | | | | | 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 requests | Nick Mathewson | 2024-05-12 | 1 | -6/+55 | |
| | | | | | | | | | | | | | (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. | |||||
| * | RPC: Un-parameterize RpcSession. | Nick Mathewson | 2024-05-09 | 1 | -29/+43 | |
| | | | | | | | | Instead, add a trait so that we can hold TorClient<R> and invoke only the methods on it that we need. This is a partial revert of 47f012829d3381fd896c6b6f20961fbfe2f40f6d. | |||||
| * | rpcserver: rename streams.rs to codecs.rs. | Nick Mathewson | 2024-05-09 | 3 | -2/+2 | |
| | | | | | I think I'm going to add another stream management module here. | |||||
| * | rpc: Teach RpcSession to expose and isolate clients. | Nick Mathewson | 2024-05-09 | 1 | -1/+39 | |
| | | ||||||
| * | Make RpcSession parameterized. | Nick Mathewson | 2024-05-09 | 2 | -22/+22 | |
| | | | | | | | This change allows it to hold a TorClient<R> that isn't type-erased. We'll use this for cases when we need to get the client directly and call functions on it. | |||||
| * | Merge branch 'new_ci_cfg_strategy' into 'main' | Nick Mathewson | 2024-05-07 | 1 | -2/+2 | |
| |\ | | | | | | | | | | | | | add_warning/CI: New strategy to avoid "unexpected-cfgs" warning Closes #1395 See merge request tpo/core/arti!2129 | |||||
| | * | Re-run maint/add_warning. | Nick Mathewson | 2024-05-06 | 1 | -2/+2 | |
| | | | | | | | | | This commit is automatically generated. | |||||
| * | | TorClient: Slightly cleaner (?) interface for registering RPC methods. | Nick Mathewson | 2024-05-06 | 1 | -0/+19 | |
| | | | ||||||
| * | | RPC: Implement methods to get and watch client bootstrap status. | Nick Mathewson | 2024-05-06 | 2 | -3/+11 | |
| |/ | ||||||
| * | Add a dead code allow in RPC code | Ian Jackson | 2024-04-25 | 1 | -0/+1 | |
| | | ||||||
| * | RPC: Remove method and object type from macros. | Nick Mathewson | 2024-04-22 | 2 | -4/+4 | |
| | | | | | | These are no longer needed, since they are inferred from the types of the functions. | |||||
| * | rpc: Move deftly attributes into an `rpc` namespace. | Nick Mathewson | 2024-04-11 | 3 | -6/+6 | |
| | | ||||||
| * | Globally rename rpc_invoke_fn to static_rpc_invoke_fn | Nick Mathewson | 2024-04-08 | 2 | -5/+5 | |
| | | | | | | | | | This will be called _static_ to make it clear that it registers the method statically, so you don't need to install it at runtime. After a bit more work, there will be a separate macro that declares an installer function. | |||||
| * | Refactor: remove existence of HasConstTypeId_ as a trait | Nick Mathewson | 2024-04-08 | 4 | -7/+7 | |
| | | | | | | | | | | We don't actually need this to be a trait; we just need methods and objects to have a `CONST_TYPE_ID_` if they want to participate in the inventory-based method registry. Removing this trait makes it much simpler to declare methods and objects. | |||||
| * | Port many of the macros in tor-rpcbase to use derive-deftly. | Nick Mathewson | 2024-04-04 | 5 | -17/+36 | |
| | | | | | | | This simplifies our implementation logic in a few places, and simplifies our invocation syntax greatly. There are a few infelicities, noted in `TODO RPC` comments. | |||||
| * | Run maint/add_warning. | Nick Mathewson | 2024-03-13 | 5 | -0/+5 | |
| | | ||||||
| * | deny clippy::unchecked_duration_subtraction | trinity-1686a | 2024-02-29 | 1 | -0/+1 | |
| | | ||||||
| * | clippy: Use Result::cloned in several places | Ian Jackson | 2024-01-31 | 1 | -1/+1 | |
| | | ||||||
| * | arti-rpcserver: Add an allow | Ian Jackson | 2024-01-31 | 1 | -0/+1 | |
| | | ||||||
| * | Upgrade to latest asynchronous_codec (0.7.0) | Nick Mathewson | 2023-10-17 | 1 | -2/+2 | |
| | | ||||||
| * | oneshot: Use veneer in arti-rpcserver | Ian Jackson | 2023-10-11 | 1 | -1/+2 | |
| | | ||||||
| * | Run maint/add_warning to add lint block everywhere | Ian Jackson | 2023-08-23 | 5 | -0/+5 | |
| | | ||||||
| * | Run add_warnings on all files. | Nick Mathewson | 2023-08-04 | 1 | -2/+2 | |
| | | ||||||
| * | Fix typos | Dimitris Apostolou | 2023-07-22 | 2 | -2/+2 | |
| | | ||||||
| * | Run maint/add_warning to actually apply new lint allows | Ian Jackson | 2023-07-10 | 6 | -0/+6 | |
| | | ||||||
| * | Remove explicit allows for missing_panics_docs. | Nick Mathewson | 2023-07-06 | 1 | -1/+0 | |
| | | | | | These are no longer needed. | |||||
| * | Run add_warning to remove `missing_panics_doc` deny. | Nick Mathewson | 2023-07-06 | 1 | -1/+0 | |
| | | | | | Closes #950. | |||||
| * | lints: Run maint/add_warning to actually apply new lints | Ian Jackson | 2023-06-21 | 1 | -0/+2 | |
| | | ||||||
| * | Merge branch 'rpcdoc' into 'main' | Ian Jackson | 2023-06-20 | 3 | -7/+51 | |
| |\ | | | | | | | | | rpc: Minor docs improvements See merge request tpo/core/arti!1260 | |||||
| | * | rpc: Fix docs typo | Nick Mathewson | 2023-06-20 | 1 | -1/+1 | |
| | | | ||||||
| | * | rpc: Expand and clarify and cross-reference lock hierarchy | Ian Jackson | 2023-06-16 | 2 | -6/+34 | |
| | | | ||||||
| | * | rpc: Document relationship between `Connection` and `RpcSession` | Ian Jackson | 2023-06-16 | 2 | -1/+17 | |
| | | | ||||||
| * | | Fix compilation afver last suggestion. | Nick Mathewson | 2023-06-16 | 1 | -1/+2 | |
| | | | ||||||
| * | | Apply 1 suggestion(s) to 1 file(s) | Ian Jackson | 2023-06-16 | 1 | -0/+1 | |
| |/ | ||||||
| * | rpc: Document and apply lock hierarchy for Mgr/Connection | Nick Mathewson | 2023-06-15 | 1 | -4/+13 | |
| | | ||||||
| * | rpc: Give the session-creation function an argument. | Nick Mathewson | 2023-06-15 | 4 | -10/+18 | |
| | | | | | | | This will later let us tell the session-creation function how the authentication occurred, which will let it decide what privileges to provide. | |||||
| * | rpc: revise session initialization a lot. | Nick Mathewson | 2023-06-15 | 4 | -37/+52 | |
| | | | | | | | | | | | | | | | Formerly, every time we wanted to launch a new connection, we had to give the RpcMgr a TorClient. The connection would hold that TorClient until a session was authenticated, and then would wrap it in a Session and put it in the object map. Now, the RpcMgr holds a Box<dyn Fn()...> that knows how to create Sessions. When a connection is authenticated, it asks the Mgr to make it a new session. This lets us make it clearer that the TorClient simply can't be given out until the connection is authenticated. Later, it will let us create more types of Session objects under more complicated rules. | |||||
| * | rpc: Rename Session=>RpcSession | Nick Mathewson | 2023-06-15 | 3 | -9/+9 | |
| | | ||||||
| * | rpc: Expose Session object. | Nick Mathewson | 2023-06-15 | 2 | -3/+13 | |
| | | | | | | We'll want to move the responsibility for creating Sessions outside the rpcmgr crate. | |||||
| * | RPC: rename new_session to new_connection | Nick Mathewson | 2023-06-15 | 1 | -1/+1 | |
| | | ||||||
| * | rpc: switch GlobalId mac to KMAC. | Nick Mathewson | 2023-06-14 | 1 | -14/+4 | |
| | | ||||||
| * | rpc: connection_id _is_ used: remove a comment to the contrary | Nick Mathewson | 2023-06-14 | 1 | -3/+0 | |
| | | ||||||
