aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client/src/client.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge branch 'reconfigure' into 'main'eta2021-12-131-14/+94
|\ | | | | | | | | Make most arti-client fields reconfigurable. See merge request tpo/core/arti!181
| * Oops: MutCfg shouldn't implement Clone.Nick Mathewson2021-12-071-4/+7
| | | | | | | | | | | | | | | | We don't want MutCfg to be automatially coneable, or we'll wind up with surprises like the one that this patch fixes in TorClient. (The "surprise" is that reconfigure() would only apply its client-specific options to one client instance.)
| * Sequence reconfiguration requests.Nick Mathewson2021-12-071-8/+25
| | | | | | | | | | | | If we allow overlapping reconfiguration requests, we introduce all kinds of "fun" bugs. For example, we could wind up with a configuration made up of parts of one reconfiguration attempt, and parts of another.
| * Make TorClient reconfigurable.Nick Mathewson2021-12-071-15/+21
| | | | | | | | This covers ClientAddrConfig and ClientTimeoutConfig.
| * 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-071-4/+54
| | | | | | | | | | | | | | 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
|/
* Rename timeout_rules to stream_timeouts.Nick Mathewson2021-12-071-2/+2
| | | | | | | (There are other timeout rules, after all.) Also, rename stream_timeout to connect_timeout, to make it more clear when it applies.
* Merge branch 'bug252' into 'main'eta2021-12-071-13/+8
|\ | | | | | | | | | | | | 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-7/+7
| |
| * Make DNS fields in arti-client/src/client.rs configurableNeel Chauhan2021-12-031-13/+8
| |
* | 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.
* 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.
* | add semicolons if nothing returnedDaniel Eades2021-11-251-2/+2
| |
* | Fix a few typos.Nick Mathewson2021-11-241-1/+1
|/ | | | Also fix some commonwealth spellings that had slipped in.
* Make arti-client config object match arti config better.Nick Mathewson2021-11-211-10/+5
| | | | | | | | 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.
* Typo fix from reddit thread.Nick Mathewson2021-11-171-1/+1
|
* Fix typosDimitris Apostolou2021-11-121-1/+1
|
* Merge IpVersionPreferences and the optimistic flag into one type.Nick Mathewson2021-11-101-18/+32
| | | | | It seems like a good time to do this, before we add a zillion other arguments to begin_stream.
* Implement optimistic streamYuan Lyu2021-11-091-1/+13
|
* Encourage the use of TorClient::clone().Nick Mathewson2021-10-281-1/+2
|
* TorClient::resolve_ptr should take an IpAddr.Nick Mathewson2021-10-261-3/+1
|
* Turn StreamIsolation into a separate type.Nick Mathewson2021-10-251-4/+12
| | | | | | | | | Now that we have two kinds of isolation tokens (those set on a stream, and those set by the stream's associated TorClient), we need a more sophisticated kind of isolation. This fixes the bug introduced with the previous commit, where per-stream tokens would override per-TorClient tokens.
* Add an isolate_client() function to create an isolated TorClient.Nick Mathewson2021-10-251-15/+34
| | | | | When two TorClients are isolated, their streams shouldn't share circuits, even though they share internal circuit and guard state.
* Rename tor_client/arti_tor_client to arti_client.Nick Mathewson2021-10-211-0/+464
Solves a name conflict with the existing tor_client create. Closes #130.