summaryrefslogtreecommitdiff
path: root/crates/arti-client/src/config.rs
Commit message (Collapse)AuthorAgeFilesLines
* Expose and rename stream timeout config.Nick Mathewson2022-01-101-16/+24
| | | | | | | | | | | 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.
* Improve documentation of which config can change.Nick Mathewson2021-12-071-0/+2
| | | | | It no longer makes sense to say "most things can't change", now that most things can.
* Make TorClient reconfigurable.Nick Mathewson2021-12-071-0/+8
| | | | This covers ClientAddrConfig and ClientTimeoutConfig.
* Make ClientTimeoutConfig members crate-private.Nick Mathewson2021-12-071-3/+3
| | | | We shouldn't have pub members in these config objects.
* Rename timeout_rules to stream_timeouts.Nick Mathewson2021-12-071-15/+16
| | | | | | | (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-071-13/+13
|\ | | | | | | | | Usability: renaming and documentation in preemptive circuit config See merge request tpo/core/arti!176
| * Rename circuits_preemptive to preemptive_circuitsNick Mathewson2021-12-071-13/+13
| | | | | | | | | | | | This obeys a few conventions: * adjective before noun * config objects end with "config"
* | Merge branch 'bug252' into 'main'eta2021-12-071-0/+81
|\ \ | |/ |/| | | | | | | | | Make DNS fields in arti-client/src/client.rs configurable Closes #252 See merge request tpo/core/arti!171
| * Rename ClientDNSConfig -> ClientTimeoutConfigNeel Chauhan2021-12-071-19/+22
| |
| * Improve ClientDNSConfig field commentsNeel Chauhan2021-12-031-3/+5
| |
| * Make DNS fields in arti-client/src/client.rs configurableNeel Chauhan2021-12-031-0/+76
| |
* | Allow configurability on preemptive circuitsNeel Chauhan2021-12-071-2/+21
|/
* Fix a documentation link.Nick Mathewson2021-11-301-2/+3
|
* Fix a bad rustdoc reference.Nick Mathewson2021-11-291-1/+1
|
* Change sane_defaults() and with_directories()Nick Mathewson2021-11-291-32/+27
| | | | | | | | 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-291-28/+109
|\
| * Document StorageConfig defaults better.Nick Mathewson2021-11-291-3/+17
| | | | | | | | (Also fix a couple of typos)
| * Add basic tests for high-level buildersNick Mathewson2021-11-251-3/+52
| | | | | | | | | | Make sure that we can change elements, and we can reconstruct builders that give us the same thing.
| * Impl and test Default for high-level configsNick Mathewson2021-11-251-0/+20
| |
| * Ensure that all config sections have deny_unknown_fieldsNick Mathewson2021-11-251-0/+1
| | | | | | | | | | When we deserialize a configuration, we should reject unknown variables (except when we have an explicit reason to allow them).
| * Make directory accessors crate-private.Nick Mathewson2021-11-251-4/+2
| | | | | | | | These don't need to be exposed any longer.
| * Define defaults for StorageConfigNick Mathewson2021-11-251-19/+18
| | | | | | | | | | | | | | | | I'm still not 100% sure this is the right move: should we encourage app developers to always pick their own directories? Or should we make it easy for them to use, well, `sane_defaults`? This patch takes the second approach.
* | deglob some enums, use concise iteration syntaxDaniel Eades2021-11-251-1/+1
|/
* Resolve a pair of rustdoc warnings.Nick Mathewson2021-11-241-1/+1
|
* More typo fixes that I forgot to save :(Nick Mathewson2021-11-241-2/+2
|
* Fix a few typos.Nick Mathewson2021-11-241-1/+1
| | | | Also fix some commonwealth spellings that had slipped in.
* Implement meta-builder pattern for TorClientConfigNick Mathewson2021-11-221-10/+159
| | | | | 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/+1
| | | | | | | | | | 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-211-1/+1
| | | | | | | | 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-211-12/+2
| | | | | | | | 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-211-0/+16
| | | | This will make it more convenient to reconfigure things.
* Ensure that every section-level config type has a builder() function.Nick Mathewson2021-11-211-0/+7
|
* Make arti-client config object match arti config better.Nick Mathewson2021-11-211-40/+80
| | | | | | | | 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-211-3/+39
|
* Fold "circuit_timing" and "request_timing" into a single section.Nick Mathewson2021-11-181-1/+1
|
* Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-181-1/+4
| | | | | | | | 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.
* Remove dependency from arti-client to tor-config.Nick Mathewson2021-11-161-8/+12
| | | | | I'm about to make tor-config a higher-level module, so it can't be a dependency for tor-config.
* Try writing a bit more documentation for configuration types.Nick Mathewson2021-10-281-6/+40
|
* Rename tor_client/arti_tor_client to arti_client.Nick Mathewson2021-10-211-0/+105
Solves a name conflict with the existing tor_client create. Closes #130.