| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
|
|
|
|
| |
This gets rid of many Result(). Many parameters are renamed.
Test cases of the now-impossible branch are removed.
Deleting the match from padding_parameters will come in a moment.
I've split off that commit since it has much whitespace noise.
for now, change the error type to Void.
|
| |
|
|
|
| |
This commit is just the necessary plumbing. The config is currently
empty. We'll add something to it, for padding control, later.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The chanmgr remembers the last dormancy state it was told.
We invent a chanmgr-specific Dormancy which the arti-client code knows
how to convert from the richer top-level dormant status. This avoids
having to have everyone know all the variants of the top-level state.
To call reconfigure_general, we must also obtain and plumb through a
netdir. Right now we must return an internal error if there is in
fact no netdir, because reconfigure_general does not yet cope with a
missing netdir.
Nothing actually *uses* the dormancy yet.
|
| |
|
|
|
|
| |
We're going to need to reuse this, so we can plumb the dormancy to
more places. Breaking it out avoids having repeat the initial
dormancy value in two places.
|
| |
|
|
|
| |
The rustfmt-mandated different formatting of these two very similar
blocks is bad enough, without them being smooshed together.
|
| |
|
|
| |
Closes #522.
|
| | |
|
| |
|
|
|
|
| |
This allows us to give better errors in the case where bootstrapping
succeeds at first, but fails thereafter for long enough to make our
directory expire.
|
| |
|
|
| |
Closes #503.
|
| |
|
|
|
|
| |
This name is more accurate because we aren't only dealing with
clock skew here: we're also trying to tolerate the case where the
authorities fail to reach consensus for a while.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
This logic can now be adjusted via the config object so that it does
its own overriding by looking at the environment as appropriate.
Removing these methods helps simplify the code a bit.
Enabled by #483.
|
| |
|
|
|
|
|
| |
The variable is now handled when building the configuration, and no
longer needs to be special-cased.
Closes #483.
|
| |
|
|
|
| |
This means that it is no longer possible to write code which updates
the dormant mode but forgets to notify the periodic tasks.
|
| |
|
|
|
| |
This will allow receivers (which we are about to introduce) to
terminate when the last client is dropped.
|
| |
|
|
|
|
|
|
| |
We are going to want to be able to wake up other tasks elsewhere in
Arti, that need to know about dormancy. We will give them a postage
watch Receiver.
Right now there are no such things yet.
|
| | |
|
| |
|
|
| |
We're going to want this in a moment.
|
| | |
|
| |
|
|
| |
Update all lint blocks
|
| |\
| |
| |
| |
| | |
Do not include error source() in display() format.
See merge request tpo/core/arti!598
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
According to doc/Errors.md, and in keeping with current best
practices, we should not include display an error's `source()` as
part of that error's display method. Instead, we should let the
caller decide to call source() and display that error in turn.
Part of #323.
|
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Detect and report stalled directory downloads
Closes #468
See merge request tpo/core/arti!587
|
| | | |
| | |
| | |
| | | |
Closes #468.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A "reset" happens whenever we have to start a download attempt over
-- either because we ran out of retries, or we found something wrong
with the consensus after fetching certificates.
An "error" happens when we have a recoverable error from one or more
directory sources.
A "stall" happens whenever a round of downloads or cache loads leads
to no change in the status.
We don't yet use this as part of our status reporting.
|
| | |/
|/| |
|
| |\ \
| | |
| | |
| | | |
# Conflicts:
# crates/arti-client/Cargo.toml
|
| | |\ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
Add "full" and "experimental" features to arti, arti-client, and below.
Closes #499
See merge request tpo/core/arti!584
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rustls uses ring, which uses code from BoringSSL, which derived from
OpenSSL before OpenSSL changed their license. So ring is currently
under 3BSD/SSLEay licenses, which aren't GPL-compatible, which may
be a problem for some people.
See #493.
|
| | |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use TaskSchedule to sleep in directory bootstrapping
Closes #497
See merge request tpo/core/arti!571
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This change also means that we need to create the handle and scheduler
earlier in the process of creating the DirMgr. If we don't, we won't
have a way to manage the task before bootstrap() returns.
|
| | |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
These need to be optional: they improve performance by shifting to
asm implementations, which may not be everybody's idea of good practice.
These are not 'pure' features, since they select one implementation
but disable another. Therefore they don't go in `full`.
Closes #441.
|
| |/ /
| |
| |
| |
| | |
Also, unify the features documentation format for those two crates,
and document previously undocumented features there.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously it was the job of a task in CircMgr to do this; but we're
going to want to give GuardMgr full access to the latest NetDir for
this, and for other code-simplification reasons.
With this change I'm deprecating a couple of functions in
tor-circmgr. It's no longer necessary for us to have an artificial
external way for you to feed new NetDirs to a circmgr. (I could
just remove them, but I want practice deprecating.)
|
| |/ |
|
| |
|
|
|
| |
From running add_warning, with manual picking of the right
hunks/lines.
|
| |
|
|
|
|
| |
This was the result of:
maint/add_warning crates/*/src/{lib,main}.rs
and then manually curating the results.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This gets rid of `#[serde(flatten)]` which prevents serde_ignored (and
other kinds of introspection) from working properly.
The price is now that the toplevel has to deal with two configuration
objects.
The Resolvable trait is overkill right now, but is going to do More
Things in a moment. In particular, we need the impl on tuples, so
that the whole config can be processed in one go.
|
| | |
|
| |
|
|
|
|
| |
This change requires a little refactoring of TorClientBuilder: now,
instead of enabling or disabling mistrust, it enables or disables
the decision to _override_ the mistrust in the config.
|
| |
|
|
|
| |
This is an approximately minimal revision to get Builder in place;
subsequent commits will clean up the API.
|
| |
|
|
|
|
| |
this change adds unit tests for the public methods of StreamPrefs. although
these are mostly "setter" style functions, the tests confirm the basic
expectations and operation.
|
| |\
| |
| |
| |
| | |
Abolish arti-config, replacing with tombstone crate
See merge request tpo/core/arti!508
|
| | |
| |
| |
| |
| |
| | |
That's where this definitions is now. This test ought to have been
moved in
Move default_config_file() into arti-client
|
| |/
|
|
|
| |
This deletes many handcoded impls. It also generates lots of impls
that we previously didn't have.
|
| |\
| |
| |
| |
| | |
impl_standard_builder followup
See merge request tpo/core/arti!505
|