<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/client/reactor.rs, branch arti-v1.6.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.6.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.6.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-10-01T02:55:15Z</updated>
<entry>
<title>tor-proto: fix comment related to validating stream messages</title>
<updated>2025-10-01T02:55:15Z</updated>
<author>
<name>Steven Engler</name>
<email>opara@torproject.org</email>
</author>
<published>2025-10-01T02:55:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c50199fb3b4c0bb9e0c4644bf6617cf7f63dd044'/>
<id>urn:sha1:c50199fb3b4c0bb9e0c4644bf6617cf7f63dd044</id>
<content type='text'>
I don't think the previous comment is correct. The main flow control
checks are about receiving SENDME/XON/XOFFs, and ensuring that we don't
receive too many of them. This all happens in the reactor.

In theory the stream should be checking that we don't receive too many
DATA messages for how many stream SENDMEs we've sent. But this is broken
due to arti#2100. We do check this in the halfstream code though.
</content>
</entry>
<entry>
<title>Sort output events for next_circ_action.</title>
<updated>2025-09-29T17:00:49Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-09-29T15:27:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ff1c086eca6f561bbc19a64afdfef317bbc19540'/>
<id>urn:sha1:ff1c086eca6f561bbc19a64afdfef317bbc19540</id>
<content type='text'>
This sort makes it so that that blocking and unblocking are always
ordered in a sensible way with respect to sending data.  This might
help simplify padding machines a bit.

Prerequisite for #2190
</content>
</entry>
<entry>
<title>proto: Rewrite ConfluxSet::next_circ_action() using PollAll.</title>
<updated>2025-09-25T13:40:00Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-18T17:25:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e93ae49e442d9aa9f14a1ca52b36f3553aa44c1f'/>
<id>urn:sha1:e93ae49e442d9aa9f14a1ca52b36f3553aa44c1f</id>
<content type='text'>
This removes our usage of `FuturesUnordered` in
`ConfluxSet::next_circ_action()` to address two issues:

  * a fairness issue, where the futures driven by `FuturesUnordered`
    could be starved under some circumstances (#2180)
  * a logic error, where we'd explicitly avoid reading from the input
    channel if the outgoing `chan_sender` channel was blocked (#2179)

Note that the fixing the latter will cause the reactor to buffer more
into the unbounded `chan_sender` sink, but that *should* be okay,
because no input message should be able cause us to queue cells
excessively.

Closes #2179, #2180
</content>
</entry>
<entry>
<title>proto: Return multiple actions from next_circ_action (fmt).</title>
<updated>2025-09-25T13:37:41Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-18T17:12:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e8f0ab9613f70548bf6153d14d714848c16d9fc2'/>
<id>urn:sha1:e8f0ab9613f70548bf6153d14d714848c16d9fc2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Return multiple actions from next_circ_action.</title>
<updated>2025-09-25T13:37:41Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-18T16:59:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f2ab08eda241b15b5b3efb0f422ec79012cc54dc'/>
<id>urn:sha1:f2ab08eda241b15b5b3efb0f422ec79012cc54dc</id>
<content type='text'>
Part of #2180

Note: the code is intentionaly left misindented to make reviewing a
bit easier. A future commit will fix the indentation.
</content>
</entry>
<entry>
<title>Merge branch 'expire-halfstream-cbt' into 'main'</title>
<updated>2025-09-24T18:08:19Z</updated>
<author>
<name>gabi-250</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-24T18:08:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=276b8a5820f55eb2f0e09f424e22f794b111fcf1'/>
<id>urn:sha1:276b8a5820f55eb2f0e09f424e22f794b111fcf1</id>
<content type='text'>
proto: Remove half-streams when they expire.

Closes #264

See merge request tpo/core/arti!3267</content>
</entry>
<entry>
<title>proto: Temporarily ignore large_enum_variant clippy warning.</title>
<updated>2025-09-23T09:50:23Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-23T09:50:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e83461f8bf02579753f351d26a578010809b31fb'/>
<id>urn:sha1:e83461f8bf02579753f351d26a578010809b31fb</id>
<content type='text'>
I want to tackle this separately, as part of #2003
</content>
</entry>
<entry>
<title>proto: Add new error type for cells received on non-existent streams.</title>
<updated>2025-09-22T15:25:45Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-22T14:40:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cb72b6403f1fff16ae590777119399e1c48972c4'/>
<id>urn:sha1:cb72b6403f1fff16ae590777119399e1c48972c4</id>
<content type='text'>
Prompted by
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3267#note_3261239
</content>
</entry>
<entry>
<title>proto: Log circuit reactor errors at debug level.</title>
<updated>2025-09-22T14:11:44Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-22T14:11:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e8a94490d8fa7611c11bcf34fdbd98fc6350db00'/>
<id>urn:sha1:e8a94490d8fa7611c11bcf34fdbd98fc6350db00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>proto: Calculate CBT more accurately.</title>
<updated>2025-09-19T10:00:36Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-09-19T10:00:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c6e944a9de91905c273d582c7f1de045d1eb2e41'/>
<id>urn:sha1:c6e944a9de91905c273d582c7f1de045d1eb2e41</id>
<content type='text'>
This should look at length of the circuit up until the hop where the
half-stream is (because the half-stream might be on an intermediate hop,
and not necessarily on the final one).
</content>
</entry>
</feed>
