Nick Mathewson
1d70bf4ddd
Merge branch 'bridge_containers' into 'main'
...
Start implementing more data structures to hold Bridge descriptors.
See merge request tpo/core/arti!755
2022-10-06 17:16:44 +00:00
Nick Mathewson
3f419f7f65
Extend some comments about bridge descriptors
2022-10-06 12:56:28 -04:00
eta
92c5b386ac
Merge branch 'workaround_589' into 'main'
...
Temporarily suppress a false positive from nightly.
See merge request tpo/core/arti!754
2022-10-06 14:15:23 +00:00
Nick Mathewson
3068619a06
Merge branch 'shadow-ci' into 'main'
...
Shadow ci
Closes #174
See merge request tpo/core/arti!634
2022-10-05 18:44:17 +00:00
Jim Newsome
cef9a7b65a
Create a shadow-based integration test
...
Fixes https://gitlab.torproject.org/tpo/core/arti/-/issues/174
2022-10-05 12:48:45 -05:00
Nick Mathewson
068b4d944e
Merge branch 'dont-limit-coredump' into 'main'
...
remove manual limitation of coredump size
Closes #598
See merge request tpo/core/arti!757
2022-10-05 16:54:47 +00:00
trinity-1686a
f230cb5c03
remove manual limitation of coredump size
...
it's already disabled by secmem_proc
2022-10-05 18:32:16 +02:00
Nick Mathewson
4fd98c1760
Merge branch 'no-default-feature-arti-client' into 'main'
...
feature-gate some functions requiring PreferredRuntime in arti_client
Closes #597
See merge request tpo/core/arti!756
2022-10-05 12:51:27 +00:00
trinity-1686a
2b8b775dfc
feature-gate some functions requiring PreferredRuntime
2022-10-05 12:54:04 +02:00
Nick Mathewson
fac975ddfb
Add a temporary HasAddrs for BridgeRelay
...
See comment for an explanation of the next issue here.
2022-10-04 17:53:40 -04:00
Nick Mathewson
23b3b0553f
BridgeRelay: Implement more traits.
...
Also add a BridgeRelayWithDesc type (name tbd) to guarantee that
a bridge relay really does have a known descriptor before you
try to build a circuit with it.
2022-10-04 17:49:32 -04:00
Nick Mathewson
acb6288621
netdoc: Add accessors for protocols and ntor key.
...
These are needed to actually be able to build circuits through
a bridge.
2022-10-04 17:49:32 -04:00
Nick Mathewson
d9e3d38bd6
Start on a new BridgeRelay type.
...
This is the one we'll actually use to connect to bridges. It
has a `Bridge` line, and an optional `BridgeDesc`.
Maybe this will turn into a `BridgeRelay<'a>` by analogy to `Relay`
some time; I'm not sure.
2022-10-04 17:49:32 -04:00
Nick Mathewson
013b9bff1b
Implement HasRelayIds for Bridge.
2022-10-04 17:49:32 -04:00
Nick Mathewson
d4f26581c0
Implement BridgeDesc and BridgeDescList.
...
BridgeDesc is a separate type to make sure that we do not confuse
bridges' descriptors with the descriptors from other routers down
the road. (Bridges' descriptors need to be used differently, and
treated as more private.)
With this code, BridgerDescList is now just an alias for
`ByRelayIds<BridgeDesc>`, which is pretty keen.
2022-10-04 17:49:32 -04:00
Nick Mathewson
6f0d974cbe
tor-netdoc: Add relay ID accessors for RouterDesc.
...
To implement a reasonable RsaIdentity accessor, we have to
store the RsaIdentity in the RouterDesc, or else we'd have to
recalculate it using SHA1 and DER every time.
The Ed25519 identity is hidden inside the identity cert, but it's
safe to get a reference to it.
2022-10-04 17:49:32 -04:00
Nick Mathewson
6341057129
Temporarily suppress a false positive from nightly.
...
Nightly rust gives a warning about this "pub use", but the warning
is a false positive. Since it doesn't seem to be going away in a
hurry, let's suppress it for now.
2022-10-04 16:40:34 -04:00
Nick Mathewson
0f06b9af0b
Merge branch 'by_relay_id_set' into 'main'
...
Implement ByRelayIds<H : HasRelayIds>
See merge request tpo/core/arti!753
2022-10-04 20:34:49 +00:00
Nick Mathewson
d50efc835b
Bump to new arti-corpora.
2022-10-04 16:17:45 -04:00
Nick Mathewson
5a5f96aa37
n_key_set: Fix bugs in API documentation.
...
For whatever reason, rustdoc didn't like these multiline strings
in `doc` attributes.
2022-10-04 16:05:40 -04:00
Nick Mathewson
11caa46525
tor-linkspec: ByRelayIds<> type to hold a set of HasRelayIds
...
This is based on the type generated with n_key_set, with a
couple of extra methods to take advantage of RelayId and RelayIdRef.
2022-10-04 16:05:40 -04:00
Nick Mathewson
f8382d4978
n_key_set: Wrap "where" clauses in square brackets too.
...
Otherwise, there is a parsing ambiguity. :(
2022-10-04 16:05:40 -04:00
Nick Mathewson
8475d3ab39
n_key_set: Rename generic parameters on functions.
...
Previously we used `<T>` in a bunch of places. But that fails
if you try to declare `T` as a parameter on the structure itself.
2022-10-04 16:05:40 -04:00
Nick Mathewson
bf7c0bb2ba
n_key_set: Add a try_insert().
...
I am finding as I use this that I want a variant that can't panic.
2022-10-04 16:05:40 -04:00
Ian Jackson
9705ef3fea
Merge branch 'bridge-parse' into 'main'
...
Parse (and format) bridge lines
See merge request tpo/core/arti!745
2022-10-03 20:13:02 +00:00
Ian Jackson
193d0f7007
pt: bridge line parsing: overhaul errors
...
Include the offending word in all the applicable errors.
Always print it with {word:?}.
As a consequence, there are no From impls any more and error
generation/conversion is by hand in all cases.
Clarify InvalidPtOrAddr vs InvalidIAddrorPt, and don't make the
attempted parse be a source error for those.
Where we still have source errors, don't print them in Display.
2022-10-03 20:45:54 +01:00
Ian Jackson
c920dca9b2
pt: transport ID error: Fix style to remove full stop
2022-10-03 20:45:54 +01:00
Ian Jackson
00fb96650b
pt: Check PT key=value syntax
...
This is not perfect but it at least ensures that our own parsing and
printing code works correctly with all the values we accept.
2022-10-03 20:45:54 +01:00
Ian Jackson
b67b5ac536
pt: Make PtTarget::push_setting fallible, and take Into
...
It has its own error type PtTargetInvalidSetting.
In check_doc_features, adjust suppression to new code.
2022-10-03 20:45:54 +01:00
Ian Jackson
a237b80ad8
pt: bridge line parsing: Add commentary
2022-10-03 20:45:54 +01:00
Ian Jackson
f6a6fe0d8e
pt: Document Bridge line syntax
2022-10-03 20:45:54 +01:00
Ian Jackson
01222dd9e7
pt: PtTransportAddr: change None string to "-"
...
This is going to appear in config files etc. We don't want the user
to have to type "<none>" in a bridge line.
2022-10-03 20:45:54 +01:00
Nick Mathewson
b08ac01b61
Merge branch 'new-libfuzzer' into 'main'
...
Upgrade all fuzzers to newer libfuzzer-sys version.
See merge request tpo/core/arti!752
2022-10-03 19:13:09 +00:00
Nick Mathewson
0d985b0def
Merge branch 'hostname-validation' into 'main'
...
Use hostname-validator crate for hostname validation
See merge request tpo/core/arti!739
2022-10-03 19:01:56 +00:00
Nick Mathewson
128fb76c73
Upgrade all fuzzers to newer libfuzzer-sys version.
2022-10-03 14:35:34 -04:00
Nick Mathewson
88a06225b9
Remove semver.md files now that arti 1.0.1 is out.
2022-10-03 14:16:56 -04:00
Nick Mathewson
7402578af4
Merge branch 'multi_keyed_set' into 'main'
...
Include a HashSet variant that can be keyed on multiple keys.
See merge request tpo/core/arti!747
2022-10-03 18:16:10 +00:00
Nick Mathewson
1329f2c8f3
n_key_set: fix doctest compilation.
2022-10-03 13:31:03 -04:00
Nick Mathewson
8ab2a88923
n_key_set: Update generic syntax
...
Doing this lets us work with defaults and const generics.
2022-10-03 13:31:01 -04:00
Nick Mathewson
857272bc7a
n_key_set: rename map elements.
...
This prevents an explosion if somebody has a key called "values".
2022-10-03 13:31:01 -04:00
Nick Mathewson
9c08fdb865
n_key_set: Add support for generic lifetimes.
...
It doesn't work for const generics yet, since they can't be repeated
in quite the same way.
2022-10-03 13:31:01 -04:00
Nick Mathewson
48a15d5627
Tweaks and improvements in documentation.
...
Most of these were suggested by Ian
2022-10-03 13:31:01 -04:00
Nick Mathewson
4724639d7c
Require slab 0.4.4
...
The `try_remove()` method, which we need, was introduced there.
2022-10-03 13:31:01 -04:00
Nick Mathewson
59f1f7c11d
Repair rustdoc.
...
The previous indentation was making it think that we had rust code
where none existed.
2022-10-03 13:31:01 -04:00
Nick Mathewson
9fd072a4d4
n_key_set: Add a function to check invariant violations
...
Also, document another invariant.
2022-10-03 13:31:01 -04:00
Nick Mathewson
0dc1573268
n_key_set: Use remove_by_foo to implement insert.
2022-10-03 13:31:01 -04:00
Nick Mathewson
e06ae79009
n_key_set: Panic on more invariant and constraint violations.
2022-10-03 13:31:01 -04:00
Nick Mathewson
43fd594819
n_key_set: Remove by_$key_mut.
...
This can't be used in a consistency-preserving way.
2022-10-03 13:31:01 -04:00
Nick Mathewson
7043df0241
n_key_set: Add flags to keys rather than inferring from Option<T>
...
Using Option<T> as an alias for T was too clever indeed, and it
meant that our HashMaps were declared with the wrong types.
Putting flags here instead gives us an extension point that we can
use in the future.
2022-10-03 13:31:01 -04:00
Nick Mathewson
f0d74db38e
n_key_set: Use to_owned to permit &str accessors.
2022-10-03 13:31:01 -04:00