| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
| |
| |
| |
| |
| |
| |
| | |
Since these shell-variables are hardwired to use org.torproject.Arti as
the program name, it isn't appropriate to call them "app-specific".
If we someday reinstate APP_FOO, it should be based on a user-provided
application name.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
In order to handle explicitly specified path buffers directly, we now
let CfgPath be either a string (that gets expanded) or a PathBuf
(that doesn't).
This simplifies TorClientConfig::with_directories()
|
| | |
| |
| |
| | |
This will make it more convenient to reconfigure things.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Now every section that the two configuration objects share has the
same type and name. This should help us in documenting our configuration
in a way that doesn't confuse people.
There is still lots of API work to go.
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
This commit message totally gives away the cursed way in which I use
git. branches? what are those?
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This implements a basic typed event broadcast mechanism, as described in
arti#230: consumers of the new `tor-events` crate can emit `TorEvent`
events, which others can consume via the `TorEventReceiver`.
Under the hood, the crate uses the `async-broadcast`
(https://github.com/smol-rs/async-broadcast) crate, and a
`futures::mpsc::UnboundedSender` for the event emitters; these are glued
together in the `EventReactor`, which must be run in a background thread
for things to work. (This is done so event sending is always cheap and
non-blocking, since `async-broadcast` senders don't have this
functionality.)
Additionally, the `TorEventKind` type is used to implement selective
event reception / emission: receivers can subscribe to certain event
types (and in fact start out receiving nothing), which filters the set
of events they receive. Having no subscribers for a given event type
means it won't even be emitted in the first place, making things more
efficient.
|
| | | | |
|
| | |/
|/| |
|
| | |
| |
| |
| |
| | |
This isn't the prettiest, but suppressing the warning does make
the example warning free.
|
| | |
| |
| |
| | |
Chutney needs this, to avoid putting every relay in the same family.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
Now there are no options that aren't in a toml section.
|
| | |
| |
| |
| |
| | |
This is more accurate, since it describes the details of the tor
network that we're connecting to.
|
| | | |
|
| | |
| |
| |
| | |
Also use the path_rules name consistently throughout the code.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
To do this at all neatly, I had to split out `tor-config` from
`arti-config` again, and putting the lower level stuff (paths,
builder errors) into tor-config. I also changed our use of
derive_builder to always use a common error type, to avoid
error type proliferation.
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `bad_extend_*` failures were caused by bad test code in
`bad_extend_test_impl` that used `futures::join!`; this meant that the
reactor could receive the `Extended2` cell before it actually got the
`ExtendNtor` request, which caused it to get (quite rightly) confused
and close the circuit. Spawning a background thread which has a short
delay before sending the `Extended2` cell seems to have alleviated this
problem.
`new_circ_create_failure` is similar; I think the reactor was getting
dropped before it had a chance to flush out its `CreateFast` cell
properly, because it had already gotten the result back (since the test
code sends it indiscriminately). This was "fixed" in much the same
manner as the other test: making it wait a bit before sending the result
cell back.
There seem to be other tests that use `futures::join!` (like
`begindir`?), and use similarly erroneous patterns; I haven't gotten any
to fail reliably enough to be able to debug them, though.
|
| |\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | | |
use 3des instead of rc2 in .pfx test fixture
Closes #239
See merge request tpo/core/arti!133
|
| |/ / |
|
| |\ \ |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
I'm about to make tor-config a higher-level module, so it can't be a
dependency for tor-config.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Closes #226.
|
| |\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Put most non-universally-needed functionality behind features
Closes #125
See merge request tpo/core/arti!129
|
| | | | |
| | | |
| | | |
| | | | |
Part of #125
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
(We keep routerdescs in the schema, since we don't want _that_ to
fragment.)
Part of #125.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Clients never need these.
Part of #125.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Nothing in arti currently uses this document type. Eventually it
will be useful for relays and for bridge clients.
I've left the "SHA1 digest of a router descriptor" type available
unconditinoally, however, since it does get used in a few places.
Part of #125.
|
| | | | |
| | | |
| | | |
| | | | |
(Found while looking for unused features for #125)
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We don't currently need a couple of the key manipulation features
that we have, since we aren't yet doing relays or onion service
clients.
Part of #125
|
| |\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Use tor_rtcompat::test_with_all_runtimes!() in place of #[tokio::test]
Closes #222
See merge request tpo/core/arti!130
|
| | | | | |
| | | | |
| | | | |
| | | | | |
Closes #222.
|
| |/ / / /
| | | |
| | | |
| | | | |
Thanks to eta's refactoring, these tests no longer need to be async.
|
| | |/ /
|/| |
| | |
| | |
| | |
| | | |
This is a security fix for a panic.
Closes #236
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
The clippy code for warning about these on nightly CI can't tell the
difference between cfg(test) and no cfg(test).
|
| | | |
| | |
| | |
| | | |
The `circid` field in `ClientCirc` is now testing-only.
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This field isn't used in modern Tor, and has never been used in
Arti. If tor!489 is merged, then it will no longer contain a useful
value in future consensuses. We shouldn't store it, or else
somebody else will get the smart idea of using it for something.
This commit breaks API compatibility for tor-netdoc with the
`build_docs` feature enabled. I haven't entered that into the
semver_status.md file, since we already have a pending tor-netdoc
API breaker in !129.
|
| |\ \
| |/
|/| |
|
| | |
| |
| |
| |
| |
| |
| | |
testing was done on a different target than building, so everything was
compiled twice (actually, it's the same target, but rust doesn't realize
that)
makes build+test about 20% faster
|
| | | |
|
| |\ \
| |/
|/|
| |
| | |
Completely overhaul the tor-proto circuit reactor
See merge request tpo/core/arti!126
|