summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | CircuitCellSender: add methods to implement blocking.Nick Mathewson2025-09-091-0/+41
| | |
* | | proto: add SometimesUnboundedSink::as_inner_mut.Nick Mathewson2025-09-091-0/+11
| | | | | | | | | | | | Include suitable dire warnings about actually using it.
* | | proto: Watch for PaddingEvents in tunnel reactor.Nick Mathewson2025-09-093-5/+81
| | | | | | | | | | | | | | | | | | | | | Here we give every Circuit in a conflux set its own PaddingEventStream, and poll it as appropriate. We don't yet actually implement the "take an action" code.
* | | proto: Make PaddingEventStream implement FusedStream.Nick Mathewson2025-09-082-0/+16
| | |
* | | proto: Make CircuitCellSender type conditional depending on circpadding.Nick Mathewson2025-09-081-13/+116
| | |
* | | Wrap a Circuit's outbound cell queue as its own type.Nick Mathewson2025-09-082-6/+109
| | | | | | | | | | | | This will make it easier to refactor this as needed.
* | | SinkBlocker: Add a comment in poll_flushNick Mathewson2025-09-081-0/+2
| | |
* | | SometimesUnboundedSink: clarifying documentation.Nick Mathewson2025-09-081-0/+7
| | | | | | | | | | | | | | | Explain how exactly its "you-must-poll-me" behavior relates to the rest of the Sink ecosystem.
* | | proto: Make CountingPolicy constructors pub(crate).Nick Mathewson2025-09-081-3/+3
| | |
* | | Require maybenot 2.2.0 for paddingNick Mathewson2025-09-082-3/+2
|/ / | | | | | | | | It cleans up and changes a few things. Changelog at https://github.com/maybenot-io/maybenot/blob/main/crates/maybenot/CHANGELOG.md
* | Merge branch 'conflux-refactor' into 'main'gabi-2502025-09-048-728/+739
|\ \ | | | | | | | | | | | | proto: Move implementation-agnostic conflux parts to a new module See merge request tpo/core/arti!3229
| * | proto: Fix ConfluxStatus docs post-refactoring.Gabriela Moldovan2025-09-041-1/+1
| | |
| * | proto: Apply deferred fmt.Gabriela Moldovan2025-09-041-1/+1
| | |
| * | proto: Group the conflux imports.Gabriela Moldovan2025-09-041-6/+2
| | |
| * | proto: Use ConfluxCmd instead of CircuitCmd.Gabriela Moldovan2025-09-045-52/+58
| | | | | | | | | | | | | | | | | | This enables us to make the conflux handler logic implementation-agnostic (we want to avoid using `CircuitCmd` here, because it is specific to client circuits).
| * | proto: Move abstract conflux handlers outside of the client module.Gabriela Moldovan2025-09-047-650/+657
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves the shared types under `tor_proto::conflux`. Note: the shared types currently import `CircuitCmd` from `client`. A future commit will change the signature of `handle_msg` to return something other than `CircuitCmd` (this will also improve readability, because in reality, that function can never return most `CircuitCmd` variants).
| * | proto: Move cmd_counts_towards_seqno to a new conflux module.Gabriela Moldovan2025-09-044-56/+64
| | | | | | | | | | | | | | | | | | | | | `tor_proto::conflux` is where the shared conflux logic will live. Soon the generic parts of the conflux handlers will be moved there (whereas the client-specific `AbstractConfluxMsgHandler` impl will continue living under `tor_proto::client`).
| * | proto: Make the ConfluxMsgHandler constructor take an abstract handler.Gabriela Moldovan2025-09-043-23/+17
| | | | | | | | | | | | | | | | | | This will enable us to pull `ConfluxMsgHandler` outside of the `client` module (this is needed because relays are meant to use this type as well, but with a different `AbstractMsgHandler`)
* | | Merge branch 'sink_blocker' into 'main'Nick Mathewson2025-09-045-0/+542
|\ \ \ | |/ / |/| | | | | | | | proto: Define a new composable SinkBlocker type. See merge request tpo/core/arti!3228
| * | proto: Define a new composable SinkBlocker type.Nick Mathewson2025-09-045-0/+542
| | | | | | | | | | | | | | | | | | | | | | | | This type wraps a futures::Sink, and allows it to be temporarily blocked and unblocked. I'm going to use this to implement padding-based circuit blocking, according to the designs in !3225.
* | | Merge branch 'gsoc-check-integrity' into 'main'gabi-2502025-09-0411-68/+384
|\ \ \ | | | | | | | | | | | | | | | | arti: keys: Add arti keys check-integrity See merge request tpo/core/arti!3161
| * | | arti: keys: Add `keys check-integrity` CLI toolhjrgrn2025-09-0411-68/+384
| | | |
* | | | Merge branch 'tor_bytes_comment' into 'main'David Goulet2025-09-041-3/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-bytes: simplify comment See merge request tpo/core/arti!3230
| * | | | tor-bytes: simplify commentTobias Stoeckmann2025-09-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first sentence states that we have to reallocate and the second one states that we "might" have to do so. Skip the redundancy. While at it, use the term "to zeroize" instead of introducing "to zero", since the former is already used in a subsequent sentence.
* | | | | Merge branch 'dirserver-http' into 'main'Clara Engler2025-09-047-0/+1674
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | Initialize tor-dirserver See merge request tpo/core/arti!3192
| * | | | tor-dirserver: Allow complexity in some fn'sClara Engler2025-09-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit allows `#[allow(clippy::cognitive_complexity)]` in `HttpServer::serve` and `HttpServer::handler_tx`. Allowing this might be controversial but both functions, especially the latter one, are well documented.
| * | | | tor-dirserver: Set versions to 0.34.0Clara Engler2025-09-041-2/+2
| | | | |
| * | | | tor-dirserver: Add TODOs for unresolved discussionsClara Engler2025-09-041-0/+5
| | | | |
| * | | | tor-dirserver: Remove unused error membersClara Engler2025-09-041-12/+0
| | | | |
| * | | | tor-dirmirror: Schema x-ref for `unsigned_sha3_256`Clara Engler2025-09-041-0/+2
| | | | |
| * | | | tor-dirserver: Add missing sha1 length checkClara Engler2025-09-041-0/+1
| | | | |
| * | | | tor-dirserver: Better wording for "thread poisoned"Clara Engler2025-09-041-2/+2
| | | | |
| * | | | tor-dirserver: Ensure uppercase hex in schemaClara Engler2025-09-041-0/+8
| | | | |
| * | | | tor-dirserver: Use `internal!` macro for errorClara Engler2025-09-041-7/+3
| | | | |
| * | | | tor-dirserver Use `tor_error::Bug`Clara Engler2025-09-043-6/+11
| | | | | | | | | | | | | | | | | | | | This commit uses `tor_error::Bug` for indicating thread poisoning.
| * | | | tor-dirserver: Use `expect` instead of `unwrap`Clara Engler2025-09-041-11/+6
| | | | |
| * | | | tor-dirserver: TODO about endpoint error handlingClara Engler2025-09-041-0/+3
| | | | |
| * | | | tor-dirserver: Rename `cb` to `endpoint_fn`Clara Engler2025-09-041-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | This commit renames `cb` to `endpoint_fn` everywhere, including internal implementations.
| * | | | tor-dirmirror: Add several "TODO DIRMIRROR" linesClara Engler2025-09-044-1/+17
| | | | |
| * | | | tor-dirserver: Enable `PRAGMA foreign_keys=ON`Clara Engler2025-09-041-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | This commit enables `PRAGMA foreign_keys=ON;` for every connection by adding an appropriate statement to `schema::prepare_db`.
| * | | | tor-dirserver: Use strum for `ContentEncoding`Clara Engler2025-09-042-33/+43
| | | | |
| * | | | tor-dirserver: Document hex case in schemaClara Engler2025-09-041-1/+1
| | | | |
| * | | | tor-dirserver: Remove `ON DELETE CASCADE` for nowClara Engler2025-09-041-6/+6
| | | | |
| * | | | tor-dirserver: `Unrecognized` to `Incompatible`Clara Engler2025-09-042-2/+2
| | | | |
| * | | | tor-dirserver: Fix clippy warnings in testsClara Engler2025-09-042-3/+31
| | | | |
| * | | | tor-dirserver: Make more err fields `pub(crate)`Clara Engler2025-09-041-2/+2
| | | | |
| * | | | tor-dirserver: Use transactions in endpointsClara Engler2025-09-042-264/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit refactors a large part of the HTTP module, namely it refactors the `Callback` type to a new type called `EndpointFn` which now works in a transaction based approach and no longer gives access to the `StoreCache`. The type itself is also no longer a trait but a concrete type using `fn`. Another very notable change that became necessary during this commit was to make large parts of the codebase synchronous instead of async, namely because it is non-trivial to `Send` a `Transaction` created inside an async context to a synchronous function. Besides, this change has been deemed necessary for other reasons to. The refactoring to more synchronous code has lead to some interesting changes in `StoreCache` too, namely that in no longer uses async mutex, but a synchronous mutex instead.
| * | | | tor-dirserver: Add clippy checks and fix themClara Engler2025-09-045-18/+76
| | | | |
| * | | | tor-dirserver: Add http moduleClara Engler2025-09-044-3/+1188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the initial draft for the HTTP module. It is fairly complicated but well documented within the source code, please refer to that instead.
| * | | | tor-dirserver: Add schema moduleClara Engler2025-09-044-0/+284
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the `schema.rs` module, which implements the database schema alongside some functions for initializing the database and obtaining the database schema version.