Nick Mathewson
8a2a0ec1a0
Decrease the lifetimes for storing descriptors.
...
These values were chosen experimentally, based on those from Tor, to
save disk space without wasting much bandwidth.
Closes #527 .
2022-08-09 09:30:22 -04:00
Nick Mathewson
760e2f7e95
Finish implementation of params() for DirMgr.
...
Now it maintains an up-to-date set of default parameters to be
handed out if there is no directory.
Closes #528 .
2022-08-02 10:20:13 -04:00
Nick Mathewson
9d2fb92c37
Add params() method to NetDirProvider, and partial implementation
...
This method will let users get the latest `NetParameters`, with
user-configured overrides, even if there is no current directory at
all.
Part of #528
2022-08-02 09:50:39 -04:00
Nick Mathewson
b16c042004
Now that versions have bumped, remove semver.md files.
2022-08-01 10:07:12 -04:00
Nick Mathewson
859ae4acd0
Bump patch versions on crates that have new APIs.
...
Do _not_ bump the dependency versions on crates that have had no
changes since arti 0.0.5, since those crates do not depend on the
new APIs.
```
cargo set-version -p tor-basic-utils --bump patch
cargo set-version -p tor-llcrypto --bump patch
git restore crates/tor-checkable
git restore crates/tor-consdiff
git restore crates/tor-rtmock
```
2022-08-01 09:56:29 -04:00
Nick Mathewson
511cb46997
Bump minor version on crates with deps with breaking changes.
...
This performs the transitive closure of the last operation:
everything that depends on a crate with a breaking change gets the
version which it depends on bumped.
```
cargo set-version -p tor-proto --bump minor
cargo set-version -p tor-netdoc --bump minor
cargo set-version -p arti-hyper --bump minor
cargo set-version -p arti-bench --bump minor
cargo set-version -p arti-testing --bump minor
cargo set-version -p tor-config --bump minor
```
2022-08-01 09:49:13 -04:00
Nick Mathewson
f5dcb98f06
Bump minor versions on all crates that have had breaking changes.
...
Done with these commands:
```
cargo set-version -p fs-mistrust --bump minor
cargo set-version -p tor-bytes --bump minor
cargo set-version -p tor-socksproto --bump minor
cargo set-version -p tor-cert --bump minor
cargo set-version -p tor-linkspec --bump minor
cargo set-version -p tor-cell --bump minor
cargo set-version -p tor-netdir --bump minor
cargo set-version -p tor-persist --bump minor
cargo set-version -p tor-chanmgr --bump minor
cargo set-version -p tor-guardmgr --bump minor
cargo set-version -p tor-circmgr --bump minor
cargo set-version -p tor-dirclient --bump minor
cargo set-version -p tor-dirmgr --bump minor
cargo set-version -p arti-client --bump minor
cargo set-version -p arti --bump minor
```
2022-08-01 09:43:09 -04:00
Nick Mathewson
14cd423630
tor-dirmgr: Remove opt_netdir entirely.
...
Its existence tended to hide bugs, and was just asking for trouble.
2022-07-26 10:41:38 +01:00
Nick Mathewson
de460b0668
Remove unused DirMgr::netdir method, make opt_netdir private.
2022-07-26 10:41:06 +01:00
Nick Mathewson
c39aa5de73
Add new APIs to NetDirProvider to better support timeliness.
...
Over the years we've found that most callers who want a netdir want
what C Tor calls a "reasonably live" network directory: One that is
not expired by too much, or too far in the future. But a few want a
_strictly_ live directory: one that says it is valid now, with no
tolerances. And a few want _any_ directory, no matter how expired
it is.
This commit adds net methods to NetDirProvider to provide these
directories. I think that most use cases will want to explicitly
think about what kind of directory they want, so I've made `netdir`
the simplest method. I might remove `timely_netdir` by the end of
this branch; see TODO comments.
Part of #518 .
2022-07-26 10:40:53 +01:00
Nick Mathewson
41104137b1
Rename DirSkewTolerance to DirTolerance
...
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.
2022-07-22 10:04:25 -04:00
Nick Mathewson
052f3089ca
Bump to rusqlite 0.28.
2022-07-19 16:49:44 -04:00
Nick Mathewson
8d66f8ecd0
Merge branch 'dirmgr_error_cleanup' into 'main'
...
Clean up some errors in tor-dirmgr
Closes #521
See merge request tpo/core/arti!628
2022-07-18 14:40:11 +00:00
Nick Mathewson
3c424c82d7
dirmgr: Add a helper to create LockFile errors.
2022-07-18 10:10:28 -04:00
Nick Mathewson
9d3beb34a3
Bump tor-dirmgr to version 0.5.1.
...
This does not require a change in any other crate, since
the change here does not affect tor-dirmgr's APIs.
2022-07-14 12:00:42 -04:00
Nick Mathewson
c983987782
dirmgr: Make UnrecognizedSchema more helpful
2022-07-14 09:53:17 -04:00
Nick Mathewson
8cbc740d90
dirmgr: Add an instance of BadUtf8InCache
2022-07-14 09:32:01 -04:00
Nick Mathewson
d1e9d4ce84
dirmgr: Clarify disk IO errors.
2022-07-14 09:27:29 -04:00
Nick Mathewson
c1101f13f3
dirmgr: style edits to error messages.
2022-07-14 08:40:42 -04:00
feelingnothing
171dd5eb63
Fix illegal formatting in cache filenames
2022-07-14 15:27:52 +03:00
Nick Mathewson
1dda69af2b
Remove semver.md files now that 0.5.0 is out
2022-06-24 13:31:38 -04:00
Nick Mathewson
20435aea75
Bump crate and dependency versions.
...
These were done with the following commands:
```
cargo set-version -p tor-basic-utils --bump patch
cargo set-version -p fs-mistrust --bump minor
cargo set-version -p tor-error --bump patch
cargo set-version -p tor-config --bump patch
cargo set-version -p tor-units --bump patch
cargo set-version -p tor-rtcompat --bump minor
cargo set-version -p tor-llcrypto --bump patch
cargo set-version -p tor-bytes --bump minor
cargo set-version -p tor-socksproto --bump minor
cargo set-version -p tor-cert --bump minor
cargo set-version -p tor-cell --bump minor
cargo set-version -p tor-proto --bump minor
cargo set-version -p tor-netdoc --bump patch
cargo set-version -p tor-netdir --bump minor
cargo set-version -p tor-persist --bump patch
cargo set-version -p tor-chanmgr --bump minor
cargo set-version -p tor-guardmgr --bump minor
cargo set-version -p tor-circmgr --bump patch
cargo set-version -p tor-dirclient --bump patch
cargo set-version -p tor-dirmgr --bump minor
cargo set-version -p arti-client --bump patch
cargo set-version -p arti --bump minor
cargo set-version -p arti-bench --bump minor
cargo set-version -p arti-testing --bump minor
```
2022-06-24 12:00:22 -04:00
Ian Jackson
4831f9d38c
Merge branch 'clippy' into 'main'
...
Fix clippy nightly again
See merge request tpo/core/arti!603
2022-06-24 14:13:58 +00:00
Nick Mathewson
1f8f24dbcb
Merge branch 'dirmgr' into 'main'
...
dirmgr: followups to !587 , mostly using iterators
Closes #468
See merge request tpo/core/arti!599
2022-06-24 13:46:52 +00:00
Nick Mathewson
ea3160737c
Fix a couple of typos in rustdoc comments.
2022-06-24 08:18:15 -04:00
Ian Jackson
589c6e52bb
Run maint/add_warning crates/*/src/{lib,main}.rs
...
Update all lint blocks
2022-06-23 19:15:42 +01:00
Ian Jackson
6c110a232c
dirmgr: Use ... .find().is_none() rather than clippy's suggestion
2022-06-23 18:42:33 +01:00
Ian Jackson
d2bd71c5f0
dirmgr: DirBootstrapStatus: Refactor mut_status_for using entries_mut
...
IMO this is rather less confusing.
2022-06-22 10:53:02 +01:00
Ian Jackson
d36c433b36
dirmgr: Use new statuses() helper method
...
The two call sites become clearer, IMO.
2022-06-22 10:53:02 +01:00
Ian Jackson
24d43f83fd
dirmgr: DirBootstrapStatus: Provide statuses and entries_mut
...
We're going to use these in a moment.
One returns entries and the other statuses simply because that's
what's actually going to be wanted.
2022-06-22 10:53:02 +01:00
Ian Jackson
5c51d03efb
dirmgr: Remove a TODO comment
...
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/587#note_2815945
2022-06-22 10:53:02 +01:00
eta
4e3537746f
Merge branch 'display_source_cleanup' into 'main'
...
Do not include error source() in display() format.
See merge request tpo/core/arti!598
2022-06-21 19:34:27 +00:00
Ian Jackson
9b4ba4893e
Merge branch 'stalled_directory' into 'main'
...
Detect and report stalled directory downloads
Closes #468
See merge request tpo/core/arti!587
2022-06-21 19:13:40 +00:00
Nick Mathewson
08d9bbf33b
Do not include error source() in display() format.
...
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 .
2022-06-21 14:14:14 -04:00
Nick Mathewson
9b7849a293
Refactor DirStatus data structures.
...
AttemptId is now linked to DirStatus in StatusEntry.
DirBootstrapStatus now has an inner enum to make invalid status
unrepresentable.
2022-06-21 10:26:53 -04:00
Nick Mathewson
5509bd0269
Merge branch 'config-fix2' into 'main'
...
Use impl_standard_builder more and remove manual Default/builder impls
See merge request tpo/core/arti!594
2022-06-16 20:30:34 +00:00
Ian Jackson
db51bdcbc1
Merge branch 'config-fix' into 'main'
...
Config handling and logging fixes
Closes #480
See merge request tpo/core/arti!589
2022-06-16 15:46:18 +00:00
Ian Jackson
2ca2c03059
impl_standard_builder: Use for tor_dirmgr::Authority
2022-06-16 15:42:06 +01:00
Ian Jackson
17caebd284
impl_standard_builder: Use for tor_dirmgr::DownloadSchedule
2022-06-16 15:42:06 +01:00
Ian Jackson
8b724d40f8
impl_standard_builder: Use for tor_dirmgr::DownloadScheduleConfig
2022-06-16 15:27:00 +01:00
Ian Jackson
2ab5c0861e
impl_standard_builder: Use for tor_dirmgr::NetworkConfig
2022-06-16 15:27:00 +01:00
Ian Jackson
e32210a398
impl_standard_builder: Use for tor_dirmgr::DirSkewTolerance
2022-06-16 15:27:00 +01:00
Nick Mathewson
0223c91b26
Merge branch 'high-level-features' into 'main'
...
Add "full" and "experimental" features to arti, arti-client, and below.
Closes #499
See merge request tpo/core/arti!584
2022-06-16 12:24:47 +00:00
Ian Jackson
4c65e9994d
Add some missing `serde(default)` to uses of humantime_serde::option
...
Without this, if the substructure is provided, these fields are
mandatory within it.
2022-06-16 11:08:16 +01:00
Nick Mathewson
647d4410bb
Fix clippy::significant_drop_in_scrutinee warnings
...
This is apparently a new warning from clippy nightly, documented in
https://rust-lang.github.io/rust-clippy/master/index.html#significant_drop_in_scrutinee .
I'm not in love with the temporary variables that this warning wants
me to introduce, but it does seem like a decent way to avoid some
kinds of deadlock.
2022-06-15 11:52:30 -04:00
Nick Mathewson
425af9db91
Work around an erroneous warning from nightly clippy
2022-06-15 11:52:30 -04:00
Nick Mathewson
331578d19c
Make display formats work with older derive_more.
2022-06-14 14:10:18 -04:00
Nick Mathewson
c74c268c8b
tor-dirmgr: Make DirStatus non-public.
...
I believe this type was made public in error: No other crate uses it,
and no API exposes it.
2022-06-14 11:02:29 -04:00
Nick Mathewson
e3dced360b
Add a blockage-reporting mechanism to tor-dirmgr.
...
The `DirBootstrapStatus` type now exposes a blockage() method to
return an `Option<DirBlockage>`.
The blockage types reported are more low-level than I'd like, but
they are IMO good enough for now: we'll want to get experience with
actual vs hypothetical problems before we refine them.
2022-06-14 10:42:18 -04:00
Nick Mathewson
25bbdd5f25
Add a couple of TODO items.
2022-06-14 10:05:27 -04:00