summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge branch 'relay-sketch-links' into 'main'Nick Mathewson2024-05-301-22/+56
|\ \ \ | | |/ | |/| | | | | | | Add ticket links to relay-sketch.md See merge request tpo/core/arti!2176
| * | relay-sketch: Add a link to 1454.Nick Mathewson2024-05-301-0/+3
| | |
| * | Add ticket links to relay-sketch.mdNick Mathewson2024-05-301-22/+53
| | |
* | | Merge branch 'faravahar-new' into 'main'Alexander Færøy2024-05-301-1/+2
|\ \ \ | | | | | | | | | | | | | | | | dirauth: Add new faravahar authority See merge request tpo/core/arti!2175
| * | | dirauth: Add new faravahar authorityDavid Goulet2024-05-301-1/+2
| |/ / | | | | | | | | | | | | | | | | | | Related to C-tor MR: https://gitlab.torproject.org/tpo/core/tor/-/merge_requests/819 Signed-off-by: David Goulet <[email protected]>
* | | Merge branch 'main' into 'main'David Goulet2024-05-301-1/+1
|\ \ \ | |/ / |/| | | | | | | | Update the location of the code of conduct. See merge request tpo/core/arti!2173
| * | Update the location of the code of conduct.Gaba2024-05-291-1/+1
| | |
* | | Merge branch 'extend_relay_sketch' into 'main'Nick Mathewson2024-05-301-2/+33
|\ \ \ | |/ / |/| | | | | | | | relay-sketch: Incorporate notes from Lisbon meeting. See merge request tpo/core/arti!2174
| * | relay-sketch: Incorporate notes from Lisbon meeting.Nick Mathewson2024-05-301-2/+33
|/ /
* | Merge branch 'poll-ready-unpin-bool' into 'main'Nick Mathewson2024-05-293-12/+28
|\ \ | | | | | | | | | | | | Tidy up the ChannelSender::poll_ready inherent method See merge request tpo/core/arti!2171
| * | ChannelSender::poll_ready_unpin_bool: add otiose ext trait docIan Jackson2024-05-291-0/+1
| | |
| * | ChannelSender::poll_ready_unpin_bool: move to utilIan Jackson2024-05-293-20/+24
| | | | | | | | | | | | This is where it belongs.
| * | ChannelSender::poll_ready_unpin_bool: extension traitIan Jackson2024-05-292-1/+8
| | | | | | | | | | | | | | | | | | | | | This makes this available for any Sink + Unpin. Which we want because we're about to wrap our ChannelSender in a Sink wrapper. It's in the wrong place now; we'll move it in a moment.
| * | ChannelSender::poll_ready_unpin_bool: rename from poll_readyIan Jackson2024-05-292-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This would otherwise shadow the poll_ready method, which is confusing. Also this paves the way for making it available for any Sink + Unpin. Improve the docs somewhat to explain what this thing actually is.
| * | ChannelSender::poll_ready inherent method: Don't discard errorIan Jackson2024-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | I think this error was in fact always Error::CircuitClosed because it came from ChannelClosed.into(). Anyway, we shouldn't squash it. Now this function has semantics identical to Sink::poll_ready, just a slightly different signature.
| * | ChannelSender::poll_ready inherent method: Avoid apparent discardIan Jackson2024-05-291-1/+1
| | | | | | | | | | | | Make it clear we're discarding `()`, not an actual value.
| * | ChannelSender::poll_ready inherent method: Use Sink:poll_readyIan Jackson2024-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | We're going to change this function, but first we are going to make its behaviour identical to Sink::poll_ready. This avoids open-coding the call to poll_read on cell_tx. The error handling is still strange. We'll fix that in a moment.
* | | Merge branch 'stream_close_v2' into 'main'Nick Mathewson2024-05-294-11/+162
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | proto: Make DataWriter::close actually do something. Closes #1368 See merge request tpo/core/arti!2170
| * | | proto: Try to clarify why StreamReader has a StreamTarget.Nick Mathewson2024-05-292-3/+10
| | | |
| * | | proto: Add a test for closing streams.Nick Mathewson2024-05-291-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test verifies that when we invoke the code to close a stream, an END message is actually sent. The test comes in two versions: * `drop_stream` closes the stream by dropping it. It currently passes on main. * `close_stream` closes the stream by running `AsyncWriteExt::close` on the writer. It is a regression test for #1368. It currently fails on main.
| * | | proto: Improve documentation about DataStream lifetimes and closingNick Mathewson2024-05-292-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In particular, clarify that dropping the DataWriter on its own does nothing unless the DataReader is also dropped. Related to #1368.
| * | | proto: Make DataWriter::close actually do something.Nick Mathewson2024-05-293-9/+41
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we had a bug where `<DataWriter as AsyncWrite>::close` (or `shutdown` in tokio-land) would not actually have any effect. It _would_ drop the `StreamTarget` held by the `DataWriter`, but since the `DataReader` also held a `StreamTarget`, the MPSC channel would not get closed, and the circuit reactor would not realize that the stream wanted to shut down. Now we use `mpsc::Sender::close_channel` to make our closes effectual. Closes #1368. Additionally, we fix a bug where `poll_close()` never actually did anything if the buffer had nothing in it when it was called. Previously, `poll_flush_impl()` would exit immediately if it had no data to flush. That isn't what we want when we are closing!
* | | Merge branch 'mypy' into 'main'Ian Jackson2024-05-292-12/+19
|\ \ \ | |/ / |/| | | | | | | | mypy: Enable strict mode See merge request tpo/core/arti!2169
| * | maint/update-md-links: avoid * import from typingIan Jackson2024-05-291-1/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2169#note_3033481
| * | mypy: Enable strict modeIan Jackson2024-05-281-1/+1
| | | | | | | | | | | | | | | | | | | | | Consultation with a nearby Python expert, on another topic, revealed that without --strict, mypy turns most of its stuff off by default. Sadly (?) this bureaucracy didn't find any bugs.
| * | maint/update-md-links: Add type handling for regexp edge casesIan Jackson2024-05-281-3/+6
| | |
| * | maint/update-md-links: Add easy type annotationsIan Jackson2024-05-281-8/+12
|/ /
* | Merge branch 'chan_arc' into 'main'Nick Mathewson2024-05-2814-153/+212
|\ \ | | | | | | | | | | | | Proto: Refactor Channel to always be Arc. See merge request tpo/core/arti!2163
| * | Remove an outdated comment.Nick Mathewson2024-05-201-3/+0
| | |
| * | Make an arc clone explicit.Nick Mathewson2024-05-201-1/+1
| | |
| * | Fix a typo.gabi-2502024-05-201-1/+1
| | |
| * | proto: Divide up some elements of ChannelDetails.Nick Mathewson2024-05-162-52/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously ChannelDetails had a double duty: It held elements shared among the clones of a Channel, and it also held elements shared between the Channel and the Reactor. But now that Channel doesn't have to implement Clone, we can more the non-Reactor elements into Channel itself. This change may improve cache locality a bit, and should make it a little easier to follow the channel code. I've also moved unique_id out of ChannelDetails into Channel _and_ Reactor: it is small, immutable, and used all the time in logging.
| * | Make Channel non-Clone.Nick Mathewson2024-05-163-4/+6
| | |
| * | proto: Make Channel explicitly Arc<.>Nick Mathewson2024-05-1614-53/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, Channel was a type that you could Clone that implicitly its state. Now, Channel always appears as an Arc<Channel>. This change has several benefits: * It makes the relationship between Channel struct and the underlying channel more clear. * It enables Channel to participate in the RPC system, where everything has to be an Arc<.> * It enables us to have a Weak<Channel>, if we ever want to. * It will let us move various members out of ChannelDetails. We did this change a while ago with ClientCirc.
| * | proto: Move Channel send functionality into a separate type.Nick Mathewson2024-05-163-48/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This serves three purposes: * It removes the 'send a cell' method from the channel's public API. Nothing outside of tor-proto should have to use this. * It paves the way for giving each circuit a separate handle onto the channel's send functionality. This will eventually let the channel multiplex among circuits more intelligently. * It prepares for the next commit, which will make Channel itself universally Arc<.>ed.
| * | proto: Document ChannelDetails members that don't need to be shared.Nick Mathewson2024-05-161-1/+7
| | |
| * | proto: Document usage for each mutable part of ChannelDetailsNick Mathewson2024-05-161-1/+12
| | | | | | | | | | | | | | | For all mutable shared state, we ought to know which part of the program sets it, which part of the program reads it, and why.
* | | Merge branch 'explicit_delegate_enable_padding' into 'main'Nick Mathewson2024-05-171-1/+1
|\ \ \ | | | | | | | | | | | | | | | | chanmgr: Delegate to Channel::engage_padding_activities explicitly. See merge request tpo/core/arti!2164
| * | | chanmgr: Delegate to Channel::engage_padding_activities explicitly.Nick Mathewson2024-05-171-1/+1
|/ / / | | | | | | | | | | | | | | | (This isn't a bugfix, but it helps avoid the appearance of a function calling itself. This _would_ become a bug if we imported the wrong trait into scope here.)
* | | Merge branch 'libc-downgrade' into 'main'Nick Mathewson2024-05-171-2/+2
|\ \ \ | | | | | | | | | | | | | | | | Downgrade Cargo.lock to previous libc crate version See merge request tpo/core/arti!2166
| * | | Downgrade to previous libc crateNick Mathewson2024-05-171-2/+2
|/ / / | | | | | | | | | The current version has been yanked.
* | | Merge branch 'changelog-fix' into 'main'Nick Mathewson2024-05-161-0/+2
|\ \ \ | |/ / |/| | | | | | | | Add two blank lines to CHANGELOG. See merge request tpo/core/arti!2165
| * | Add two blank lines to CHANGELOG.Nick Mathewson2024-05-161-0/+2
|/ /
* | Merge branch 'ci-after-script-tweaks' into 'main'Nick Mathewson2024-05-161-19/+6
|\ \ | | | | | | | | | | | | CI: Move cargo clean section to after_script. See merge request tpo/core/arti!2159
| * | CI: Move cargo clean section to after_script.Nick Mathewson2024-05-151-19/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of arti#1410. The idea here is to consolidate `cargo clean` in an after_script section we call everywhere, rather than have it be in one that we can forget to copy. We can't call `cargo clean` unconditionally, though, since some of our jobs don't install cargo. So we make sure it's there.
* | | Merge branch 'special_methods' into 'main'Nick Mathewson2024-05-169-37/+264
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Allow RPC methods with non-serializable types Closes #1403 See merge request tpo/core/arti!2152
| * | | Add a few "TODO RPC" notesNick Mathewson2024-05-162-0/+8
| | | |
| * | | RPC: Expose dispatch table from ContextNick Mathewson2024-05-163-0/+11
| | | | | | | | | | | | | | | | | | | | We need to do this so that we can actually invoke RPC functions from one another.
| * | | RPC: Fill in documentation about invoke_specialNick Mathewson2024-05-162-6/+27
| | | |
| * | | Tests for invoke_specialNick Mathewson2024-05-161-0/+42
| | | |