Nick Mathewson
e4ca2459db
add_warnings: ignore clippy::result_large_err
...
This is a temporary workaround for #587 until we get it fixed for
real.
2022-11-03 11:05:14 -04:00
Nick Mathewson
0cb886a098
add_warnings: work with more non-GNU finds.
...
We were doing `find -name '*.rs'`, but `find . -name '*.rs'` (with the .)
is more standard.
2022-11-03 11:03:43 -04:00
eta
c77cecd5b3
Merge branch 'edition-2021' into 'main'
...
set all crate edition to 2021
See merge request tpo/core/arti!822
2022-11-03 14:39:24 +00:00
Ian Jackson
6b76c31011
Merge branch 'descriptors' into 'main'
...
Provide an implementation of BridgeDescProvider
See merge request tpo/core/arti!820
2022-11-03 12:15:07 +00:00
Ian Jackson
70b420adf8
bridge descriptors tests: Fix flaky test
2022-11-03 11:46:20 +00:00
Ian Jackson
daf7eac60a
bridge descriptors tests: Test set_bridges more thoroughly (fix)
...
The RetryDelays are being triggered for the 2nd time here, so their
timeouts can be longer. We must bump the sleep to make sure we don't
have a flaky test.
2022-11-03 11:37:30 +00:00
Ian Jackson
7a99601721
bridge descriptors: logging: Log addition and removal (fmt)
...
Worsify formatting as demanded by rustfmt.
2022-11-03 11:37:30 +00:00
Ian Jackson
269808336e
bridge descriptors: logging: Log addition and removal
...
This involves breaking the calls to `new_bridges.remove` into a helper
that does the logging.
2022-11-03 11:37:30 +00:00
Ian Jackson
17c766fde4
bridge descriptors: logging: Log download start and outcome
2022-11-03 11:37:30 +00:00
Ian Jackson
1ccd9db9af
bridge descriptors tests: Test set_bridges more thoroughly
...
Prior to the previous commit, set_bridges would malfunction if there
were bridges which where (i) in current (ii) in queued or running
(iii) in the new bridge set.
This test failed then and passes now.
2022-11-03 11:37:30 +00:00
Ian Jackson
4a830e1ac2
bridge descriptors: Rewrite set_bridges
...
This was fundamentally confused and irregular. Now it is more
regular: it does the same things to all the elements of Tracked,
and a simple filtering on current.
This fixes a bug, for which I'm about to add a test case.
2022-11-03 11:37:30 +00:00
Ian Jackson
0571674a64
bridge descriptors tests: Add another couple of test cases
2022-11-03 11:37:30 +00:00
Ian Jackson
6db3403820
bridge descriptors tests: stream_drain_ready returns event count
...
We'll use this in a moment.
2022-11-03 11:37:30 +00:00
Ian Jackson
53c1cf0c6d
bridge descriptors tests: Break out bad_bridge helper function
2022-11-03 11:37:30 +00:00
Ian Jackson
42b1b08fdf
bridge descriptors: Change default max_refetch
...
As per
https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/820#note_2850269
2022-11-03 11:37:30 +00:00
Ian Jackson
2ae8a52371
bridge descriptors: Add clarification about bridge states
2022-11-03 11:37:30 +00:00
Ian Jackson
ad39873782
bridge descriptors: Improve and fix docs for consider_launching
2022-11-03 11:37:30 +00:00
Ian Jackson
d44bc1d0f8
bridge descriptors: Add comments where StateGuard is dropped
2022-11-03 11:37:30 +00:00
Ian Jackson
54e51cdba5
bridge descriptors: Document `changed` and `earliest_timeout` Options
2022-11-03 11:37:30 +00:00
Ian Jackson
fb4ffb76fd
bridge descriptors: Document updates argument to timeout_task
2022-11-03 11:37:30 +00:00
Ian Jackson
48f48841e1
Require derive_more 0.99.3
...
0.99.[012] have a bug https://github.com/JelteF/derive_more/issues/114
which makes the Deref derive for bridgedesc::StateGuard not work
and therefore breaks minimal-versions CI.
It seems simpler to require the newer version everywhere.
2022-11-03 11:37:23 +00:00
Ian Jackson
8eb7c731a2
bridge descriptors: Tests
2022-11-03 11:37:05 +00:00
Ian Jackson
3a185d61df
bridge descriptors: Provide a consistency check function
...
This is really part of the tests, but I put it here so that it can be
compiled-in if someone wants it during debugging.
2022-11-03 11:37:05 +00:00
Ian Jackson
51b4588cc0
bridge descriptors: Provide an implementation of BridgeDescProvider
...
Tests will come in a moment.
2022-11-03 11:37:05 +00:00
Ian Jackson
0fb535ba28
tor-dirclient: Response: Provide into_output_string
...
This is the missing one of the full set. It turns out that I wanted
this rather than the non-consuming output_string.
2022-11-03 11:37:05 +00:00
Ian Jackson
42f9651b8e
Copy tor-netdoc/testdata/routerdesc1.txt into tor-dirmgr
...
This seems better than having tor_netdoc export a `#[cfg(test)]`
public constant.
2022-11-03 11:37:05 +00:00
Nick Mathewson
66f34ee774
Merge branch 'guards_as_bridges_part3' into 'main'
...
GuardMgr: decouple NetDir from guards and sample code.
See merge request tpo/core/arti!815
2022-11-02 12:41:03 +00:00
Nick Mathewson
c2ed381c99
Refactor CandidateStatus API to simplify code in descs.
...
This removes some duplication.
2022-11-02 08:07:32 -04:00
Nick Mathewson
fc0c12510a
GuardMgr: Fix and improve comments based on review.
2022-11-02 08:07:32 -04:00
Nick Mathewson
6828178dec
guardmgr: fix rustdoc references.
2022-11-02 08:07:32 -04:00
Nick Mathewson
08473872ab
guardmgr: Refactor candidate info; add `full_dir_info`
...
Previously we always set `dir_info_missing` to `false` for new
guards, since new guards could only be taken from ones that were
present in the NetDir. But for bridges, we don't download their
info until _after_ we have chosen them as guards.
2022-11-02 08:07:11 -04:00
Nick Mathewson
5867318a35
guardmgr: Implement Universe for bridges.
...
Now we can use a group of bridges as the basis for a sample of
guards.
2022-11-02 08:06:43 -04:00
Nick Mathewson
79dade342a
guardmgr: Universe API should look up by ChanTarget
...
This will be necessary for bridges.
2022-11-02 08:06:43 -04:00
Nick Mathewson
82e9a57012
guardmgr: take sampled guards from Universe.
...
This is a trickier case, since we have to deal with weights.
2022-11-02 08:06:43 -04:00
Nick Mathewson
7733146c8c
guardmgr: Continue porting porting code to use Universe.
...
Two more simple cases that can use Universe instead of Netdir.
2022-11-02 08:06:20 -04:00
Nick Mathewson
fbcacea993
guardmgr: Begin to decouple guards from NetDir.
...
In this and the upcoming commits I'll be changing how guards related
to `NetDir` and to `Relay`. Previously, a guard could only come
from (or be updated from) a `Relay` in a `NetDir`. Soon it will be
able to be built from a bridge as well.
To do this, I'm defining a `Universe` trait (name negotiable) that
represents a set of things that may be guards. I'm going to
continue extending its functionality until there are no more
methods in guard.rs or sample.rs that take `NetDir`.
This commit removes most of the usage of `NetDir` and `Relay` in
`guard.rs`.
2022-11-02 08:05:51 -04:00
Nick Mathewson
b5f498021d
guardmgr: Rename microdescriptor_missing to dir_info_missing
2022-11-02 07:59:56 -04:00
Nick Mathewson
39ea0518ee
guardmgr: Allow guards to be constructed from any ChanTarget.
2022-11-02 07:59:56 -04:00
Nick Mathewson
1cb6ea1e77
guardmgr: Include PtTarget in guards.
...
Use a vector, since we may (someday) want to allow a Guard to have
multiple PtTargets.
2022-11-02 07:59:56 -04:00
Ian Jackson
0489d2d4be
Merge branch 'notify' into 'main'
...
refactor config reload triggering
Closes #562
See merge request tpo/core/arti!819
2022-11-01 13:31:17 +00:00
trinity-1686a
c487de6c46
debounce reload cfg events
2022-11-01 13:42:05 +01:00
Ian Jackson
0a60e9e7cc
Merge branch 'remove-deps' into 'main'
...
remove unused dependancies
See merge request tpo/core/arti!817
2022-11-01 11:07:03 +00:00
trinity-1686a
d29f38603d
set all crate edition to 2021
2022-11-01 00:17:33 +01:00
trinity-1686a
ce886e209f
rename unused field
2022-10-30 12:36:13 +01:00
trinity-1686a
5cf2933d33
update some strings
2022-10-30 12:31:07 +01:00
trinity-1686a
5abddfb579
use iife so we can try! instead of custom error handling
2022-10-30 12:31:07 +01:00
trinity-1686a
66c08c967e
refactor so events always indicate reload
2022-10-30 12:31:07 +01:00
trinity-1686a
749746a609
depends less on notify types
2022-10-30 12:31:07 +01:00
trinity-1686a
e6e064ac8a
remove unused dependancies
2022-10-29 13:29:55 +02:00
Nick Mathewson
a962683222
Merge branch 'upgrade_20221028' into 'main'
...
Upgrade and update dependencies
See merge request tpo/core/arti!816
2022-10-28 19:22:26 +00:00