summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * Rename .gitignore APP_FOO to ARTI_FOO.Nick Mathewson2021-11-214-18/+18
| | | | | | | | | | | | | | | | 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.
| * Give CfgPath an alternative inner representation.Nick Mathewson2021-11-212-36/+43
| | | | | | | | | | | | | | | | 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()
| * Give every ConfigBuilder a From<Config> implementation.Nick Mathewson2021-11-214-6/+81
| | | | | | | | This will make it more convenient to reconfigure things.
| * Ensure that every section-level config type has a builder() function.Nick Mathewson2021-11-215-2/+44
| |
| * Make arti-client config object match arti config better.Nick Mathewson2021-11-215-85/+107
| | | | | | | | | | | | | | | | 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.
| * Lower StorageConfig to arti-client crateNick Mathewson2021-11-213-40/+42
| |
* | Merge commit '98f38dc' (arti!131) into HEADeta2021-11-226-0/+456
|\ \ | | | | | | | | | | | | This commit message totally gives away the cursed way in which I use git. branches? what are those?
| * | Initial cut at a typed event framework for arti (arti#230).eta2021-11-226-0/+456
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Use consistent name for ns_consensus feature.Nick Mathewson2021-11-211-6/+6
| | |
* | | Update to latest fuzzing corporaNick Mathewson2021-11-211-0/+0
| |/ |/|
* | Allow type-complexity in hyper.rs exampleNick Mathewson2021-11-211-0/+1
| | | | | | | | | | This isn't the prettiest, but suppressing the warning does make the example warning free.
* | Document (and allow) behavior for weird values of subnet masks.Nick Mathewson2021-11-181-2/+10
| | | | | | | | Chutney needs this, to avoid putting every relay in the same family.
* | Use named fields for the elements of ConfigBuildErrorNick Mathewson2021-11-184-23/+49
| |
* | Rename RetryConfig to DownloadSchedule, fold in parallelism.Nick Mathewson2021-11-186-85/+87
| |
* | Move the socks_port option into a new proxy section.Nick Mathewson2021-11-184-9/+29
| | | | | | | | Now there are no options that aren't in a toml section.
* | Rename the "network" configuration section to "tor_network".Nick Mathewson2021-11-181-2/+2
| | | | | | | | | | This is more accurate, since it describes the details of the tor network that we're connecting to.
* | Rename addr_config to address_filter; clarify its usage.Nick Mathewson2021-11-182-5/+6
| |
* | Flatten enforce_distance into path_rules.Nick Mathewson2021-11-186-24/+71
| | | | | | | | Also use the path_rules name consistently throughout the code.
* | Fold "circuit_timing" and "request_timing" into a single section.Nick Mathewson2021-11-186-86/+33
| |
* | Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-1826-306/+537
| | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'origin/mr/134'Nick Mathewson2021-11-182-22/+28
|\ \
| * | Make unreliable tor-proto tests more reliable (arti#238).eta2021-11-182-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge branch 'update-pfx' into 'main'eta2021-11-182-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | use 3des instead of rc2 in .pfx test fixture Closes #239 See merge request tpo/core/arti!133
| * | use 3des instead of rc2 in .pfx test fixtureTrinity Pointard2021-11-182-1/+1
|/ /
* | Merge remote-tracking branch 'origin/mr/131'Nick Mathewson2021-11-171-44/+44
|\ \
| * | update dependenciesTrinity Pointard2021-11-171-46/+46
| | |
* | | Typo fix from reddit thread.Nick Mathewson2021-11-171-1/+1
| | |
* | | Remove dependency from arti-client to tor-config.Nick Mathewson2021-11-164-10/+16
| | | | | | | | | | | | | | | I'm about to make tor-config a higher-level module, so it can't be a dependency for tor-config.
* | | Remove unused "dirs" dependency from tor-persist.Nick Mathewson2021-11-162-2/+0
| | |
* | | Always use optimistic data for begindir connections.Nick Mathewson2021-11-161-1/+5
| | | | | | | | | | | | Closes #226.
* | | Merge branch 'ticket125' into 'main'eta2021-11-1626-172/+349
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Put most non-universally-needed functionality behind features Closes #125 See merge request tpo/core/arti!129
| * | | tor-dirclient: Put routerdesc download behind a feature.Nick Mathewson2021-11-125-4/+25
| | | | | | | | | | | | | | | | Part of #125
| * | | tor-dirmgr: put routerdesc storage behind a feature.Nick Mathewson2021-11-125-23/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (We keep routerdescs in the schema, since we don't want _that_ to fragment.) Part of #125.
| * | | tor-netdoc: put NS consensus documents behind a feature.Nick Mathewson2021-11-127-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | Clients never need these. Part of #125.
| * | | tor-netdoc: Split the two kinds of routerstatus into their own modulesNick Mathewson2021-11-123-128/+164
| | | |
| * | | tor-netdoc: Put the "routerdesc" document type behind a feature.Nick Mathewson2021-11-129-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Remove unused tor-consdiff/src/cmd.rs file.Nick Mathewson2021-11-121-8/+0
| | | | | | | | | | | | | | | | (Found while looking for unused features for #125)
| * | | tor-llcrypto: Put currently unused functions behind features.Nick Mathewson2021-11-125-9/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | Merge branch 'issue_222' into 'main'eta2021-11-169-730/+804
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use tor_rtcompat::test_with_all_runtimes!() in place of #[tokio::test] Closes #222 See merge request tpo/core/arti!130
| * | | | tor-proto: Use tor-rtcompat macros for testing, not tokio.Nick Mathewson2021-11-157-712/+790
| | | | | | | | | | | | | | | | | | | | Closes #222.
| * | | | tor-proto: Stop using async_test in halfstream.rs and sendme.rsNick Mathewson2021-11-152-18/+14
|/ / / / | | | | | | | | | | | | Thanks to eta's refactoring, these tests no longer need to be async.
* | / / Update to simple_asn1 0.6.1.Nick Mathewson2021-11-142-3/+3
| |/ / |/| | | | | | | | | | | | | | This is a security fix for a panic. Closes #236
* | | A few more eprintln!() removals that I missed.Nick Mathewson2021-11-131-4/+0
| | |
* | | Replace or remove testing eprintln!()s.Nick Mathewson2021-11-131-3/+4
| | | | | | | | | | | | | | | The clippy code for warning about these on nightly CI can't tell the difference between cfg(test) and no cfg(test).
* | | Resolve a dead-code warning on nightly.Nick Mathewson2021-11-131-0/+2
| | | | | | | | | | | | The `circid` field in `ClientCirc` is now testing-only.
* | | Remove the unused `published` field from GenericRouterStatus.Nick Mathewson2021-11-123-23/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge remote-tracking branch 'origin/mr/128'Nick Mathewson2021-11-121-4/+8
|\ \ | |/ |/|
| * normalize --target to better reuse build artifactsTrinity Pointard2021-11-121-3/+3
| | | | | | | | | | | | | | 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
| * try to cache cargo-auditTrinity Pointard2021-11-121-1/+5
| |
* | Merge branch 'proto-circuit-refactor' into 'main'eta2021-11-1216-1378/+1553
|\ \ | |/ |/| | | | | Completely overhaul the tor-proto circuit reactor See merge request tpo/core/arti!126