summaryrefslogtreecommitdiff
path: root/crates/arti-config/src
Commit message (Collapse)AuthorAgeFilesLines
* Make max_file_limit configurableNeel Chauhan2022-01-282-1/+24
|
* Tracing configuration for logfiles, per-target filtersNick Mathewson2022-01-103-23/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we could only configure one global tracing filter that applied to stdout and journald. There was no support for log files, either. This patch fixes both issues, by substantially revising the configuration format: There are now separate filters for each log file, for journald, and for the console log. Because we want to allow multiple logfiles, they have to go into an array in the configuration. The configuration logic has grown a bit complicated in its types, since the tracing_subscriber crate would prefer to have the complete structure of tracing Layers known statically. That's fine when you know how many you have, and which kinds there will be, but for the runtime-configuration case we need to mess around with `Box<dyn Layer ...>`. I also had to switch from tracing_subscriber's EnvFilter to its Targets filter. It seems "EnvFilter" can only be applied as a Layer in itself, and won't work as a Filter on an individual Layer. Closes #166. Closes #170.
* Expose and rename stream timeout config.Nick Mathewson2022-01-101-6/+6
| | | | | | | | | | | Previously we kept this in an ambiguously named type, `ClientTimeoutConfig`. But everything we do right now is client related! So `StreamTimeoutConfig` is a better name. Also, we'd previously neglected to expose the builder for this type from `TorClientConfigBuilder`. Now we do. Closes #281.
* extend lints to include 'clippy::all'Daniel Eades2021-12-281-0/+1
|
* Rename timeout_rules to stream_timeouts.Nick Mathewson2021-12-072-14/+18
| | | | | | | (There are other timeout rules, after all.) Also, rename stream_timeout to connect_timeout, to make it more clear when it applies.
* Merge branch 'revised_preemptive_config' into 'main'eta2021-12-072-28/+41
|\ | | | | | | | | Usability: renaming and documentation in preemptive circuit config See merge request tpo/core/arti!176
| * Clarify names and docs for predictive circuits.Nick Mathewson2021-12-072-13/+26
| | | | | | | | | | Also, use humantime_serde, rather than a number of seconds, to indicate configuration time.
| * Rename circuits_preemptive to preemptive_circuitsNick Mathewson2021-12-072-15/+15
| | | | | | | | | | | | This obeys a few conventions: * adjective before noun * config objects end with "config"
* | Merge branch 'bug252' into 'main'eta2021-12-072-2/+33
|\ \ | |/ |/| | | | | | | | | Make DNS fields in arti-client/src/client.rs configurable Closes #252 See merge request tpo/core/arti!171
| * Rename ClientDNSConfig -> ClientTimeoutConfigNeel Chauhan2021-12-072-11/+14
| |
| * Make DNS fields in arti-client/src/client.rs configurableNeel Chauhan2021-12-032-2/+30
| |
* | Merge branch 'preemptive-config' into 'main'eta2021-12-072-0/+41
|\ \ | | | | | | | | | | | | | | | | | | Allow configurability on preemptive circuits Closes #245 See merge request tpo/core/arti!164
| * | Allow configurability on preemptive circuitsNeel Chauhan2021-12-072-0/+41
| |/
* / Resolve roughly half of the XXXXs.Nick Mathewson2021-12-061-1/+3
|/ | | | | | | | We want to only use TODO in the codebase for non-blockers, and open tickets for anything that is a bigger blocker than a TODO. These XXXXs seem like definite non-blockers to me. Part of arti#231.
* Idle hacking to get 90% coverage in arti-configNick Mathewson2021-12-021-0/+18
| | | | | This is just a matter of writing a few tests for some very easy functions.
* Change sane_defaults() and with_directories()Nick Mathewson2021-11-291-1/+1
| | | | | | | | The sane_defaults() call is now the same as you get from a default builder: by convention, we just call that method Default::default(). The with_directories() constructor makes more sense as a constructor for the TorClientConfigBuilder than for TorClientConfig.
* Merge branch 'config-updates-and-tests'Nick Mathewson2021-11-292-16/+270
|\
| * Document StorageConfig defaults better.Nick Mathewson2021-11-291-8/+11
| | | | | | | | (Also fix a couple of typos)
| * Add basic tests for high-level buildersNick Mathewson2021-11-251-0/+57
| | | | | | | | | | Make sure that we can change elements, and we can reconstruct builders that give us the same thing.
| * Implement builder patterns for ArtiConfig.Nick Mathewson2021-11-252-6/+181
| | | | | | | | | | | | | | | | This commit implements the "metabuilder" pattern and the "builder reconstruction" pattern for the ArtiConfig type. I'm not 100% that this will be necessary, but it will certainly help with testing.
| * Impl and test Default for high-level configsNick Mathewson2021-11-251-3/+22
| |
* | add semicolons if nothing returnedDaniel Eades2021-11-251-0/+1
| |
* | deglob some enums, use concise iteration syntaxDaniel Eades2021-11-251-1/+1
|/
* Resolve a pair of rustdoc warnings.Nick Mathewson2021-11-241-1/+3
|
* Implement meta-builder pattern for TorClientConfigNick Mathewson2021-11-221-10/+27
| | | | | This should be ergonomic than having to construct every section of the configuration separately.
* Make every Config type implement Eq.Nick Mathewson2021-11-211-3/+3
| | | | | Doing this is necessary for reconfiguration support, and will help a lot with testing, too.
* For every* config type, make defaults consistent.Nick Mathewson2021-11-211-0/+17
| | | | | | | | | | This patch makes sure that for every* config type we have, the defaults you get from a Builder match those you get from Serde, and that both match the value that you get from arti_defaults.toml. Later down the line I'll be adding some tests to keep these in sync. * StorageConfig still has no defaults of its own, since we aren't so sure we want other applications to use Arti's directories by default.
* Rename .gitignore APP_FOO to ARTI_FOO.Nick Mathewson2021-11-212-5/+5
| | | | | | | | 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 every ConfigBuilder a From<Config> implementation.Nick Mathewson2021-11-211-0/+18
| | | | This will make it more convenient to reconfigure things.
* Ensure that every section-level config type has a builder() function.Nick Mathewson2021-11-211-2/+17
|
* Make arti-client config object match arti config better.Nick Mathewson2021-11-211-34/+8
| | | | | | | | 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-212-37/+3
|
* Use named fields for the elements of ConfigBuildErrorNick Mathewson2021-11-181-2/+8
|
* Rename RetryConfig to DownloadSchedule, fold in parallelism.Nick Mathewson2021-11-181-6/+4
|
* Move the socks_port option into a new proxy section.Nick Mathewson2021-11-183-8/+25
| | | | 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-182-3/+4
| | | | Also use the path_rules name consistently throughout the code.
* Fold "circuit_timing" and "request_timing" into a single section.Nick Mathewson2021-11-182-9/+3
|
* Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-184-0/+640
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.