aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client/src
Commit message (Collapse)AuthorAgeFilesLines
...
| * Add new configuration objects to reconfigure.Nick Mathewson2021-12-071-0/+4
| | | | | | | | | | (These weren't in the codebase when I started the first version of this branch.)
| * Allow on-the-fly changing of path_rulesNick Mathewson2021-12-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | And now the complexity begins: when the user changes the path_rules, they not only want new circuits to obey those rules: they want _all new requests_ to be put onto circuits that obey those rules. That means that when the path rules become more restrictive, we need to retire all the circuits, and make sure that currently pending circuits aren't used for any requests. If it's any comfort, doing this was even more complicated in C tor. ;)
| * Sketch API for reconfiguration.Nick Mathewson2021-12-072-4/+58
| | | | | | | | | | | | | | This patch doesn't actually make anything reconfigurable, but it does create an API that will tell you "you can't change the value of that!" If the API looks reasonable, I can start making it possible to change the values of individual items.
* | drop arcs before awaitingTrinity Pointard2021-12-091-0/+1
| |
* | fix nightly clippy errorsTrinity Pointard2021-12-091-15/+10
|/
* 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-072-17/+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-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-072-13/+89
|\ \ | |/ |/| | | | | | | | | 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-26/+29
| |
| * Improve ClientDNSConfig field commentsNeel Chauhan2021-12-031-3/+5
| |
| * Make DNS fields in arti-client/src/client.rs configurableNeel Chauhan2021-12-032-13/+84
| |
* | Merge branch 'preemptive-config' into 'main'eta2021-12-071-2/+21
|\ \ | | | | | | | | | | | | | | | | | | Allow configurability on preemptive circuits Closes #245 See merge request tpo/core/arti!164
| * | Allow configurability on preemptive circuitsNeel Chauhan2021-12-071-2/+21
| |/
* / Resolve roughly half of the XXXXs.Nick Mathewson2021-12-061-1/+1
|/ | | | | | | | 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.
* Add constructor for TorAddr, to enforce port != 0Nick Mathewson2021-11-301-24/+30
| | | | This makes sure that we're checking for a nonzero port in all cases.
* Merge remote-tracking branch 'origin/mr/156'Nick Mathewson2021-11-301-2/+5
|\
| * arti-client: Reject Port 0 when parsing address:port combosNeel Chauhan2021-11-291-2/+5
| |
* | Merge remote-tracking branch 'origin/mr/154'Nick Mathewson2021-11-301-1/+31
|\ \
| * | Actually build preemptive circuits (and minor fixes)eta2021-11-291-1/+31
| | | | | | | | | | | | | | | | | | The new CircMgr::build_circuits_preemptively function actually causes preemptive circuits to be built; it gets called from arti-client, like the other daemon tasks the CircMgr has.
* | | 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-292-33/+28
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | add semicolons if nothing returnedDaniel Eades2021-11-252-2/+3
| | |
* | | 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-242-4/+4
| |
* | Fix a few typos.Nick Mathewson2021-11-242-2/+2
|/ | | | 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-213-51/+86
| | | | | | | | 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.
* Typo fix from reddit thread.Nick Mathewson2021-11-171-1/+1
|
* 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.
* Fix typosDimitris Apostolou2021-11-121-1/+1
|