summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | hsservice: new rend_handshake moduleNick Mathewson2023-08-173-0/+257
| | | | | | | | | | | | | | | | | | | | | | | | | | | This code has most of what we need to go from an INTRODUCE2 message we've just received to the point where we've connected to the rendezvous point and we're waiting for a stream of BEGIN messages. Unfinished pieces are marked with TODO HSS. Most of #980.
| * | cell: Add accessors to IntroduceHandshakePayloadNick Mathewson2023-08-162-0/+16
| | |
| * | cell: Add accessors to Introduce2.Nick Mathewson2023-08-162-0/+18
| | |
* | | Merge branch 'always_bug-from' into 'main'gabi-2502023-08-173-2/+13
|\ \ \ | |_|/ |/| | | | | | | | tor-bytes: deprecate always_bug with From trait See merge request tpo/core/arti!1500
| * | tor-bytes: deprecate always_bug with From traitEmil Engler2023-08-173-2/+13
| | | | | | | | | | | | | | | | | | This commit deprecates the `EncodeError::always_bug` function with a `From<EncodeError> for Bug` trait, which is a more semantically correct way to perform this action.
* | | Merge branch 'handshake-tests' into 'main'gabi-2502023-08-171-0/+15
|\ \ \ | |/ / |/| | | | | | | | test: add a test for missing NETINFO cells See merge request tpo/core/arti!1501
| * | test: add a test for missing NETINFO cellsEmil Engler2023-08-121-0/+15
| | | | | | | | | | | | | | | | | | This commit adds a unit test to the `tor_proto::handshake` module, which tests the behavior when no NETINFO cell is present within a channel.
* | | Merge branch 'all_crates_warnings' into 'main'Nick Mathewson2023-08-165-5/+10
|\ \ \ | | | | | | | | | | | | | | | | Resolve all warnings that appear from `maint/every-crate` See merge request tpo/core/arti!1507
| * | | arti-client: fix conditional unused_import and dead_code warningsNick Mathewson2023-08-162-5/+7
| | | |
| * | | guardmgr: Fix a dead-code warning when built without bridge support.Nick Mathewson2023-08-161-0/+1
| | | |
| * | | tor-proto: Fix dead_code when building without experimental-apiNick Mathewson2023-08-162-0/+2
| | | |
* | | | Merge branch 'netdir-todo' into 'main'gabi-2502023-08-162-23/+112
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-netdir: Only select nodes that haven't been used for lower-numbered replicas. See merge request tpo/core/arti!1494
| * | | | tor-netdir: Replace somewhat niche scan() usage with flat_map().Gabriela Moldovan2023-08-161-9/+7
| | | | |
| * | | | tor-netdir: Rework the logic for checking if a node has already been selected.Gabriela Moldovan2023-08-161-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This just simplifies the expression a little bit. It still has the same behaviour.
| * | | | tor-netdir: Store the hsdir indices in a HashSet instead of a BTreeSet.Gabriela Moldovan2023-08-161-4/+4
| | | | |
| * | | | tor-netdir: Derive Hash for HsDirIndex.Gabriela Moldovan2023-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | This will become useful later when we build a `HashSet` of `HsDirIndex`.
| * | | | tor-netdir: Explain what the ring_items_at filter is for.Gabriela Moldovan2023-08-161-0/+5
| | | | |
| * | | | tor-netdir: Only select nodes that haven't been used for lower-numbered ↵Gabriela Moldovan2023-08-161-15/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | replicas. This implements the part of the spec that says a node that has already been selected for a lowered-numbered replica, shouldn't be considered when choosing `spread` nodes for any other higher-numbered replicas. Note: previously, the test added in this commit wouldn't have passed (because `NetDir::hs_dirs` used to return duplicate relays under some circumstances). Part of #960
| * | | | tor-netdir: Make ring_items_at() filter the items before returning.Gabriela Moldovan2023-08-162-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes `ring_items_at()` take an extra parameter which specifies whether an item is acceptable or not. The newly added filtering capabilities will be used to implement the part of the spec that says that if a node was selected for a replica, then it shouldn't be considered when choosing `spread` nodes for any other higher-numbered replicas.
| * | | | tor-netdir: Update ring_items_at() docs.Gabriela Moldovan2023-08-161-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | This updates the docs to reference the `spread` parameter (rather than `spread_fetch`).
| * | | | tor-netdir: Remove extraneous whitespace.Gabriela Moldovan2023-08-161-1/+1
| | | | |
| * | | | tor-netdir: Use hsdir_spread_store if we're uploading.Gabriela Moldovan2023-08-161-4/+9
| |/ / / | | | | | | | | | | | | | | | | | | | | The spread should be either `hsdir_spread_store` or `hsdir_spread_fetch`, depending on whether we're uploading or downloading descriptors.
* | | | tor-hsservice: Have IptEstablisher::new() return the status watch (fmt)Ian Jackson2023-08-161-2/+1
| | | |
* | | | tor-hsservice: Have IptEstablisher::new() return the status watchIan Jackson2023-08-161-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The IPT manager is going to want to separate the IptEstablisher struct (which contains the Drop signal) from the watch receiver. We could add an accessor to clone the watch, but the copy in the IptEstablisher would be redundant. This makes new()'s signature a bit funky but it's an internal method so I think that's fine.
* | | | Apply some churn from rustfmt (beta)Ian Jackson2023-08-161-1/+1
|/ / /
* | | tor-dirclient: Fix clippy lints.Gabriela Moldovan2023-08-161-5/+5
| | |
* | | tor-dirclient: Remove unused `StringBody` trait.Gabriela Moldovan2023-08-162-27/+0
| | |
* | | tor-dirclient: Make Requestable return requests with String bodies.Gabriela Moldovan2023-08-164-53/+25
| | | | | | | | | | | | | | | It's simpler to always use a `String` to represent directory request bodies. We no longer need the `StringBody` trait.
* | | tor-dirclient: Rename StringBody::str() to StringBody::as_str().Gabriela Moldovan2023-08-162-6/+6
| | |
* | | tor-dirclient: Deprecate download() instead of removing it.Gabriela Moldovan2023-08-162-1/+18
| | |
* | | tor-dirclient: Extend format test to check the body is formatted too (fmt)Gabriela Moldovan2023-08-161-1/+4
| | |
* | | tor-dirclient: Extend format test to check the body is formatted too.Gabriela Moldovan2023-08-161-8/+22
| | |
* | | tor-dirclient: Move request building to a test helper function.Gabriela Moldovan2023-08-161-11/+13
| | |
* | | tor-dirclient: Add `HsDescUploadRequest`.Gabriela Moldovan2023-08-163-0/+50
| | | | | | | | | | | | | | | The hsdir publisher will send the `HsDescUploadRequest`s to the appropriate directory using `send_request()`.
* | | tor-dirclient: Make the body type of a `Requestable` type configurable.Gabriela Moldovan2023-08-164-4/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the `Requestable` trait assumed the body of the request would always be empty (`http::Request<()>`). This change replaces the hardcoded `()` body type with the `Requestable::Body` associated type (which will allow implementors to create requests with non-empty bodies). This will enable us to reuse the `Requestable` trait for building `POST` requests for uploading descriptors.
* | | tor-dirclient: Rename download() to send_request() (fmt).Gabriela Moldovan2023-08-161-1/+5
| | |
* | | tor-dirclient: Rename download() to send_request().Gabriela Moldovan2023-08-165-9/+11
| | | | | | | | | | | | | | | | | | `download()` is actually a general-purpose function for sending HTTP requests on a stream. We will soon repurpose it for `POST`-ing descriptors, so let's rename it to `send_request`.
* | | Merge branch 'remove-unused-import' into 'main'Ian Jackson2023-08-161-1/+3
|\ \ \ | | | | | | | | | | | | | | | | tor-proto: remove unused import See merge request tpo/core/arti!1493
| * | | tor-proto: remove unused importEmil Engler2023-08-101-1/+3
| |/ / | | | | | | | | | | | | This commit removes an unused import within the test module of the `tor_proto::circuit` module.
* | | Merge branch 'keystore-dir' into 'main'Ian Jackson2023-08-161-1/+39
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | arti-client: Make from_directories() derive the keystore_dir from state_dir. Closes #988 See merge request tpo/core/arti!1498
| * | arti-client: Use Path::join instead of format!.Gabriela Moldovan2023-08-141-1/+1
| | |
| * | arti-client: Make from_directories() derive the keystore_dir from state_dir.Gabriela Moldovan2023-08-111-1/+39
| |/ | | | | | | Closes #988
* | Merge branch 'more_introducing' into 'main'Nick Mathewson2023-08-165-106/+277
|\ \ | | | | | | | | | | | | Write more of IptEstablisher. See merge request tpo/core/arti!1510
| * | Wire up more of IptEstablisher.Nick Mathewson2023-08-162-7/+112
| | | | | | | | | | | | | | | It now supports running in a loop, trying to establish an introduction point, and reporting status.
| * | reformat establish_intro_onceNick Mathewson2023-08-151-75/+78
| | |
| * | Make establish_intro_once a method on a new IptEstablisherReactor.Nick Mathewson2023-08-151-18/+34
| | | | | | | | | | | | This will help with making a keep_established method.
| * | hsservice: Actually return from establish_intro_once.Nick Mathewson2023-08-151-13/+31
| | |
| * | hsservice: migrate IptStatus design to assume a postage::watchNick Mathewson2023-08-152-9/+13
| | |
| * | hsservice: Reject extensions in IntroEstablished cellsNick Mathewson2023-08-151-4/+12
| | | | | | | | | | | | | | | Intro points must not send these extensions except in response to a request that prompts them.
| * | cell: Add code to iterate over IntroEstablished extensionsNick Mathewson2023-08-152-1/+8
| | |