| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\
| |
| |
| |
| |
| |
| | |
rpc: Clarify and fix some issues surrounding relative paths.
Closes #1748 and #1749
See merge request tpo/core/arti!2712
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
rpclib: Clean up after performing cookie auth
See merge request tpo/core/arti!2716
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Previously we never released the intermediary cookie-auth object,
which would have left it kicking around on the RPC server side
until we finally closed our connection.
|
| |/ /
| |
| |
| |
| |
| |
| |
| | |
This method doesn't actually create a new stream; it creates a
single-use client object that can be used with SOCKS to launch
a new stream, and capture an RPC object for that stream.
Closes #1664.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
We don't want to call this "unix path" anywhere, since it
corresponds to _any_ case where the ability to negotiate a
successful connection means that the client is authorized.
We also don't want to call it "none": The authentication
is inherent to the connection, not nonexistent.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously participants in the cookie protocol only bound the peer
nonce in their MACs. With this change, they bind both nonces.
This change is _probably_ not necessary for security, but it can't
hurt. It follows a general principle that Adam Langley told me a
long time ago: you won't regret binding more, but you might regret
binding less.
|
| |/ |
|
| |
|
|
| |
Closes #1753
|
| |\
| |
| |
| |
| | |
clippy: deny `mod_module_files`
See merge request tpo/core/arti!2689
|
| | |
| |
| |
| |
| |
| | |
Denies 'mod.rs' files for consistency.
https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expose ArtiRpcConnBuilder and appropriate C wrapper functions in
our FFI code, and wrap those functions in our python wrapper.
This breaks the old C API, but that's allowed since the API
is still experimental.
Some design decisions:
* I've wrapped the builder in a Mutex, so that we can continue
our FFI rule that we do not require non-Rust code to wrap `&mut`.
* I've removed the non-builder connect() function from the C API
as extraneous.
* I've made a single function to prepend elements to the search
path.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This commit covers the major points of the design:
Parsing the environment, parsing and resolving connect points,
connecting to Arti, and handling errors.
There are a few areas that need to be fixed,
all marked with XXXXs.
|
| | |
|
| |
|
|
| |
These are new in Rust 1.83.
|
| |
|
|
|
|
|
|
| |
In 1.83, this warning triggers on many of our crates.
We're thinking of fixing them all, but for now,
we're going to disable the warning.
This is part of #1765.
|
| |
|
|
|
| |
Previously we implied that it was only for strings,
which isn't the case.
|
| |
|
|
|
|
|
| |
Now, instead of telling the session or the connection to drop the
object ID, we tell the object ID to go away.
Closes #1663.
|
| | |
|
| | |
|
| |
|
|
|
| |
Arti has a MSRV of rust 1.77 which supports C string literals, so
'c_str_macro' isn't needed.
|
| |\
| |
| |
| |
| |
| |
| | |
Replace references to prop351 with socks-extensions.md
Closes #1629
See merge request tpo/core/arti!2492
|
| | |
| |
| |
| |
| |
| |
| | |
Now that the proposal is implemented and merged into the specs,
the proposal itself is only historical.
Closes #1629.
|
| |\ \
| |/
|/|
| |
| | |
artilib: Take a different approach to sealing a pair of traits.
See merge request tpo/core/arti!2472
|
| | |
| |
| |
| | |
This resolves a "TODO MSRV" comment.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
rpclib: Unify code for internally generated requests
Closes #1587
See merge request tpo/core/arti!2456
|
| | | | |
|
| | | |
| | |
| | | |
Co-authored-by: gabi-250 <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We now have a single type to represent the error
"A request that we made internally didn't get a result we expected."
The functions to generate these requests are now centralized too.
Closes #1587.
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
This restores the functionality of
socks users: detect closed sockets.
0c595818f713916d94b7b0e4062f953fad7c9799
which we reverted as part of rebasing this branch onto main.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This deduplicates some docs and eliminates the two wrapper functiosn
for `run_handshake`, which is now just `handshake`.
We're going to make other API breaks too, and this isn't going to be
the primary API, so we might as well do this.
Proper description of the semver breakage will come at the end when
it's all done.
|
| | | |
| | |
| | |
| | | |
This reverts commit 0c595818f713916d94b7b0e4062f953fad7c9799.
|
| | |/
|/|
| |
| | |
This reverts commit 8da8b88481c26d49ac96e79165538e01237ec9ed.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
When doing the client handshake, we need to read data _after_ we
check for stuff to send, since the client speaks first in the socks
protocol.
Without this patch, the socks handshake just stalls.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
socks users: detect closed sockets. (TROVE-2024-011)
Closes #1635
See merge request tpo/core/arti!2447
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without this check, our socks code can enter an infinite loop
if a socket is closed at the wrong time.
Resolves TROVE-2024-011.
Fixes #1635.
|