summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | docs: Add details of ReplayLog to service side PoW notes.Wesley Aptekar-Cassels2024-12-171-3/+29
| | |
| * | docs: Update notes on service-side PoWWesley Aptekar-Cassels2024-12-171-22/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes a few major changes: * Removes the IptPowInstance type, instead moving that functionality to PowManager, using a RwLock. * Adds detail about the priority queue types / APIs * Makes all members of PowManager wrapped by a Mutex/RwLock, so that the caller doesn't need to worry about that. The caller will still likely need to put it in a Arc, though.
| * | docs: Rework service side PoW draft.Wesley Aptekar-Cassels2024-12-171-74/+93
| | |
| * | docs: Add note on plan for service side PoW.Wesley Aptekar-Cassels2024-12-171-0/+107
|/ /
* | Merge branch 'reverse-hscrypto-key-forge-dep' into 'main'David Goulet2024-12-126-116/+114
|\ \ | | | | | | | | | | | | | | | | | | tor-hscrypto: Move encodable key trait impls from tor-key-forge. Closes #1778 See merge request tpo/core/arti!2668
| * | check_toposort: Topologically sort the dependency.Gabriela Moldovan2024-12-111-1/+1
| | | | | | | | | | | | | | | Now `tor-hscrypto` depends on `tor-key-forge`, so we need to update their ordering in `Cargo.toml`.
| * | tor-hscrypto: Move encodable key trait impls from tor-key-forge.Gabriela Moldovan2024-12-115-115/+113
| |/ | | | | | | | | | | | | | | | | This enables us to get rid of the tor-key-forge -> tor-hscrypto dependency, partially addressing the TODO from `tor_key_forge::traits`. This commit is mostly code motion. Best reviewed with `--color-moved`. See also #1778
* | Merge branch 'nowat_warning' into 'main'gabi-2502024-12-121-1/+1
|\ \ | | | | | | | | | | | | streamops: Resolve unused-variable warnings. See merge request tpo/core/arti!2673
| * | streamops: Resolve unused-variable warnings.Nick Mathewson2024-12-121-1/+1
|/ /
* | Merge branch 'cbindgen-label' into 'main'Nick Mathewson2024-12-113-1/+3
|\ \ | |/ |/| | | | | | | | | Label our cbindgen output, to detect version incompatibility. Closes #1772 See merge request tpo/core/arti!2662
| * .gitlab-ci.yml: pin to cbindgen 0.27.0Nick Mathewson2024-12-111-1/+1
| | | | | | | | | | | | | | | | This will help us avoid bugs related to using multiple versions in the future. (From time to time, we should upgrade to more recent versions as they become available.)
| * Label our cbindgen output, to detect version incompatibility.Nick Mathewson2024-12-092-0/+2
| | | | | | | | | | | | | | This will help us keep track of whether we are using the pinned-to version of cbindgen. Closes #1772.
* | Merge branch 'chanmgr-dos' into 'main'opara2024-12-106-36/+769
|\ \ | | | | | | | | | | | | tor-proto: consolidate `Channel`s "closed" state handling See merge request tpo/core/arti!2645
| * | tor-proto: replaced error type of `Sender::send_and_wake`Steven Engler2024-12-101-6/+10
| | |
| * | tor-proto: add some (disabled) doc testsSteven Engler2024-12-101-0/+27
| | |
| * | tor-proto: moved `Shared::count_wakers` into 'test' modSteven Engler2024-12-101-13/+12
| | |
| * | tor-proto: changed an `expect` to a `debug_assert`Steven Engler2024-12-101-5/+4
| | |
| * | tor-proto: use thiserror for `SenderDropped`Steven Engler2024-12-101-9/+2
| | |
| * | tor-proto: use `ready!` instead of `match`Steven Engler2024-12-101-5/+3
| | |
| * | tor-proto: `borrowed()` now explicitly returns a `BorrowedReceiverFuture`Steven Engler2024-12-101-3/+2
| | |
| * | tor-proto: improve commentsSteven Engler2024-12-101-15/+31
| | |
| * | Revert "tor-proto: implement `FusedFuture` for receiver futures"Steven Engler2024-12-101-57/+10
| | | | | | | | | | | | This reverts commit d73f8894551d37e3bc36947eccf0c6007ffc066e.
| * | tor-proto: implement `FusedFuture` for receiver futuresSteven Engler2024-12-101-10/+57
| | |
| * | Revert "tor-proto: deduplicate future fields into `FutureState`"Steven Engler2024-12-101-18/+11
| | | | | | | | | | | | This reverts commit acc79ffb44343e52ecb72e27ee8843a63448ff5a.
| * | Revert "tor-proto: implement `FusedFuture` for receiver futures"Steven Engler2024-12-101-79/+33
| | | | | | | | | | | | This reverts commit 2fd105b79c25d919e32e53daf81cb369d1e44331.
| * | tor-proto: implement `FusedFuture` for receiver futuresSteven Engler2024-12-101-33/+79
| | | | | | | | | | | | | | | | | | | | | | | | I considered just using `FutureExt::fuse`, but that becomes a little annoying since the future type is exposed through `IntoFuture::IntoFuture`, which means `ReceiverFuture` would need to wrap a `Fuse`. I figured it's cleaner just to implement the trait directly.
| * | tor-proto: deduplicate future fields into `FutureState`Steven Engler2024-12-101-11/+18
| | |
| * | tor-proto: renamed `ReceiverBorrowedFuture` to `BorrowedReceiverFuture`Steven Engler2024-12-101-5/+5
| | |
| * | tor-proto: renamed `ReceiverOwnedFuture` to `ReceiverFuture`Steven Engler2024-12-101-6/+6
| | |
| * | tor-proto: rename `Receiver::recv` to `borrowed`Steven Engler2024-12-101-24/+24
| | |
| * | tor-proto: moved the `Weak::upgrade` into `Sender::send_and_wake`Steven Engler2024-12-101-22/+15
| | |
| * | tor-proto: changed `wakers` from an `Option<_>` to a `Result<_, ↵Steven Engler2024-12-101-9/+21
| | | | | | | | | | | | WakersAlreadyWoken>`
| * | tor-proto: added `use std::ops::Drop`Steven Engler2024-12-101-3/+4
| | |
| * | tor-proto: removed `Receiver::recv_clone` and implemented `IntoFuture` for ↵Steven Engler2024-12-102-25/+24
| | | | | | | | | | | | `Receiver`
| * | tor-proto: renamed `CancelledError` to `SenderDropped`Steven Engler2024-12-101-17/+17
| | |
| * | tor-proto: switched from `Slab` to `DenseSlotMap` for waker mapSteven Engler2024-12-103-12/+14
| | |
| * | tor-proto: change the message type from `Option<T>` to `Result<T, ↵Steven Engler2024-12-101-9/+12
| | | | | | | | | | | | CancelledError>`
| * | tor-proto: changed regular comments on `Shared` to doc commentsSteven Engler2024-12-101-21/+21
| | |
| * | tor-proto: update docs on `Channel::reactor_closed_rx`Steven Engler2024-12-101-3/+1
| | | | | | | | | | | | | | | This is no longer applicable with the new oneshot broadcast channel design.
| * | tor-proto: replace oneshot broadcast channelSteven Engler2024-12-104-138/+564
| | | | | | | | | | | | | | | 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 handlingSteven Engler2024-12-102-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 Engler2024-12-101-11/+17
| | | | | | | | | | | | This doesn't need to be shared with the reactor.
| * | tor-proto: add 'oneshot_broadcast' util moduleSteven Engler2024-12-102-0/+246
|/ /
* | Merge branch 'remove-haskind' into 'main'David Goulet2024-12-102-14/+1
|\ \ | | | | | | | | | | | | tor-key-forge: Abolish the HasKind impl of Error. See merge request tpo/core/arti!2664
| * | tor-key-forge: Abolish the HasKind impl of Error.Gabriela Moldovan2024-12-102-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.
* | Merge branch 'rtcompat-streamops' into 'main'gabi-2502024-12-1015-12/+252
|\ \ | |/ |/| | | | | | | | | tor-rtcompat: Add a StreamOps trait. Closes #1769 See merge request tpo/core/arti!2660
| * tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp (fmt).Gabriela Moldovan2024-12-104-6/+21
| |
| * tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp.Gabriela Moldovan2024-12-105-30/+15
| |
| * tor-rtcompat: Add an error type for unsupported StreamOps.Gabriela Moldovan2024-12-102-1/+28
| |
| * tor-rtcompat: Add a default implementation for StreamOps::set_tcp_notsent_lowat.Gabriela Moldovan2024-12-101-2/+8
| |