summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* rpc ffi: Try a more reference-driven approach to pointer handling.Nick Mathewson2024-07-315-31/+198
|
* Add a script to run cbindgen and check its outputs.Nick Mathewson2024-07-312-0/+370
| | | | | | | | | | This is a bit complicated since: - Using cbindgen with macro expansion requires a nightly rust: so, we have to look for one. - There are some cbindgen warnings which I cannot find any way to suppress, so instead of giving all warnings, it seems better to give a diff from the old list of warnings to the new list.
* rpc: Initial core of an FFI interface.Nick Mathewson2024-07-319-6/+822
| | | | | | | | | This only covers the absolute minimal API in order to launch a connection and run simple requests, and it doesn't document anything nearly well enough. Nonetheless I think it's good enough for an initial review, to make sure that we've got the basics right (as well as a general consensus on the error handling API, naming, and so forth).
* RPC: Make message types able to be CStr or str.Nick Mathewson2024-07-313-22/+65
| | | | (Internally, it is a boxed CStr that is always UTF-8.)
* Merge branch 'sqlite-race' into 'main'gabi-2502024-07-312-9/+62
|\ | | | | | | | | | | | | tor-dirmgr: Return an error if storage is readonly and DB is missing/incompatbile. Closes #1497 See merge request tpo/core/arti!2283
| * tor-dirmgr: Replace from_conn impl with a call to from_conn_internal helper.Gabriela Moldovan2024-07-301-7/+16
| |
| * tor-dirmgr: Return an error if storage is readonly and DB is ↵Gabriela Moldovan2024-07-302-14/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | missing/incompatbile. This fixes a bug in `SqliteStore`'s constructor: previously, it would unconditionally try to create the missing database, even if it didn't have write access. As a result, it was impossible to reliably start multiple concurrent arti processes configured with the same (empty or nonexistent) cache_dir, because many of them would fail with errors such as ``` attempt to write a readonly database: Error code 8: Attempt to write a readonly database ``` Returning a `LocalResourceAlreadyInUse` error kind here enables us to leverage the retry loop from `TorClientBuilder::create_unbootstrapped` (which retries on local resource errors if `local_resource_timeout` is set). Closes #1497
* | Merge branch 'cli-tests' into 'main'gabi-2502024-07-3131-0/+305
|\ \ | | | | | | | | | | | | | | | | | | arti: Add tests for the hss/hsc subcomands Closes #1250 See merge request tpo/core/arti!2275
| * | arti: Add tests for the arti hsc subcommand.Gabriela Moldovan2024-07-3020-0/+146
| | |
| * | arti: Add tests for the arti hss subcommand.Gabriela Moldovan2024-07-3012-0/+159
| |/ | | | | | | Closes #1250
* | Merge branch 'rtmock-doc' into 'main'Ian Jackson2024-07-301-3/+20
|\ \ | | | | | | | | | | | | tor-rtmock docs: Improve discussions of mocked time See merge request tpo/core/arti!2286
| * | tor-rtmock docs: Add some more discussion of the simulated timeIan Jackson2024-07-301-1/+17
| | |
| * | tor-rtmock docs: We have CoarseTimeProvider nowIan Jackson2024-07-301-2/+3
| |/ | | | | | | Improve/replace some out-of-date notes in the docs.
* | arti: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
* | tor-dirmgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
* | fs-mistrust: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-2/+2
| |
* | tor-keymgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-3/+10
| |
* | fslock-guard: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-4/+4
|/
* tor-proto::circuit: Move test-only methods into test moduleJim Newsome2024-07-291-12/+14
|
* tor-proto circuit tests: dedupe circid magic numberJim Newsome2024-07-291-6/+15
|
* tor-proto circuit test: Move to tighter scope and shadow outer defJim Newsome2024-07-291-15/+17
|
* tor-proto circuit tests: delete stale commented-out testJim Newsome2024-07-291-66/+0
|
* tor-proto circuit tests: fix some comment copy-pastaJim Newsome2024-07-291-1/+1
|
* circuit reactor: add comment pointing to tests in other moduleJim Newsome2024-07-291-1/+3
|
* Mark a struct as allowed-to-be-unused.Nick Mathewson2024-07-281-0/+1
| | | | | (This will either become used later, or we will remove it; the TODO RPC will remind us.)
* Fix "clippy::manual-pattern-char-comparison" warning on nightlyNick Mathewson2024-07-282-2/+2
| | | | | | | This warning suggests using `[a,b]` as a Pattern when it sees a search for `|ch| ch == a || ch == b`. (All of our supported rust versions allow this kind of Pattern.)
* Fix new "clippy::needless-maybe-sized" warning on nightlyNick Mathewson2024-07-283-4/+4
| | | | | This warning complains when we say `where T: SomeTrait + ?Sized` when `SomeTrait` is inherently Sized.
* Merge branch 'rpclib-i64-id' into 'main'David Goulet2024-07-251-3/+2
|\ | | | | | | | | rpclib: Use i64 rather than u64 for request IDs. See merge request tpo/core/arti!2279
| * rpclib: Use i64 rather than u64 for request IDs.Nick Mathewson2024-07-221-3/+2
| | | | | | | | This makes it conform to the spec and match arti-rpcserver.
* | Merge branch 'rpcbase-cleanup' into 'main'Nick Mathewson2024-07-2516-268/+192
|\ \ | | | | | | | | | | | | rpcbase: Fix most TODO RPC comments. See merge request tpo/core/arti!2284
| * | rpc: Remove special conversion for SendUpdateError.Nick Mathewson2024-07-252-10/+6
| | |
| * | rpc: Rename the error codes for something like consistency.Nick Mathewson2024-07-256-24/+25
| | |
| * | rpc: Remove RpcError data field and use ReportNick Mathewson2024-07-256-102/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Per discussion, this field isn't really specified in a way that lets us fill it sensibly at the moment. So for now, we're going to just omit it. Additionally, we said that we'd Report on our errors; this branch changes the implementation of RpcError to do that. Question: Will the blanket implementation for Into<RpcError> make it harder to re-add a Data field later on if we want to do so?
| * | rpc: Refactor errors part 1: a new RpcMethod trait.Nick Mathewson2024-07-259-56/+49
| | | | | | | | | | | | | | | It is no longer necessary to say, for every RPC method, that its error type is RpcError.
| * | rpcbase: remove now-unused invoke methodsNick Mathewson2024-07-252-71/+34
| | | | | | | | | | | | | | | | | | | | | These methods were defined on DispatchTable, and then replaced by top-level functions in the crate. (The reason for using top-level functions instead is so that we get the locking on the dispatch table correct.)
| * | rpcbase: Remove a TODO RPC about duplicationNick Mathewson2024-07-251-1/+0
| | | | | | | | | | | | | | | The duplication is only a few lines. I've looked into a couple of ways for removing it, but they make the code flow even less clear.
| * | rpcbase: Replace a TODO with a set of notes and caveatsNick Mathewson2024-07-252-7/+45
| | | | | | | | | | | | | | | | | | We have decided not to remove the "anybody can define methods" property. This commit documents the consequences, and warns extenders away from some really bad ideas.
| * | rpc: remove TODO about adding an extension traitNick Mathewson2024-07-251-4/+0
| | | | | | | | | | | | | | | These functions are called rarely enough that it is probably okay for the ergonomics to be a bit verbose.
| * | rpc: Remove TODO about moving @special to a different macro.Nick Mathewson2024-07-251-4/+0
| | |
| * | rpc: Do not hide InvokeError::Bug when converting to RpcErrorNick Mathewson2024-07-251-18/+35
| | |
| * | rpc: split "method not found"Nick Mathewson2024-07-253-11/+15
| | | | | | | | | | | | | | | We've wanted separate error codes for "no such method exists" and "this method exists, but this object doesn't have it."
| * | rpcbase: remove "Nil" TODO.Nick Mathewson2024-07-251-3/+0
| | | | | | | | | | | | This change would take some serde magic that is probably not worth it.
| * | rpcbase: Use newer "tgens" deftly syntaxNick Mathewson2024-07-251-3/+1
| | |
| * | rpcbase: remove a TODO about expose_outside_of_sessionNick Mathewson2024-07-251-4/+0
| | | | | | | | | | | | (There is no longer such a thing as a "pseudomethod.")
* | | tor-memquota: discuss StreamUnobtrusivePeeker nameIan Jackson2024-07-241-7/+8
| | | | | | | | | | | | | | | See https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2280#note_3051134
* | | tor-memquota: Elide a lifetimeIan Jackson2024-07-241-1/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2280#note_3051270
* | | tor-memquota: Fix a wrong commentIan Jackson2024-07-241-3/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2280#note_3051268
* | | tor-memquota: Provide StreamUnobtrusivePeeker (tests)Ian Jackson2024-07-241-0/+163
| | |
* | | tor-memquota: Provide StreamUnobtrusivePeekerIan Jackson2024-07-245-2/+377
|/ / | | | | | | | | | | I'm not particularly pleased with this name. We need names for both the type, and the trait we'll almost certainly want to introduce in the future.
* | rpclib: Add tests for errors that terminate an RpcConn.Nick Mathewson2024-07-241-1/+101
| |