| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit executes maint/add_warning with the just added change to
deny string slices except in tests.
I recommend auditing this by checking out the previous commit followed
by running the script yourself and then verifying that the diff is
identical to this commit.
This commit makes cargo clippy fail. We will add exceptions in the next
commit.
|
| | |
|
| |
|
|
|
| |
RequestBody is now just an `Option<Arc<str>>` internally,
and EncodedRequest is much simpler.
|
| |
|
|
|
| |
(Also refactor the code for POST requests into a new macro,
since it would otherwise get quite duplicated.)
|
| | |
|
| |
|
|
|
| |
This saves a little memory, but the technique will help save more
memory for other uploads.
|
| |
|
|
|
| |
This required a change to the hsservice tests, which previously
assumed that we'd perform one write per request.
|
| |
|
|
|
| |
I'm going to use this to avoid copying when uploading large
documents.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This commit implements support for extra-info requests in tor-dirclient.
It is gated behind the already existing `routerdesc` feature flag,
because entities building upon router descriptors most likely also need
extra-info, namely directory mirrors and directory authorities.
The implementation is largely based upon the existing one for router
descriptors, as they are of a very similar request format, most likely
due to simply being closely related anyways.
|
| |
|
|
| |
Run maint/add_warning
|
| |
|
|
| |
This is part of abolishing the use of "ns" to mean "plain".
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This entirely removes the requirement on ClientCirc.
Signed-off-by: David Goulet <[email protected]>
|
| | |
|
| |
|
|
|
|
|
|
| |
This suffix is redundant with "Accept-Encoding",
which all Tor directory caches have supported
since 0.3.1.1-alpha.
See torspec#342.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since not everybody has xz and/or zstd, we don't want to admit
whether we support them when we are uploading or downloading an
onion service descriptor. Similarly, if we aren't advertising
support for an encoding, we shouldn't accept it.
Finally, while we're doing this, it made sense to have the ability
to mark requests based on how anonymized they are, and reject (some)
attempts to send those requests over a one-hop circuit.
Closes #1062
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
It's simpler to always use a `String` to represent directory request bodies.
We no longer need the `StringBody` trait.
|
| | |
|
| |
|
|
|
| |
The hsdir publisher will send the `HsDescUploadRequest`s to the
appropriate directory using `send_request()`.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
| |
Yes, it's 50 kilobytes, not 50 kibibytes. I double-checked this with
the C implementation and with param-spec.txt's documentation for
`HSV3MaxDescriptorSize`.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
I couldn't find a test vector in C Tor. This test case was generated
from the code here.
I'm fairly sure it's right since I managed to get my descriptor
downloader to work. (That's not an MR yet, but uses this code.)
|