summaryrefslogtreecommitdiff
path: root/crates/tor-dirclient/src
Commit message (Collapse)AuthorAgeFilesLines
* maint/add_warning: Run script to add new warningGabriela Moldovan2026-01-271-0/+1
| | | | This adds the lint to all our crates.
* tor-dirclient: Remove Downloadable for goodClara Engler2025-12-101-24/+0
|
* tor-dirclient: Fix Requestable rustdocClara Engler2025-12-101-2/+2
|
* tor-dirclient: Improve upon Requestable subtraitsClara Engler2025-12-101-11/+7
| | | | | | | This commit removes the unused `Votable` and `Uploadable` traits and changes the `Downloadable` trait to depend on `Requestable` rather the sealed type, as it achieves the same level of sealedness while clearly communicating the hierarchy.
* tor-dirclient: Semantic traits for RequestableClara Engler2025-12-101-0/+28
| | | | | | | | | | | | | | This commit introduces three new traits to `tor-dirclient`: * `Downloadable` * `Uploadable` * `Votable` All of these traits have no associated methods or constants and all require an existing implementation of `Requestable`. The idea behind this is for applications to accept generic arguments based upon the semantic meaning, allowing for a better integration with proposal330.
* tor-dirclient: Improve upon error loggingClara Engler2025-12-101-3/+3
| | | | | | This commit improves upon the error logging of the `tor-dirclient` crate in order to not just log the location/source of an error but also the actual reason of an error.
* opentelemetry: Instrument a bunch of functions.Wesley Aptekar-Cassels2025-11-241-1/+2
| | | | | These are all aimed at figuring out in more detail what's going on in #2079 and related issues.
* Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-064-5/+5
| | | | Run maint/add_warning
* Stop using MockSleepProvider in a few cratesNeel Chauhan2025-11-021-3/+2
| | | | Part of #1885.
* Remove "doc_auto_cfg" incantation from all crates.Nick Mathewson2025-09-291-1/+1
| | | | This feature has been removed from nightly, in favor of doc_cfg.
* tor-netdoc: Rename ConsensusFlavor::Ns to ConsensusFlavor::PlainIan Jackson2025-08-181-1/+1
| | | | This is part of abolishing the use of "ns" to mean "plain".
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-072-13/+42
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* dirclient: Use the new Tunnel interface (fmt).Gabriela Moldovan2025-08-051-1/+3
|
* dirclient: Use the new Tunnel interfaceDavid Goulet2025-08-054-20/+29
| | | | | | This entirely removes the requirement on ClientCirc. Signed-off-by: David Goulet <[email protected]>
* Rename last_hop to last_hop_info to fix name conflictNick Mathewson2025-07-101-3/+3
|
* dirclient: treat excessive incoming cells as suspicious.Nick Mathewson2025-07-101-2/+3
|
* hs*: Define some HsDesc errors as _suspicious_.Nick Mathewson2025-07-101-0/+39
| | | | | These errors are suspicious as hsdir inflation attacks, in the context of prop360.
* dirclient: New error type for too-long headers.Nick Mathewson2025-07-102-4/+13
| | | | (This was previously called a parse error, which isn't right.)
* dirclient: Make SourceInfo::from_circuit public.Nick Mathewson2025-07-101-8/+8
|
* dirclient: refactor logic for constructing a SourceInfo from a circuitNick Mathewson2025-07-102-11/+16
| | | | | | | 1) It's the last hop that matters, not the first. 2) The last hop could conceivably be virtual, making the source anonymous. (Though this never happens in Arti today.)
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-071-0/+1
| | | | See #2060.
* Remove comment saying we do not implement consensus diffsNick Mathewson2025-06-101-2/+0
|
* Merge branch 'nightly-warnings' into 'main'Nick Mathewson2025-05-291-1/+1
|\ | | | | | | | | | | | | Fix clippy warnings from nightly rust Closes #2009 See merge request tpo/core/arti!3008
| * arti, cell, dirclient: Use expect instead of unwrap.Nick Mathewson2025-05-291-1/+1
| | | | | | | | | | | | Clippy nightly detects this problem, though earlier clippy verisons haven't. The common element here is applying unwrap() to the result from a write!().
* | dirclient: Stop sending suffix .z in URLs.Nick Mathewson2025-05-272-15/+12
|/ | | | | | | | This suffix is redundant with "Accept-Encoding", which all Tor directory caches have supported since 0.3.1.1-alpha. See torspec#342.
* tor-proto: Update the TunnelMutableState when a circuit is removed.Gabriela Moldovan2025-05-152-5/+13
| | | | | | | | This is messy, because `ClientCirc::{path_ref, n_hops, ..}` become fallible (we can't unwrap the result, because when a circuit is closed, its state gets removed from the `TunnelSharedState`, but its `ClientCirc` handle continues to exist, so any attempt to retrieve the state will result in an `Err`).
* tor-rtmock: allow-Decorate every use of MockSleepProviderIan Jackson2025-03-061-1/+5
| | | | | | | MockSleepProvider and MockSleepRuntime have been declared deprecated by the docs for some time. We're about to mark them `#[deprecated]`. This commit has been split out for clarity of review.
* tor-dirclient: modify `check_circuit` to use `first_hop_clock_skew`Steven Engler2025-02-102-15/+30
|
* clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* add_warnings, *: Allow clippy::needless_lifetimesNick Mathewson2024-12-031-0/+1
| | | | | | | | In 1.83, this warning triggers on many of our crates. We're thinking of fixing them all, but for now, we're going to disable the warning. This is part of #1765.
* Upgrade to derive_more version 1.0.0Nick Mathewson2024-09-251-1/+1
| | | | | | The `derive_more` crate broke backward compatibility with this version, so this change involved quite a few manual fixups. With luck, they'll keep compatibility for some while in the future.
* Fix typosDimitris Apostolou2024-09-031-1/+1
|
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Run maint/add_warning.Nick Mathewson2024-03-134-0/+4
|
* deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|
* Fix typosDimitris Apostolou2024-01-081-1/+1
|
* Preserve HTTP status text in dirclient errors.Nick Mathewson2023-11-293-8/+22
| | | | | | | | The HTTP status text is often useful for diagnosing errors. Tor directory and hsdir caches frequently put useful messages there, especially when rejecting an uploaded document. Inspired by #1142.
* Only send Content-Length when needed.Nick Mathewson2023-11-272-19/+16
| | | | | | | | | | | | | | | According to RFC 9110: A user agent SHOULD send Content-Length in a request when the method defines a meaning for enclosed content and it is not sending Transfer-Encoding. For example, a user agent normally sends Content-Length in a POST request even when the value is 0 (indicating empty content). A user agent SHOULD NOT send a Content-Length header field when the request message does not contain content and the method semantics do not anticipate such data. Part of #1024
* Add cfg_attr allow(unused_imports) to two cratesIan Jackson2023-10-311-0/+6
| | | | | As per this comment, and preceding discussion https://gitlab.torproject.org/tpo/core/arti/-/issues/1060#note_2959187
* tor-dirclient, tor-netdoc: Add TODO SPECs.Gabriela Moldovan2023-10-241-0/+1
|
* tor-dirclient: Always set the Content-Length header (fmt).Gabriela Moldovan2023-10-241-1/+4
|
* tor-dirclient: Always set the Content-Length header.Gabriela Moldovan2023-10-242-19/+12
|
* tor-dirclient: Add a Content-Length header (fmt).Gabriela Moldovan2023-10-241-1/+3
|
* tor-dirclient: Add a Content-Length header.Gabriela Moldovan2023-10-241-2/+16
|
* dirclient: Seal the Requestable trait and hide most of its members.Nick Mathewson2023-10-171-39/+67
| | | | | | | | Since none of these methods were invoked from outside `tor-dirclient` (except for debugging), and since we have had a fair amount of churn on what we actually want them to be, it seems like a good idea to use this trick to hide them. This will let us make other changes to the actual behavior of Requestable in the future.
* dirclient: Rename partial_docs_ok to partial_response_body_okNick Mathewson2023-10-172-24/+23
|
* dirclient: Make Requestable::anonymized mandatory.Nick Mathewson2023-10-171-3/+21
|
* dirclient: Explain why 1024 is a sufficient maximum response length.Nick Mathewson2023-10-161-0/+4
|
* dirclient: Wrap a somewhat wide comment.Nick Mathewson2023-10-161-5/+3
|
* Downgrade another TODO HSS and move it to TODO BREAKINGNick Mathewson2023-10-161-2/+3
|