aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-circmgr
Commit message (Collapse)AuthorAgeFilesLines
...
* | Implement the "request_loyalty" configuration optionNick Mathewson2021-10-191-2/+1
| |
* | Fix most warnings from nightly.Nick Mathewson2021-10-191-14/+3
| | | | | | | | (One represents code that I forgot to write.)
* | tor-client: refactor TorClient::bootstrap's args into a config objecteta2021-10-191-1/+1
|/ | | | | | | | | | | | | The three arguments TorClient::bootstrap requires by way of configuration have been factored into a new TorClientConfig object. This object gains two associated functions: one which uses `tor_config`'s `CfgPath` machinery to generate sane defaults for the state and cache directories, and one that accepts said directories in order to create a config object with those inserted. (this commit was inspired by trying to use arti as a library and being somewhat overwhelmed by the amount of config stuff there was to do :p)
* Use better reporting for guard status.Nick Mathewson2021-10-133-22/+119
| | | | | | | | | | | | | The previous code would report all failures to build a circuit as failures of the guard. But of course that's not right: If we fail to extend to the second or third hop, that might or might not be the guard's fault. Now we use the "pending status" feature of the GuardMonitor type so that an early failure is attributed to the guard, but a later failure is attributed as "Indeterminate". Only a complete circuit is called a success. We use a new "GuardStatusHandle" type here so that we can report the status early if there is a timeout.
* Implement guards for multihop paths.Nick Mathewson2021-10-133-26/+87
| | | | There are some limitations here, as noted in the comments.
* Actually select guards for directory circuits.Nick Mathewson2021-10-133-12/+25
|
* Pass the guard manager down to the path selection functions.Nick Mathewson2021-10-115-14/+37
|
* WIPNick Mathewson2021-10-114-13/+19
|
* Integrate GuardUsability and GuardMonitor into CircuitBuilder.Nick Mathewson2021-10-103-11/+73
| | | | | | (When we're building a path with a guard, we need to tell the guard manager whether the path succeeded, and we need to wait to hear whether the guard is usable.)
* Notify guard manager on network change and state flush.Nick Mathewson2021-10-102-2/+20
|
* Add a GuardMgr member to CircuitBuilderNick Mathewson2021-10-104-3/+20
|
* Re-export configuration types from tor-client.Nick Mathewson2021-10-092-0/+9
|
* enable checked_conversions lint.Nick Mathewson2021-10-092-4/+11
|
* Initial backend implementation for guard node manager.Nick Mathewson2021-10-072-1/+2
| | | | | | | There are some missing parts here (like persistence and tests) and some incorrect parts (I am 90% sure that the "exploratory circuit" flag is bogus). Also it is not integrated with the circuit manager code.
* Use StorageHandle in tor_circmgr.Nick Mathewson2021-09-303-70/+15
|
* Do not use set_ prefix on derive_builder settersJani Monoses2021-09-162-5/+5
|
* fix/silence clippy lints in test modulesDaniel Eades2021-09-089-12/+22
|
* More tests in pareto.rsNick Mathewson2021-09-081-9/+47
|
* Use same defaults for abandon and close times in timeout code.Nick Mathewson2021-09-071-6/+4
| | | | | | | | | | | On torspec!40, Mike says: I don't think there is a practical difference here. As per Section 2.4.5, if 60 seconds is not enough and causes the liveness test to fail due to too many timeouts, we will double the initial timeout. This makes our behavior the same as C tor.
* Stop making abandoned/successful circuit counts persistentNick Mathewson2021-09-071-22/+1
| | | | | | | | | | | | | | The C Tor implementation doesn't do this, and Mike says: I think it is a reasonable enough assumption that if Tor has restarted, this kind data is no longer fresh enough to be accurate for this purpose. This is also only 20 circuits here, and typical timeouts are now around 1-2 seconds or less.. So a restarted client with a timeout that is too low for a new internet connection will figure this out pretty quickly. I think that is OK. (from torspec!40)
* A little more test coverage in tor-circmgr::mgrNick Mathewson2021-09-072-6/+36
|
* tor_circmgr::mgr -- refactor some duplicate code.Nick Mathewson2021-09-071-20/+32
|
* Rename pick_action to clarify that it can modify selfNick Mathewson2021-09-071-5/+5
|
* Move all crates into a `crates` subdirectory.Nick Mathewson2021-08-2716-0/+5461
This will cause some pain for now, but now is really the best time to do this kind of thing.