| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | | tor-proto: removed `Receiver::recv_clone` and implemented `IntoFuture` for ↵ | Steven Engler | 2024-12-10 | 2 | -25/+24 | |
| | | | | | | | | | `Receiver` | |||||
| * | | tor-proto: renamed `CancelledError` to `SenderDropped` | Steven Engler | 2024-12-10 | 1 | -17/+17 | |
| | | | ||||||
| * | | tor-proto: switched from `Slab` to `DenseSlotMap` for waker map | Steven Engler | 2024-12-10 | 2 | -11/+13 | |
| | | | ||||||
| * | | tor-proto: change the message type from `Option<T>` to `Result<T, ↵ | Steven Engler | 2024-12-10 | 1 | -9/+12 | |
| | | | | | | | | | CancelledError>` | |||||
| * | | tor-proto: changed regular comments on `Shared` to doc comments | Steven Engler | 2024-12-10 | 1 | -21/+21 | |
| | | | ||||||
| * | | tor-proto: update docs on `Channel::reactor_closed_rx` | Steven Engler | 2024-12-10 | 1 | -3/+1 | |
| | | | | | | | | | | | This is no longer applicable with the new oneshot broadcast channel design. | |||||
| * | | tor-proto: replace oneshot broadcast channel | Steven Engler | 2024-12-10 | 3 | -138/+563 | |
| | | | | | | | | | | | The old version had some issues, so this is a rewrite which uses slightly lower level synchronization types (`Mutex` and `OnceLock`). | |||||
| * | | tor-proto: replace `Channel`s "closed" state handling | Steven Engler | 2024-12-10 | 2 | -35/+47 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously `Channel` had two concepts of "closed". There was an atomic flag that was set to `true` at the end `Reactor::run`, and an experimental oneshot channel where the sender was dropped when the reactor was dropped. This commit consolidates these two using the `oneshot_broadcast` module. This means that the behaviour is consistent between both "closed" statuses (`is_closing()` and `wait_for_close()`). A channel is considered closed when its reactor is dropped. This also helps progress towards making the channel reactor cancellation safe (see arti#1756). | |||||
| * | | tor-proto: move `ChannelDetails::reactor_closed_rx` to `Channel` | Steven Engler | 2024-12-10 | 1 | -11/+17 | |
| | | | | | | | | | This doesn't need to be shared with the reactor. | |||||
| * | | tor-proto: add 'oneshot_broadcast' util module | Steven Engler | 2024-12-10 | 2 | -0/+246 | |
| | | | ||||||
| * | | tor-key-forge: Abolish the HasKind impl of Error. | Gabriela Moldovan | 2024-12-10 | 2 | -14/+1 | |
| | | | | | | | | | | | | | | | We can't possibly know the `ErrorKind` of such an error, unless we know where the unsupported key came from. Since we can't know this, we should let a higher level crate (like `tor-keymgr`) decide the `ErrorKind` instead. | |||||
| * | | tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp (fmt). | Gabriela Moldovan | 2024-12-10 | 4 | -6/+21 | |
| | | | ||||||
| * | | tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp. | Gabriela Moldovan | 2024-12-10 | 5 | -30/+15 | |
| | | | ||||||
| * | | tor-rtcompat: Add an error type for unsupported StreamOps. | Gabriela Moldovan | 2024-12-10 | 2 | -1/+28 | |
| | | | ||||||
| * | | tor-rtcompat: Add a default implementation for StreamOps::set_tcp_notsent_lowat. | Gabriela Moldovan | 2024-12-10 | 1 | -2/+8 | |
| | | | ||||||
| * | | tor-rtcompat: Clarify the StreamOps documentation. | Gabriela Moldovan | 2024-12-10 | 1 | -4/+6 | |
| | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2660#note_3139562 | |||||
| * | | tor-rtcompat: Require NetStream{Listener,Provider} streams to impl StreamOps ↵ | Gabriela Moldovan | 2024-12-10 | 1 | -2/+6 | |
| | | | | | | | | | (fmt). | |||||
| * | | tor-rtcompat: Require NetStream{Listener,Provider} streams to impl StreamOps. | Gabriela Moldovan | 2024-12-10 | 4 | -8/+14 | |
| | | | | | | | | | Part of #1769 | |||||
| * | | tor-rtcompat: Add tests for set_tcp_notsent_lowat. | Gabriela Moldovan | 2024-12-10 | 1 | -0/+60 | |
| | | | ||||||
| * | | tor-rtcompat: Implement StreamOps for all the stream types. | Gabriela Moldovan | 2024-12-10 | 10 | -8/+132 | |
| | | | | | | | | | Part of #1769 | |||||
| * | | tor-rtcompat: Add a StreamOps trait. | Gabriela Moldovan | 2024-12-10 | 2 | -1/+11 | |
| |/ | | | | | | | | This trait will provide additional operations on `Stream`s. For now, the only supported operation is `set_tcp_notsent_lowat` (needed for #1728). Part of #1769 | |||||
| * | Remove needless cbindgen item. | Nick Mathewson | 2024-12-09 | 2 | -1/+1 | |
| | | ||||||
| * | rpc-client: Reject relative paths. | Nick Mathewson | 2024-12-09 | 3 | -1/+11 | |
| | | ||||||
| * | rpc-client: split paths better on windows. | Nick Mathewson | 2024-12-09 | 1 | -1/+12 | |
| | | ||||||
| * | rpc-client: Add TODOs about links to connect point docs | Nick Mathewson | 2024-12-09 | 1 | -0/+6 | |
| | | ||||||
| * | rpc-client: Rename PathEntry to SearchEntry. | Nick Mathewson | 2024-12-09 | 1 | -18/+18 | |
| | | ||||||
| * | rpc-client: Clarity and consistency in envvar docs | Nick Mathewson | 2024-12-09 | 1 | -10/+20 | |
| | | ||||||
| * | connpt: note an opportunity to save some fds. | Nick Mathewson | 2024-12-09 | 1 | -0/+3 | |
| | | ||||||
| * | connpt: use cfg-if to declare connect point defaults. | Nick Mathewson | 2024-12-09 | 2 | -20/+28 | |
| | | ||||||
| * | artilib: Revise C and Python APIs for builders. | Nick Mathewson | 2024-12-09 | 6 | -40/+231 | |
| | | | | | | | | | | | | | | | | Expose ArtiRpcConnBuilder and appropriate C wrapper functions in our FFI code, and wrap those functions in our python wrapper. This breaks the old C API, but that's allowed since the API is still experimental. Some design decisions: * I've wrapped the builder in a Mutex, so that we can continue our FFI rule that we do not require non-Rust code to wrap `&mut`. * I've removed the non-builder connect() function from the C API as extraneous. * I've made a single function to prepend elements to the search path. | |||||
| * | rpc-client-core: Correct various FFI error types. | Nick Mathewson | 2024-12-09 | 3 | -6/+65 | |
| | | ||||||
| * | rpc-client: Initial implementation for RPC connect points. | Nick Mathewson | 2024-12-09 | 5 | -70/+314 | |
| | | | | | | | | | | This commit covers the major points of the design: Parsing the environment, parsing and resolving connect points, connecting to Arti, and handling errors. There are a few areas that need to be fixed, all marked with XXXXs. | |||||
| * | connpts: duplicate socket before returning. | Nick Mathewson | 2024-12-09 | 1 | -15/+24 | |
| | | | | | | (We want a separate read and write socket before we return, and once we've done the type-erasure, we can't do try_clone().) | |||||
| * | connpts: Add default connect points as constants. | Nick Mathewson | 2024-12-09 | 1 | -0/+60 | |
| | | ||||||
| * | rpc-client: move Builder to its own module. | Nick Mathewson | 2024-12-09 | 3 | -85/+96 | |
| | | ||||||
| * | arti_client_paths: Clean up documentation. | Nick Mathewson | 2024-12-09 | 1 | -4/+7 | |
| | | ||||||
| * | Move base CfgPathResolver for arti-client back to tor-config-path. | Nick Mathewson | 2024-12-09 | 5 | -121/+150 | |
| | | | | | | This time, we make explicit that it is a _base_ resolver, and that it is client-only. | |||||
| * | tor-keymgr: Replace internal error with keystore corruption error. | Gabriela Moldovan | 2024-12-04 | 2 | -1/+5 | |
| | | | | | | This replaces a placeholder error with a concrete `KeystoreCorruptionError` variant. | |||||
| * | tor-keymgr: Add tests for ArtiNativeKeystore's handling of certs. | Gabriela Moldovan | 2024-12-04 | 1 | -1/+29 | |
| | | ||||||
| * | tor-keymgr: Add support for certs in ArtiNativeKeystore::insert(). | Gabriela Moldovan | 2024-12-04 | 1 | -5/+8 | |
| | | ||||||
| * | tor-keymgr: Add support for certs in ArtiNativeKeystore::get(). | Gabriela Moldovan | 2024-12-04 | 1 | -8/+36 | |
| | | | | | | This makes `ArtiNativeKeystore::get` deserialize the keystore item as a cert, if its `KeystoreItemType` is `Cert`. | |||||
| * | tor-keymgr: Add arti native keystore helper for parsing tor certs. | Gabriela Moldovan | 2024-12-04 | 2 | -0/+42 | |
| | | | | | | We'll soon use this in `ArtiNativeKeystore`'s `Keystore` implementation for parsing certs read from disk. | |||||
| * | tor-keymgr: Add tests for the new cert mgmt functions. | Gabriela Moldovan | 2024-12-04 | 1 | -1/+172 | |
| | | ||||||
| * | tor-keymgr: s/TestKey/TestItem in tests. | Gabriela Moldovan | 2024-12-04 | 1 | -55/+55 | |
| | | | | | | We're about to reuse TestKey as our test key "certificate", so let's preemptively rename it to something more fitting. | |||||
| * | tor-keymgr: Add a test certificate specifier to test_utils. | Gabriela Moldovan | 2024-12-04 | 1 | -1/+34 | |
| | | | | | This is about to be used in a couple of places. | |||||
| * | tor-key-forge: Enable use of tor-cert experimental APIs. | Gabriela Moldovan | 2024-12-04 | 1 | -1/+1 | |
| | | ||||||
| * | tor-cert: Add constructor for creating an encoded cert from a byte slice. | Gabriela Moldovan | 2024-12-04 | 2 | -0/+18 | |
| | | | | | | | This adds an experimental API for creating an `EncodedEd25519Cert` from a byte slice. We will need this in `ArtiNativeKeystore` for deserializing the on-disk certs to `KeystoreItem`s. | |||||
| * | tor-key-forge: Export certificate-related types. | Gabriela Moldovan | 2024-12-04 | 1 | -0/+5 | |
| | | ||||||
| * | tor-keymgr: Note some breaking changes in semver.md. | Gabriela Moldovan | 2024-12-04 | 1 | -0/+3 | |
| | | ||||||
| * | tor-key-forge: Implement KeystoreItem::item_type. | Gabriela Moldovan | 2024-12-04 | 2 | -2/+9 | |
| | | ||||||
