<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-hsrproxy/src/proxy.rs, branch arti-v1.8.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.8.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.8.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-11-05T03:39:55Z</updated>
<entry>
<title>all: replace all uses of `futures::task::SpawnExt` with `tor_rtcompat::SpawnExt`</title>
<updated>2025-11-05T03:39:55Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-11-05T03:00:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6bfa9e986694b4fce0926dd21f309161e497ced8'/>
<id>urn:sha1:6bfa9e986694b4fce0926dd21f309161e497ced8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace copy_interactive with futures-copy.</title>
<updated>2025-10-31T00:15:39Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-10-31T00:15:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=12b2913d4a50353223ebe5a3200614dc3dfcb13b'/>
<id>urn:sha1:12b2913d4a50353223ebe5a3200614dc3dfcb13b</id>
<content type='text'>
This change lets us avoid spawning extra tasks (due to one-direction
nature of copy_interactive), and avoid some lock contention (due to
use of AsyncReadExt::split).

Addresses part of #786.
</content>
</entry>
<entry>
<title>proto: Move the `stream` module under `client` (breaking).</title>
<updated>2025-08-18T16:09:04Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-08-18T15:52:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=702e7276898d3f31e22033c5b64fea91703f3701'/>
<id>urn:sha1:702e7276898d3f31e22033c5b64fea91703f3701</id>
<content type='text'>
The `stream` module is client-specific, for the most part, so I am
moving it under `client`. Later on, we will factor out the parts that
can be shared with the relay implementation.

Note: this is a breaking change as the deleted `stream` module was
`pub`. We could've kept the module and reexported from it the public
types from `tor_proto::client::stream`, but I think it's better to have
this `client` namespacing, because it makes the separation between the
client and relay parts clearer.
</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>metrics: tor-hsrproxy: Use a bespoke type for counter outcomes</title>
<updated>2025-04-08T17:20:50Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-04-08T11:50:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e02da4600e7a66bee5ac3dc57b708c0942bda895'/>
<id>urn:sha1:e02da4600e7a66bee5ac3dc57b708c0942bda895</id>
<content type='text'>
Prompted by
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2918#note_3185872
</content>
</entry>
<entry>
<title>tor-hsrproxy: Export a connection count metric (fmt)</title>
<updated>2025-04-08T17:20:50Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-04-02T16:23:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=016bcdbe6e93d7a565e33640c1363d5a79c7472d'/>
<id>urn:sha1:016bcdbe6e93d7a565e33640c1363d5a79c7472d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-hsrproxy: Export a connection count metric</title>
<updated>2025-04-08T17:20:50Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-04-02T16:21:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e9ee2f4204b5139de9946d86c942b6e62427f258'/>
<id>urn:sha1:e9ee2f4204b5139de9946d86c942b6e62427f258</id>
<content type='text'>
This proves the concept.  Many more metrics will need to be added
throughout the codebase.

With this compiled in and enabled, I see this with curl:

&gt; ```
&gt; # TYPE arti_hss_proxy_connections_failed_total counter
&gt; arti_hss_proxy_connections_failed_total{nickname="ztest",action="destroy_circuit"} 0
&gt; arti_hss_proxy_connections_failed_total{nickname="ztest",action="ignore_stream"} 0
&gt; arti_hss_proxy_connections_failed_total{nickname="ztest",action="forward"} 0
&gt; arti_hss_proxy_connections_failed_total{nickname="ztest",action="reject_stream"} 0
&gt;
&gt; # TYPE arti_hss_proxy_connections_total counter
&gt; arti_hss_proxy_connections_total{nickname="ztest",action="reject_stream"} 0
&gt; arti_hss_proxy_connections_total{nickname="ztest",action="forward"} 1
&gt; arti_hss_proxy_connections_total{nickname="ztest",action="destroy_circuit"} 0
&gt; arti_hss_proxy_connections_total{nickname="ztest",action="ignore_stream"} 0
&gt;
&gt; # TYPE arti_hss_proxy_connections_ok_total counter
&gt; arti_hss_proxy_connections_ok_total{nickname="ztest",action="destroy_circuit"} 0
&gt; arti_hss_proxy_connections_ok_total{nickname="ztest",action="reject_stream"} 0
&gt; arti_hss_proxy_connections_ok_total{nickname="ztest",action="ignore_stream"} 0
&gt; arti_hss_proxy_connections_ok_total{nickname="ztest",action="forward"} 1
&gt; ```
</content>
</entry>
<entry>
<title>tor-hsrproxy: Move cloning into spawn</title>
<updated>2025-04-08T17:20:50Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2025-04-02T14:25:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=65d8df00f87e70673cd46df699db71a66998e8aa'/>
<id>urn:sha1:65d8df00f87e70673cd46df699db71a66998e8aa</id>
<content type='text'>
This means that we can use the same variable names for the clones,
which is considerably less confusing.
</content>
</entry>
<entry>
<title>extract tor_async_utils::oneshot into ::oneshot-fused-workaround</title>
<updated>2024-08-28T14:27:46Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-22T19:20:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=46f7f01092e6ac55e3e958dc3a2228b1d36e26a1'/>
<id>urn:sha1:46f7f01092e6ac55e3e958dc3a2228b1d36e26a1</id>
<content type='text'>
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:

* using it in `tor-rtmock` (which we currently do, particularly in
  tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
  this yet, but it is generally sensible to do so. In particular we
  want to move the `stream_peak` module there, which is currently tested
  with `tor-rtmock`.

Moving this into its own crate avoids this circular dependency.
</content>
</entry>
<entry>
<title>hsrproxy: Temporarily remove ability to config unix addresses</title>
<updated>2024-01-16T16:56:28Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-01-16T16:56:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=36dcbe9382e12f32d2aecb159c8b51c14871a701'/>
<id>urn:sha1:36dcbe9382e12f32d2aecb159c8b51c14871a701</id>
<content type='text'>
I'm taking this out for now since we don't have support for actually
making these addresses work, and the current behavior will just
ignore connections silently.

Closes #1245
</content>
</entry>
</feed>
