| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This will help us reduce the number of `#[cfgs(...)]` from `client.rs`
Part of #897
|
| | | | |
| | | |
| | | |
| | | | |
Part of #897
|
| | | | |
| | | |
| | | |
| | | | |
Part of #897
|
| |\| | |
| | | |
| | | |
| | | |
| | | | |
keymgr: First steps towards path validation and permission checks
See merge request tpo/core/arti!1255
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We currently initialize the `ArtiNativeKeyStore` with a dummy root dir,
so when `ArtiNativeKeyStore` starts validating directories, this code
will start to fail. Let's preemptively ignore any errors coming from
`ArtiNativeKeyStore::new`. This is temporary and will be removed when we
introduce the key store config (and a real default value for the
keystore root dir).
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
This will be useful later, when `KeyMgr` will start validating
permissions and paths.
|
| |/ / /
| | |
| | |
| | |
| | |
| | | |
In the future, the potential causes of an `Error::Filesystem` error will
include permission errors as well as other errors (not just
`io::Error`s).
|
| |\ \ \
| | | |
| | | |
| | | |
| | | | |
Resolve several "TODO HS" comments in circmgr.
See merge request tpo/core/arti!1258
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This algorithm only looks at circuits until it finds one that
satisfies our needs. To get a random circuit, it just randomizes
the starting point within the pool.
This optimization may help if we let circuit pools grow large.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we'd always try to keep 8 circuits ready. That doesn't
make sense if we are super-busy. Instead, if we run out of
circuits, we double the amount that we try to keep ready, and if we
never go under 80% of our target number, we half the number we try
to keep ready.
We limit the rate of change here, to make sure that we aren't
flapping too much or shrinking too aggressively.
This algorithm is still a mite arbitrary, and will need tuning in
the future.
|
| | | | |
| | | |
| | | |
| | | | |
This will be helpful as we complexify the pool behavior a bit.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These functions' documentation already says that they don't retry,
and hsclient appears to be where we are concentrating our retry
efforts.
|
| | | | | |
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
rpc: Minor docs improvements
See merge request tpo/core/arti!1260
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| |\ \ \ \ \
| |_|_|/ /
|/| | | |
| | | | |
| | | | | |
Sort out .onion handling in arti-client
See merge request tpo/core/arti!1257
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Reformatting deferred for clarity.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This test case shows that we return a suboptimal error in some cases.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
ErrorDetail isn't PartialEq so we can't assert_eq! it.
But the discriminants will be.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This disposes of the TODO as well.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
(Taken from tpo/core/arti!1113 and squashed by Ian Jackson, with
conflicting hunk in StreamPrefs struct skipped.
The setter name is wrong, the cfg feature is wrong, there are no
docs, and the TODO is still there. These will be fixed in a moment.)
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This should be enabled by default. There's still no setter for not,
nor is it honoured - those are separate TODOs.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Previously this error meant "we haven't written this code yet".
Now, we change it to "you haven't built Arti with this feature".
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | | |
No functional change yet. We'll use this shortly.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Disposes of two TODOs.
|
| | | | | |
| | | | |
| | | | |
| | | | | |
This will make subsequent commits less noisy to read.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These have already been partially/replaced supplemented.
The other test referred to will appear shortly.
|
| |\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
More work on RPC sessions, connections, and managers
See merge request tpo/core/arti!1254
|
| | | | | | | |
|
| | | |/ / /
| |/| | | |
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This will later let us tell the session-creation function
how the authentication occurred, which will let it decide
what privileges to provide.
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Formerly, every time we wanted to launch a new connection, we had
to give the RpcMgr a TorClient. The connection would hold that
TorClient until a session was authenticated, and then would wrap
it in a Session and put it in the object map.
Now, the RpcMgr holds a Box<dyn Fn()...> that knows how to
create Sessions. When a connection is authenticated, it
asks the Mgr to make it a new session. This lets us make it
clearer that the TorClient simply can't be given out until the
connection is authenticated. Later, it will let us create
more types of Session objects under more complicated rules.
|
| | | | | | |
|
| | | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We'll want to move the responsibility for creating Sessions outside
the rpcmgr crate.
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|