<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-hsclient/src/err.rs, branch arti-v2.5.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.5.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-07-23T10:13:54Z</updated>
<entry>
<title>HsDesc::parse_decrypt_validate: Don't check validity time</title>
<updated>2026-07-23T10:13:54Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2026-07-20T17:11:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a96301e177576304c4f99f2dcef3fffcec61b533'/>
<id>urn:sha1:a96301e177576304c4f99f2dcef3fffcec61b533</id>
<content type='text'>
This function returns a `TimeRangeBound`.  That implies a
responsibility on the caller to check the time.  It doesn't make sense
for this function to do the check as well.

But, it turns out that in tor-hsclient, the `TimeRangeBound&lt;HsDesc&gt;`
is sometimes processed with `.dangerously` on the assumption that it
was checked earlier.  I considered changing this, and storing plain
`HsDesc` and a separate `TimeRange` - but that's not right, because
there are places where the `TimeRangeBound&lt;HsDesc&gt;` is used well after
it was verified.

Instead, in this commit, I (effectively) move the `.check_valid_at`
call from `parse_decrypt_validate` to its principal call site.

This involves a change to the error representation.  Previously,
validity time errors ended up as `DescriptorErrorDetail::Descriptor`
containing an `HsDescError::OuterValidation` HsDescError::
InnerValidation`, which in turn contains a
`tor_netdoc::Error`.  (`tor_netdoc::Error` is a rather awkward type.)
Now we have our own error variant.  The overall behaviour is
unchanged.
</content>
</entry>
<entry>
<title>hsclient: Support protocol negotiation for CGO and flowctrl-cc</title>
<updated>2026-07-02T14:37:13Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-06-10T20:50:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b1e5c0a0f3902b30a76d43bf45ce578d0efffac4'/>
<id>urn:sha1:b1e5c0a0f3902b30a76d43bf45ce578d0efffac4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hsclient: Rate-limit HsDir re-querying</title>
<updated>2026-05-07T18:11:56Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2026-04-30T09:19:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=45119545f9654ca9fed10de2e934ad23b7ee8650'/>
<id>urn:sha1:45119545f9654ca9fed10de2e934ad23b7ee8650</id>
<content type='text'>
Because we now refetch HsDirs on introduce NACK, we need some type of
rate-limiting to prevent clients from hammering the HsDirs if the
service is offline.

This rate-limiting is per-HsDir: the client will avoid querying the
same HsDir more frequently than `hs_dir_requery_period`. The HsDir
requery info is stored in the new `DataHsDirs` map.

Part of #966
</content>
</entry>
<entry>
<title>hsclient: Move and correct timeouts for hsdescriptor downloads.</title>
<updated>2026-05-07T12:33:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2026-04-30T12:25:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e6c4d67300c9a8eb4988bc2477c9486f193f142b'/>
<id>urn:sha1:e6c4d67300c9a8eb4988bc2477c9486f193f142b</id>
<content type='text'>
The hspool operations already include their own timeouts, so we
don't need to recalculate them.

For the directory related operations, we now calculate the timeouts
based on actual circuit lengths, and use those timeouts on the
operations themselves.
</content>
</entry>
<entry>
<title>tor-hsclient: Report IPT index in IntroductionFailed.</title>
<updated>2025-11-25T22:55:38Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2025-11-25T22:55:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98f028ed5a2499077f868b03c9b5820cf0b765ea'/>
<id>urn:sha1:98f028ed5a2499077f868b03c9b5820cf0b765ea</id>
<content type='text'>
This would have made #2268 clearer to me.
</content>
</entry>
<entry>
<title>Switch Cargo.toml files to edition 2024.</title>
<updated>2025-08-07T15:28:36Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-08-06T01:19:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=77b0de43b8c67cdb81befe0680a3df43b6ad37bc'/>
<id>urn:sha1:77b0de43b8c67cdb81befe0680a3df43b6ad37bc</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>hs*: Define some HsDesc errors as _suspicious_.</title>
<updated>2025-07-10T13:41:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-06-23T18:35:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6ff683b2cf209ff0598efcdae7947ed6a8fbebbe'/>
<id>urn:sha1:6ff683b2cf209ff0598efcdae7947ed6a8fbebbe</id>
<content type='text'>
These errors are suspicious as hsdir inflation attacks, in the
context of prop360.
</content>
</entry>
<entry>
<title>dirclient: New error type for too-long headers.</title>
<updated>2025-07-10T13:41:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-06-23T17:45:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d3df3c23e7e7cb30665db71c1d51bc7daa968a5'/>
<id>urn:sha1:2d3df3c23e7e7cb30665db71c1d51bc7daa968a5</id>
<content type='text'>
(This was previously called a parse error, which isn't right.)
</content>
</entry>
<entry>
<title>hs-pow: Use TimerangeBound for puzzle parameters.</title>
<updated>2024-10-09T16:05:21Z</updated>
<author>
<name>Wesley Aptekar-Cassels</name>
<email>me@wesleyac.com</email>
</author>
<published>2024-10-01T18:34:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aaad814573f7b2fd635811ef4d758c63861fea3f'/>
<id>urn:sha1:aaad814573f7b2fd635811ef4d758c63861fea3f</id>
<content type='text'>
Co-authored-by: Micah Elizabeth Scott &lt;beth@torproject.org&gt;
</content>
</entry>
<entry>
<title>Upgrade to derive_more version 1.0.0</title>
<updated>2024-09-25T14:37:18Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-09-25T14:37:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6a12c2ba8515226a772d5f4a81930bf42d67535a'/>
<id>urn:sha1:6a12c2ba8515226a772d5f4a81930bf42d67535a</id>
<content type='text'>
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.
</content>
</entry>
</feed>
