| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Fix an actual off-by-one error! | Nick Mathewson | 2021-07-19 | 1 | -1/+1 | |
| | | | | | This was in deciding when to report a circuit as completed. | |||||
| * | Try refactoring build.rs for testability. | Nick Mathewson | 2021-07-19 | 5 | -59/+175 | |
| | | | | | | | | I'm adding a local "Buildable" trait here so I can swap out Circuits for something else. This also lets me refactor Builder<> to be parameterized on TimeoutEstimator again, and lets us get rid of the first_hop() accessor on paths. | |||||
| * | Add a test for double_timeout. | Nick Mathewson | 2021-07-19 | 1 | -0/+95 | |
| | | | | | | | There is something wrong here, though. I had to rewrite wait_for() a lot back in the main branch to get this test working right. See arti#149 for details on that issue. | |||||
| * | tor-circbuild: use SleepProvider::now() instead of Instant::now() | Nick Mathewson | 2021-07-19 | 1 | -5/+5 | |
| | | | | | This should make time mockable for testing purposes. | |||||
| * | Add the ability to reconfigure a running ParetoEstimator | Nick Mathewson | 2021-07-19 | 4 | -2/+22 | |
| | | ||||||
| * | Monomorphize: just use the pareto timeout implementation. | Nick Mathewson | 2021-07-19 | 1 | -3/+2 | |
| | | ||||||
| * | Allow the pareto estimator to be disabled. | Nick Mathewson | 2021-07-19 | 1 | -2/+15 | |
| | | ||||||
| * | Connect the timeout estimator code to our circuit builder. | Nick Mathewson | 2021-07-19 | 5 | -32/+134 | |
| | | | | | | This currently leaves a bit to be desired, since the logic is kind of gnarly. I'm not sure I want to be using so many Arc<>s. | |||||
| * | Implement a circuit timeout estimator backend. | Nick Mathewson | 2021-07-19 | 4 | -1/+1001 | |
| | | | | | | | | | | | | This backend uses the kludged-up^W heuristic-enhanced Pareto estimator from path-spec.txt section 2.4. See path-spec.txt for full details on the algorithm. I've tried to note with TODO-SPEC comments all the things that the spec currently leaves out. Nothing actually uses this code yet. By the time it's in use, I'd expect that many of these functions will need to have new visibilities. | |||||
| * | Merge remote-tracking branch 'origin/mr/38' | Nick Mathewson | 2021-07-15 | 2 | -21/+224 | |
| |\ | ||||||
| | * | remove now invalid doc-comment | Trinity Pointard | 2021-07-15 | 1 | -2/+0 | |
| | | | ||||||
| | * | make isolation_group optional in SupportedCircUsage | Trinity Pointard | 2021-07-14 | 1 | -13/+122 | |
| | | | ||||||
| | * | move IsolationToken to circmgr | Trinity Pointard | 2021-07-14 | 3 | -4/+28 | |
| | | | | | | | | | | | document the behavior of IsolationToken::default remove From and Into impls between IsolationToken and u64 | |||||
| | * | fix clippy lints | Trinity Pointard | 2021-07-13 | 1 | -0/+4 | |
| | | | ||||||
| | * | implement stream isolation | Trinity Pointard | 2021-07-13 | 3 | -14/+82 | |
| | | | ||||||
| * | | Move wait_for into MockSleepProvider. | Nick Mathewson | 2021-07-15 | 1 | -82/+41 | |
| | | | | | | | | | | | This function is generally useful for testing functions where we want time to advance bit by bit. | |||||
| * | | make ipv[46]_policy take into account BadExit | Trinity Pointard | 2021-07-10 | 1 | -2/+2 | |
| |/ | | | | they now report an empty policy for BadExit relays | |||||
| * | Move responsibility for circuit construction into CircuitBuilder. | Nick Mathewson | 2021-07-08 | 6 | -121/+121 | |
| | | | | | | | | | | Previously this was done in functions associated with Path and OwnedPath, but this caused their method signatures to get more and more complicated. This change will also allow us to make timeout handling part of the circuit-building process. | |||||
| * | Allow tor-rtcompat to build with no runtimes. | Nick Mathewson | 2021-07-01 | 2 | -10/+11 | |
| | | | | | | | | | | | | | Thanks to cargo's version-2 feature resolver, we can require a runtime for tests only. I'm also making it so that the functions that create or fetch Runtimes only exist when one of the runtime features is enabled. For now that seems like a better solution than having those functions exist but panic. Closes #129. | |||||
| * | Merge remote-tracking branch 'origin/mr/34' | Nick Mathewson | 2021-06-27 | 1 | -0/+2 | |
| |\ | ||||||
| | * | Add clippy warn needless pass by value | YUAN LYU | 2021-06-21 | 1 | -0/+1 | |
| | | | ||||||
| | * | Add clippy warn needless borrow | YUAN LYU | 2021-06-21 | 1 | -0/+1 | |
| | | | ||||||
| * | | Remove "default-features=false" thing on tor-rtcompat for now. | Nick Mathewson | 2021-06-24 | 1 | -2/+2 | |
| | | | ||||||
| * | | Bump version dependencies to 0.0.0 | Nick Mathewson | 2021-06-24 | 1 | -9/+9 | |
| | | | ||||||
| * | | Remove "publish = false" | Nick Mathewson | 2021-06-24 | 1 | -1/+0 | |
| | | | ||||||
| * | | Remove unused import. | Nick Mathewson | 2021-06-21 | 1 | -1/+0 | |
| | | | ||||||
| * | | More tests and a little code-golf for coverage on tor-circmgr | Nick Mathewson | 2021-06-20 | 4 | -14/+47 | |
| | | | ||||||
| * | | tor_circmgr: simplify build_circuit a bit. | Nick Mathewson | 2021-06-20 | 2 | -15/+10 | |
| |/ | ||||||
| * | A few tests for circparameters generation. | Nick Mathewson | 2021-06-19 | 1 | -0/+31 | |
| | | ||||||
| * | More/better tests on tor_circmgr::mgr | Nick Mathewson | 2021-06-19 | 1 | -46/+132 | |
| | | ||||||
| * | A little testing and refactgoring in tor-circmgr. | Nick Mathewson | 2021-06-19 | 3 | -25/+23 | |
| | | ||||||
| * | Misc tests in tor-proto. | Nick Mathewson | 2021-06-19 | 1 | -1/+4 | |
| | | ||||||
| * | Fix some warnings about needless & from nightly clippy | Nick Mathewson | 2021-06-18 | 3 | -5/+5 | |
| | | ||||||
| * | Run "typos" to fix a few more typos. | Nick Mathewson | 2021-06-17 | 2 | -3/+3 | |
| | | ||||||
| * | Use retry-error in tor-circmgr. | Nick Mathewson | 2021-06-17 | 2 | -19/+39 | |
| | | ||||||
| * | Remove anyhow dependency from tor-retry, and rename it to retry-error | Nick Mathewson | 2021-06-17 | 1 | -1/+1 | |
| | | | | | Now RetryError is parameterized on an underlying error type. | |||||
| * | Remove some (but not all) needless dependencies. | Nick Mathewson | 2021-06-17 | 1 | -3/+0 | |
| | | ||||||
| * | Suppress a clippy warning. | Nick Mathewson | 2021-06-17 | 1 | -0/+1 | |
| | | ||||||
| * | more improvements to circmgr tests. | Nick Mathewson | 2021-06-16 | 3 | -2/+6 | |
| | | ||||||
| * | Notes about badexit flag and opportunities for error | Nick Mathewson | 2021-06-16 | 1 | -0/+1 | |
| | | ||||||
| * | More tests on circmgr::path. | Nick Mathewson | 2021-06-16 | 3 | -1/+89 | |
| | | ||||||
| * | circmgr: tests for path/dirpath.rs | Nick Mathewson | 2021-06-16 | 1 | -0/+68 | |
| | | ||||||
| * | Tests for circmgr::usage | Nick Mathewson | 2021-06-16 | 3 | -0/+104 | |
| | | ||||||
| * | tor_circmgr: even more tests | Nick Mathewson | 2021-06-16 | 1 | -16/+95 | |
| | | ||||||
| * | More tests in tor-cirmgr::mgr | Nick Mathewson | 2021-06-16 | 2 | -4/+129 | |
| | | ||||||
| * | remove now-unused imports | Nick Mathewson | 2021-06-14 | 1 | -5/+0 | |
| | | ||||||
| * | Comment out build_path for now. | Nick Mathewson | 2021-06-14 | 1 | -0/+3 | |
| | | | | | | It just duplicates TorPath::build_circuit, which is all you actually need. | |||||
| * | Enormous tor-circmgr rewrite. | Nick Mathewson | 2021-06-14 | 10 | -432/+1659 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As with the tor-chanmgr code, the circuit manager is now implemented using an AbstractCircMgr type that uses traits to abstract the particular behavior of other types that it uses. (Specifically: circuits, building circuits, and telling whether one circuit usage is compatible with another.) Abstracting out the dependencies in this ways makes it possible to test the circuit manager without having to actually build real circuits. This commit also introduces new behavior for handling pending circuit requests. Upon getting a new request, first we check to see if there's an existing circuit we can use. If there isn't, we look for pending circuits and wait for them. If there aren't any pending circuits we can use, we launch one or more, and wait for them. So far, that's the same as the old behavior. But here's a change: if, while we are waiting for some pending circuits, a different circuit is completed, and it's one we could use, then the task that was building _that_ circuit will tell us: "please look at this circuit". This gives us better changes of getting a usable circuit fast. Minor changes: * The Error type in CircMgr no longer uses anyhow; several errors have been simplified. * We've gotten more formal about the relationship between circuit usage and target usage. | |||||
| * | Add an XXXX to path.rs | Nick Mathewson | 2021-06-04 | 1 | -0/+1 | |
| | | ||||||
| * | Missing experimental-api imports. | Nick Mathewson | 2021-06-03 | 1 | -1/+3 | |
| | | ||||||
