summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | rpclib: Test low-level reader/writer.Nick Mathewson2024-07-242-0/+126
| |
* | rpc: Relax 'static requirement on execute_with_updates closure.Nick Mathewson2024-07-241-1/+1
| | | | | | | | This turns out not to be necessary.
* | rpclib: do not include `"meta":null` when serializing.Nick Mathewson2024-07-241-0/+1
| |
* | rpclib: re-encode outgoing requests.Nick Mathewson2024-07-241-5/+6
| | | | | | | | | | | | I hadn't been sure that we wanted to do this, since arti is forgiving about its inputs, but IIRC Diziet was in favor of this, and it _does_ make it easier to write tests.
* | Merge branch 'memquota-typed' into 'main'Ian Jackson2024-07-246-38/+469
|\ \ | | | | | | | | | | | | tor-memquota: HasMemoryCost trait, and type-safe methods See merge request tpo/core/arti!2282
| * | tor-memquota: Test Debug, Display and HasKind impls for errorsIan Jackson2024-07-241-0/+72
| | |
| * | tor-memquota: impl HasKind for StartupError and ReclaimCrashedIan Jackson2024-07-241-0/+19
| | | | | | | | | | | | | | | Trying to write comprehensive tests for the errors showed that these impls were missing.
| * | tor-memquota: impl HasKind for ReclaimedErrorInnerIan Jackson2024-07-241-1/+7
| | | | | | | | | | | | This will make testing easier.
| * | tor-memquota: Fix Display impl for Error::TrackerCorruptedIan Jackson2024-07-241-1/+1
| | | | | | | | | | | | | | | Bug found in review: https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2282#note_3051101
| * | tor-memquota: memory_cost: Introduce try_claim (tests)Ian Jackson2024-07-241-0/+31
| | |
| * | tor-memquota: memory_cost: Introduce try_claimIan Jackson2024-07-241-0/+38
| | | | | | | | | | | | | | | Our stream wrapper is going to want this. It's fiddly enough that doing it as a standalone facility seems sensible.
| * | tor-memquota: memory_cost: New trait and typed wrappers (tests)Ian Jackson2024-07-241-0/+69
| | |
| * | tor-memquota: memory_cost: New trait and typed wrappersIan Jackson2024-07-243-0/+158
| | |
| * | tor-memquota: Expose some test utilities for the rest of the crateIan Jackson2024-07-242-5/+8
| | |
| * | tor-memquota: Improve register_participant_with (fmt)Ian Jackson2024-07-241-18/+24
| | |
| * | tor-memquota: Improve register_participant_withIan Jackson2024-07-242-13/+16
| | | | | | | | | | | | | | | Now the constructor is able to return other data to the caller, passing it through the mtracker machinery.
| * | tor-memquota: Add get_used_approx accessorIan Jackson2024-07-242-1/+15
| | | | | | | | | | | | | | | I just want this for a test right now, bui it seems like it would be good to expose it publicly.
| * | tor-memquota: Expose TrackerCorruptedIan Jackson2024-07-241-4/+16
| | | | | | | | | | | | | | | We're going to want this as the return value from an accessor function, which cannot fail for any other reason.
* | | tor-memquota: destroy_participant: Clarify "no longer useable"Ian Jackson2024-07-241-1/+2
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2281#note_3051105
* | | tor-memquota: Provide Participant::destroy_participantIan Jackson2024-07-243-0/+70
| | | | | | | | | | | | The stream wrapper is going to want this.
* | | tor-memquota: Correct a wrong commentIan Jackson2024-07-241-2/+1
| | | | | | | | | | | | | | | There is no `p_used` here; what we meant was the very same `ClaimedQty.`
* | | tor-memquota: Tidy up a minor formatting glitch in a doc commentIan Jackson2024-07-241-1/+1
|/ /
* / Tweak documentation for wait_for_stop slightly.Nick Mathewson2024-07-231-1/+7
|/
* Merge branch 'expose-annotated' into 'main'Nick Mathewson2024-07-221-0/+15
|\ | | | | | | | | | | | | tor-netdoc: Dangerously expose annotation fields Closes #1469 See merge request tpo/core/arti!2213
| * tor-netdoc: Dangerously expose annotation fieldsClara Engler2024-06-211-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | This commit exposes the fields of `routerdesc::AnnotatedRouterDesc` and `routerdesc::RouterAnnotation` with the enabled feature `dangerous-expose-struct-fields`. On one side, it achieves a greater consistency among the other structures found within this module; On the other side it makes the already public API (assuming the feature above is enabled) useable. Fixes #1469
* | tor-keymgr: Fix ArtiNativeKeystore::contains() bug.Gabriela Moldovan2024-07-171-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug in `ArtiNativeKeystore`'s `Keystore::contains()` implementation: previously, it called Path::exists() on the relative path (built by concatenating the key specifier and the extension), so unless your current directory happened to be the root of the keystore, `contains()` would always return `false`. `KeyMgr::generate` uses `Keystore::contains()` under the hood, so it was affected by this bug too: if called `overwrite = false`, it would misbehave and overwrite any existing keys. Internally, we call `KeyMgr::generate` in a couple of places: * `tor-hsservice/src/lib.rs`, to generate the `hsid` if it doesn't already exist. This callsite is not affected by the bug, because `KeyMgr::generate` is only called if `KeyMgr::get` returns `None` * `tor-hsservice/src/ipt_mgr.rs`, to generate `KS_hss_ntor` and `KS_hs_ipt_sid` keys for intro point establishment. This callsite is also not affected (because it too calls `get()` before attempting to `generate()`) The bug affects any downstream users that use `KeyMgr::generate` with a key manager backed by `ArtiNativeKeystore`. ------ `KeyMgr::get_or_generate` is not affected, even though it calls `Keymgr::generate` (it performs a separate extra check before calling `generate()`). (Both suffer from a known TOCTOU race, but that's a separate matter.) As an aside, I'd like to somehow unify `KeyMgr::get_or_generate` and `KeyMgr::get` (I've had some attempts in the past but ended up abandoning them because the result was more unergonomic than the existing APIs). Part of #1492
* | tor-keymgr: Rename function to clarify it returns a relative path (fmt).Gabriela Moldovan2024-07-171-1/+2
| |
* | tor-keymgr: Rename function to clarify it returns a relative path.Gabriela Moldovan2024-07-171-15/+15
| |
* | tor-keymgr: Add test for ArtiNativeKeystore::contains.Gabriela Moldovan2024-07-171-0/+2
| | | | | | | | | | | | | | | | | | | | This new assertion fails, because the implementation of `ArtiNativeKeystore::contains()` is buggy: it calls Path::exists() on the relative path built by concatenating the key specifier and the extension (so unless your current directory happens to be the root of the keystore, contains() is always going to return false). Part of #1492
* | Merge branch 'arti-rpc-client-core-v4' into 'main'Nick Mathewson2024-07-1611-0/+1849
|\ \ | | | | | | | | | | | | Lower and middle levels of Arti rpc core, version 4. See merge request tpo/core/arti!2270
| * | RPC: Fix rustdoc links.Nick Mathewson2024-07-162-5/+5
| | |
| * | rpc: Rename response_err and add a TODO about removing itNick Mathewson2024-07-162-2/+7
| | |
| * | rpc: Add TODO about re-normalizing repliesNick Mathewson2024-07-161-0/+4
| | | | | | | | | | | | Also add a link to #1491 where we discuss it more.
| * | rpc: Adjust documentation about reply typesNick Mathewson2024-07-161-8/+16
| | |
| * | rpc: Make "meta" an Option.Nick Mathewson2024-07-161-6/+11
| | |
| * | rpc: Remove negotiation code.Nick Mathewson2024-07-162-53/+5
| | | | | | | | | | | | I think we'll need this again later, but for now it's redundant.
| * | rpc-client: Apply the rest of the big warning set.Nick Mathewson2024-07-164-4/+46
| | |
| * | rpc client: Documentation.Nick Mathewson2024-07-169-11/+179
| | |
| * | Tests and documentation about NULs in the RPC stream.Nick Mathewson2024-07-162-0/+20
| | |
| * | Make ErrorResponse (a string) our preferred way to return an error.Nick Mathewson2024-07-163-11/+56
| | | | | | | | | | | | | | | | | | | | | | | | If we return RpcError by default, we don't give a good way to actually access the original error string. (Nonetheless, we still enforce that errors can be decoded as RpcError.)
| * | rpc-client: Resolve some dead-code warnings.Nick Mathewson2024-07-163-23/+11
| | |
| * | rpc client: Remove Unvalidated{Reader,Writer}.Nick Mathewson2024-07-162-98/+33
| | |
| * | rpc client: resolve unused-foo warnings.Nick Mathewson2024-07-163-4/+2
| | |
| * | rpc-client: Expose a few types as pub.Nick Mathewson2024-07-161-0/+3
| | |
| * | Make RequestId and ObjectId public.Nick Mathewson2024-07-161-2/+2
| | |
| * | Add a TODO about refactoring should_alertNick Mathewson2024-07-161-0/+5
| | |
| * | Rename CmdError to ProtoError.Nick Mathewson2024-07-163-23/+23
| | |
| * | RPC: Implement connection negotiation.Nick Mathewson2024-07-165-29/+211
| | |
| * | WIP: Lower and middle levels of Arti rpc core.Nick Mathewson2024-07-1610-0/+1489
| | |
* | | Merge branch 'rpcbase-testing' into 'main'gabi-2502024-07-165-19/+200
|\ \ \ | |/ / |/| | | | | | | | A bit more test coverage in tor-rpcbase See merge request tpo/core/arti!2264