aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client/src/config.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix rustdoc errors.Nick Mathewson2022-03-011-8/+9
|
* Run rustfmt.Nick Mathewson2022-03-011-1/+0
|
* arti-client: Add stability warning to config moduleIan Jackson2022-03-011-0/+9
|
* Add warnings about configuration stability.Nick Mathewson2022-02-281-2/+8
|
* Expose Reconfigure enum from arti-client.Nick Mathewson2022-02-011-1/+1
| | | | | This enum is required to use `TorClient::reconfigure` correctly, and as such ought to be re-exported.
* Make max_file_limit configurableNeel Chauhan2022-01-281-0/+56
|
* Put our cache files in the right place.Nick Mathewson2022-01-181-1/+1
| | | | | | | This resolves a copy-and-paste error where we were putting everything in our state directory. Closes #297.
* Improve the layout of crate exports; add runtime convenience functionseta2022-01-111-3/+1
| | | | | | | | | | | | | | | | | | | | This commit addresses multiple problems highlighted by arti#182: - `arti-client` had some types in its public API that weren't accessible without importing another crate (`CfgPath`, `DataReader`, `DataWriter`). This has been fixed. - In addition, the doc comments for `DataReader` and `DataWriter` were cleaned up to be of better quality, now that they're public. - It was impossible to use `arti-client` without also importing `tor-rtcompat`. This is now fixed by the addition of two convenience methods: `TorClient::bootstrap_with_tokio` and `TorClient::bootstrap_with_async_std`. - Potentially controversially: `tor-rtcompat` now returns *concrete* types from methods like `current_runtime`, instead of `impl Runtime`. - This was needed in order to actually be able to name the `TorClient` type that results from using these methods. - This does mean we lose API flexibility, but on balance I think this is a good thing, because the API we *do* have is actually usable...
* 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.