summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* tor-circmgr: Refactor duplicated circuit stub length calculation.Gabriela Moldovan2024-06-202-27/+26
| | | | Part of #1459
* tor-guardmgr: Make some vanguard test helpers public (fmt).Gabriela Moldovan2024-06-201-10/+5
|
* tor-guardmgr: Make some vanguard test helpers public.Gabriela Moldovan2024-06-202-51/+69
| | | | | | We will soon need these helpers outside of `tor-guardmgr` too. This commit is mainly code motion.
* tor-circmgr: Add a TODO about an unused restriction.Gabriela Moldovan2024-06-201-0/+5
|
* Merge branch 'ticket1432_01' into 'main'David Goulet2024-06-188-0/+67
|\ | | | | | | | | | | | | tls: Support export keying material (RFC 5705) Closes #1432 See merge request tpo/core/arti!2185
| * tls: Support export keying material (RFC 5705)David Goulet2024-06-188-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a function to get the keying material as detailed by RFC 5705. Because native-tls doesn't have such support, there is a place holder panic!() for now. This means that for the forseable future, relay would only work with rustls until we figure out a solution for native-tls. Closes #1432 Signed-off-by: David Goulet <[email protected]>
* | Merge branch 'tolerate_missing_blob' into 'main'Nick Mathewson2024-06-182-24/+164
|\ \ | |/ |/| | | | | | | | | dirmgr::storage: Treat a missing blob file as an absent object. Closes #1466 See merge request tpo/core/arti!2200
| * sqlite: (style) Use consistent casing on "ExtDocs"Nick Mathewson2024-06-181-2/+2
| | | | | | | | SQL is case-insensitive, but it is still nice to be consistent.
| * storage: Remove orphaned files from dir_blobsNick Mathewson2024-06-122-0/+118
| | | | | | | | | | | | | | | | | | | | This patch removes files from dir_blobs if they are not referenced from the database, or if their filenames are not valid UTF-8. (If they were not valid UTF-8, we wouldn't have put them in our database.) To ensure that there can't be any race conditions, we only do this when the file is a bit old.
| * dirmgr: create temporary testing stores with correct paths.Nick Mathewson2024-06-121-3/+3
| | | | | | | | | | Previously, we were putting an (optional) db.sql file and our blobs into the same path, which is not what we do outside of our tests.
| * dirmgr: reformat cargo.tomlNick Mathewson2024-06-121-1/+2
| |
| * dirmgr::storage: Enable foreign keys on our sqlite connections.Nick Mathewson2024-06-121-0/+4
| | | | | | | | | | | | Without this, "ON DELETE CASCADE" will do nothing. Part of fixing #1466.
| * dirmgr::storage: Treat a missing blob file as an absent object.Nick Mathewson2024-06-121-19/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously it was counted as a hard error, which would cause an absolute failure to start if a blob file had been deleted improperly -- for example, by a renegade cache-cleaner that had decided to remove the largest files it could find. Upon encountering a missing blob, we remove it from the database as well: if we did not, then unavailable consensuses could still cause us to try to fetch consensus diffs, because their rows would still be present. Fixes #1466.
* | Merge branch 'deftly-incompat' into 'main'David Goulet2024-06-1831-40/+47
|\ \ | | | | | | | | | | | | Update to derive-deftly 0.12.1 See merge request tpo/core/arti!2209
| * | Change deftly syntax to post 0.12.1 versionIan Jackson2024-06-1716-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Change `pub` to `export` * Change the `=` in define to `:` * Change `pub_template_semver_check` to `template_export_semver_check` Right now, 0.12.1 supports both syntaxes. I have verified this branch also compiles with https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/402 ee171ffaf56d7dcb7d75584054921153fe19b222
| * | Update to derive-deftly 0.12.1Ian Jackson2024-06-1721-23/+30
| | | | | | | | | | | | | | | | | | * Bump in Cargo.toml * Deal with `${Xmeta as ...}` incompatible change, by always specifying an `as`, and changing `as tokens`.
* | | arti: Add a TODO about a possible refactoring.Gabriela Moldovan2024-06-171-0/+2
| | | | | | | | | | | | | | | I propose we move each subcommand implementation to a `subcommand` submodule.
* | | arti: Move arti hss subcommand implementation to separate module.Gabriela Moldovan2024-06-173-38/+58
|/ / | | | | | | This addresses a TODO.
* | Merge branch 'no_built_in_roots' into 'main'Ian Jackson2024-06-131-0/+4
|\ \ | | | | | | | | | | | | rtcompat: Set disable_built_in_roots with native_tls, to save memory with openssl See merge request tpo/core/arti!2203
| * | rtcompat: Set disable_built_in_roots With native_tls.Nick Mathewson2024-06-131-0/+4
| |/ | | | | | | | | | | | | When using openssl on Linux, this saves us about 1.4 MB due to not loading the default CAs and CRLs (which Tor doesn't use.) Addresses part of #1027.
* | dirmgr: Limit the number of mds that we will fetch from sqlite at once.Nick Mathewson2024-06-121-6/+14
| | | | | | | | | | | | This should help limit our memory usage when restarting from cache. Possible (imperfect) solution for #1027.
* | dirmgr: split out the loading part of load_once into a new function.Nick Mathewson2024-06-121-6/+17
|/
* Merge branch 'arti-relay-flag' into 'main'Nick Mathewson2024-06-125-40/+92
|\ | | | | | | | | relay: Add relay cargo feature flag and subcommand See merge request tpo/core/arti!2182
| * relay: Add relay cargo feature flag and subcommandDavid Goulet2024-06-115-40/+92
| | | | | | | | | | | | | | | | | | | | Add the optional non default feature flag "relay" that will be used to enable relay support of arti. This commit also adds the "relay" subcommand to arti binary conditionnal on the feature flag in order to have a place holder starting point. Signed-off-by: David Goulet <[email protected]>
* | Merge branch 'rpc-stream-methods' into 'main'Nick Mathewson2024-06-117-229/+370
|\ \ | | | | | | | | | | | | | | | | | | RPC: Use RPC methods instead of the "ClientConnectionTarget" trait. Closes #1427 See merge request tpo/core/arti!2192
| * | Several typo fixes from GabiNick Mathewson2024-06-112-5/+4
| | |
| * | Un-indent a block.Nick Mathewson2024-06-111-42/+39
| | |
| * | RPC: Use RPC methods instead of the "ClientConnectionTarget" trait.Nick Mathewson2024-06-117-194/+339
| |/ | | | | | | | | | | | | | | | | | | | | | | On its own, this might not seem like a huge improvement, but it will later let us implement these RPC methods for types that can't reasonably implement ClientConnectionTarget. It also serves as a proof of concept that special-method invocation can actually work, so that we can build things like this in cases where introducing a trait isn't practical. Closes #1427
* | Merge branch 'sometimes-unbounded' into 'main'Nick Mathewson2024-06-113-50/+266
|\ \ | | | | | | | | | | | | RFC: Provide and use SometimesUnboundedSender in circuit reactor See merge request tpo/core/arti!2172
| * | SometimesUnboundedSink: Add a test case with some manual sequencingIan Jackson2024-05-301-0/+68
| | |
| * | SometimesUnboundedSink: Write commentary about WakerIan Jackson2024-05-301-0/+36
| | |
| * | SometimesUnboundedSink: Document some error behaviourIan Jackson2024-05-301-0/+4
| | |
| * | SometimesUnboundedSink: Fix a copypaste errorIan Jackson2024-05-301-1/+1
| | | | | | | | | | | | | | | If only I'd used a macro for these, but that's not entirely straightforward.
| * | SometimesUnboundedSink: Narrow dead code allowIan Jackson2024-05-301-2/+1
| | |
| * | Use SometimesUnboundedSink for the circuit reactor's bag-on-the-sideIan Jackson2024-05-291-50/+13
| | |
| * | Implmeent SometimesUnboundedSinkIan Jackson2024-05-292-0/+146
| | |
* | | StorageConfig: complete a missing piece of documentation.Nick Mathewson2024-06-111-1/+1
| | |
* | | StorageConfig: Light reformatting.Nick Mathewson2024-06-111-0/+3
| |/ |/|
* | rpc: Missing rpc_invoker is a Bug.Nick Mathewson2024-06-101-1/+6
| | | | | | | | | | Every method is either "special" or not; therefore, it is always a Bug if we look for an rpc_invoker and don't find one.
* | Add more explanation of InvokerEnt fields.Nick Mathewson2024-06-101-0/+8
| |
* | rpc: Make RpcMgr::lookup_object return context along with object.Nick Mathewson2024-06-102-6/+13
| | | | | | | | The context will make it possible to invoke rpc methods.
* | Implement rpc::Context on Connection directlyNick Mathewson2024-06-101-25/+7
| | | | | | | | | | | | | | | | | | | | | | This lets us get rid of a now-spurious `RequestContext` wrapper type and an extra layer of indirection; it will also make it easier to treat a Connection _as_ a context, so that we can have a context in the socks-rpc interface code. This patch removes a TODO about "treading carefully" when we make this change. When I added that TODO, I had misremembered some implementation details of the RPC object system.
* | rpc: allow Connection::lookup_object to take &selfNick Mathewson2024-06-101-7/+16
| | | | | | | | This will allow us to implement rpc::Context on Connection directly.
* | rpc: Make the connection type always-Arc.Nick Mathewson2024-06-102-5/+5
| |
* | Use refactored invoke_rpc_method in rpcserver.Nick Mathewson2024-06-101-6/+1
| |
* | rpc: Add RPC method invocation based on Context, not dispatch table.Nick Mathewson2024-06-102-1/+58
| | | | | | | | | | | | | | | | Doing it this way will allow us to invoke methods without holding the read lock on the table, implicitly or via the future. I am not yet removing the methods on DispatchTable, since the tests need them; I've added TODOs to revisit and remove later.
* | rpc: Pass around our rpc::Context in an Arc.Nick Mathewson2024-06-107-38/+40
| | | | | | | | | | | | | | | | Formerly we used a Box. That was okay at first, but now that we want RPC methods to be able to invoke other RPC methods, we don't want the Invocable methods to have to consume the Context. This requires that Context become Sync.
* | rpc: refactor DispatchTable invoker lookup into new functionsNick Mathewson2024-06-101-15/+36
| |
* | rpc: Implement Clone and HasKind on InvokeError.Nick Mathewson2024-06-101-1/+11
| |
* | Remove semver.md files.Gabriela Moldovan2024-06-053-15/+0
| | | | | | | | The 1.2.4 release is out, so we won't be needing these anymore.