| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-error: Remove KeystoreFsPermissions variant.
See merge request tpo/core/arti!1487
|
| | | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
According to the `ErrorKind` lumping guidelines, `KeystoreFsPermissions`
should be lumped with `FsPermissions`: they represent the same type
of error, and their "location" is the same ("Host").
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1315#note_2916455
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
maint: provide no list of grcov formats
See merge request tpo/core/arti!1482
|
| | |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This commit removes a list we provide for the supported grcov formats.
In my opinion, this is a practice of bad software engineering, as we would then
have to maintain this list by ourselves.
Therefore, this commit removes this list from the `maint/with_coverage` script
and replaces it with a references to the accompanying grcov command.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
arti-client config: Fix bridge handling and test it
Closes #1000
See merge request tpo/core/arti!1481
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
As demanded by rustfmt
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This complements the new `check_bridge_pt` test.
|
| | |/ / /
| | | |
| | | |
| | | | |
This is a bugfix. Perhaps it is a security fix?
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
maint: list the HTML dependencies in coverage
See merge request tpo/core/arti!1485
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The `maint/coverage` script has a useless option `c`.
This commit removes it.
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, the `maint/coverage` script does not inform about the
dependencies required for generating the HTML output, those are, the
Python packages `bs4` and `lxml`.
This commit fixes that, by updating the help section accordingly.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-proto: Replace IncomingStreamMsg with IncomingStreamRequest.
See merge request tpo/core/arti!1477
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The two enums essentially serve the same purpose, so we don't
need both of them.
This also addresses the TODO that says we should return an error if
`accept_data` is called for a RESOLVE stream.
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-proto: Implement `Drop` for `IncomingStream`.
See merge request tpo/core/arti!1476
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
blocking.
Instead of having 2 version of `StreamTarget::close` (a blocking one and
a nonblocking one), we can just return the `oneshot::Receiver` for
receiving the reactor's response and let the caller of
`StreamTarget::close` decide whether to block.
This allows us to reduce some code duplication in the `IncomingStream`
implementation.
|
| | |/ / / |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
The behaviour of `IncomingStream::drop` is going to depend on whether
the stream was accepted or not.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
reactor to respond.
This will be used for implementing `Drop` for `IncomingStream` (it
needs to "reject" the stream on drop).
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
tor-config: Expand NoProjectDirs error message
See merge request tpo/core/arti!1480
|
| |/ / / / |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
Allow operation when default config files cannot be determined
See merge request tpo/core/arti!1479
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will allow us to proceed if
* the default config file locations can't be established
(eg due to failure of the `directories` crate), but
* configuration files are explicitly specified,
so the defaults wouldn't be used
|
| | | | | |
| | | | |
| | | | |
| | | | | |
We'll use this in crates/arti in a moment.
|
| |\| | | |
| |/ / /
|/| | |
| | | |
| | | | |
arti: Add context to default config files error message
See merge request tpo/core/arti!1478
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Improves the error mesage in #989 somewhat.
Before:
target/debug/arti: error: Can't construct project directories to resolve a path element
After:
target/debug/arti: error: identify default config file locations: Can't construct project directories to resolve a path element
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
tor-proto: Rename misleading field in `DataCmdChecker`.
See merge request tpo/core/arti!1475
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a follow-up from !1451.
This commit solves a `TODO HSS` introduced when `DataCmdChecker` got an
additional constructor (`new_connected`) for creating "pre-connected"
streams. See f6745d31 for more details.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tor-proto: allow_stream_requests now waits until the control message is received.
Closes #994
See merge request tpo/core/arti!1474
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
init/close.
Propagating the error means will cause the reactor to shut down (there's
not much the control message sender can do about it, so there's no point
in sending it the error).
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As a result, by the time the `reject` future resolves, the stream has
been removed from the reactor's stream map and the corresponding END
cell has been sent.
Fixes #998.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
received.
`ClientCirc::allow_stream_requests` is now `async` and waits until the
`AwaitIncomingStream` control message is processed by the reactor.
This guarantees that by the time the `allow_stream_requests` future
resolves, the reactor is ready to process BEGIN/BEGIN_DIR/RESOLVE cells.
Previously, the client tasks from allow_stream_requests tests had to
sleep before sending the BEGIN cell to give the reactor time to process
the `AwaitIncomingStream` control message (which tells the reactor to
expect incoming BEGIN/BEGIN_DIR/RESOLVE cells on the circuit).
Fixes #994
|
| |\ \ \ \
| |/ / /
|/| | |
| | | |
| | | | |
proto: methods to wait until a channel/circuit is shut down.
See merge request tpo/core/arti!1473
|
| |/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The implementation here is perhaps excessively simple: we put
a `oneshot::Sender` in the `Reactor` object, and a
`Shared<oneshot::Receiver>` in the circuit or channel. When
the reactor is dropped, any copy of the `Shared<Receiver>` will
yield `Err(Cancelled)`.
I'm marking these methods as experimental because I'm not sure I've
thought of all the implications here, and we might want to change
things around.
Down the road, these methods might want to yield a `Result<>`
indicating why the reactor was shut down.
This feature was inspired by a request from Saksham Mittal, and a
felt need while working on !1472.
|
| |\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
add_warning: Change missing_docs,unreachable_pub to warn
Closes #951
See merge request tpo/core/arti!1470
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Part of #951. See comments for explanation of why this is important.
|
| |\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | | |
tor-proto: Make start_conversation_last_hop() use a given hop, not the last.
Closes #959
See merge request tpo/core/arti!1469
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will enable hidden services to send `RENDEZVOUS1` messages to the
`N`th hop of the circuit rather than the `N + 1`th virtual one (which
can only used after the client and service have completed the
introduction handshake).
This also deprecates `start_conversation_last_hop`.
Closes #959
|
| | | | |
|
| |/ /
| |
| |
| |
| |
| | |
`HopNum` will be used in `ClientCirc`'s public API when we refactor
`ClientCirc::start_conversation_last_hop` to use the provided hop rather
than always using the last one.
|
| |\ \
| | |
| | |
| | |
| | | |
Add maint/check_all_lockfiles
See merge request tpo/core/arti!1468
|
| | | |
| | |
| | |
| | |
| | | |
Looks for any checked-in Cargo.lock files, and checks the lockfile
quickly by running `cargo tree --locked` there.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
tor-proto: Let onion services accept incoming BEGIN cells and make streams
Closes #864
See merge request tpo/core/arti!1451
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This `sleep` is to give the reactor task a chance to process the
`AwaitIncomingStream` message. With an 100ms, this test sometimes fails
because for some reason the reactor doesn't get a chance to process the
`AwaitIncomingStream` control command before the BEGIN cell from the
client task is received. This bumps the sleep time to 200ms for now
(TODO: follow-up with an MR with a less flaky approach).
While trying to repro the issue, I found another corner case for which
I've added a TODO HSS.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This updates the reactor to call the incoming stream handler even for
streams for which we have a stream map entry of `EndSent`. If we've
sent an END message for a stream but have not yet received an END
message back from the other party, but we later receive a BEGIN from
them, it is safe to assume we cam remove the stream from the stream map
and handle the new incoming stream request.
|