summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | proxy: introduce new functions to write_all & flush/closeMuhammad Falak R Wani2021-12-151-42/+42
| | |/ / / | |/| | | | | | | | | | | | | Signed-off-by: Muhammad Falak R Wani <[email protected]>
* | | | | Merge branch 'PendingRequest_remove_started_at' into 'main'eta2021-12-152-12/+2
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | Remove unused started_at in PendingRequest See merge request tpo/core/arti!196
| * | | | Remove unused started_at PendingRequestNeel Chauhan2021-12-142-12/+2
| | | | |
* | | | | tor-chanmgr: Fix happy eyeballs comment grammar in builder.rsNeel Chauhan2021-12-141-3/+3
|/ / / /
* | / / Actually decrement the stream-level SENDME windoweta2021-12-143-0/+35
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arti!126 overhauled the `tor-proto` circuit reactor, but left out one very important thing: actually decrementing the SENDME window for streams (not circuits) when we send cells along them. Since the circuit-level SENDME window would often prevent us from running into a problem, this wasn't caught until my benchmarking efforts noticed it (in the form of Tor nodes aborting the circuit for a protocol violation). fixes arti#260
* | | Merge remote-tracking branch 'origin/mr/189'Nick Mathewson2021-12-141-1/+14
|\ \ \
| * | | proxy: send SOCKS5 reply on failure casesMuhammad Falak R Wani2021-12-111-1/+14
| | | | | | | | | | | | | | | | Signed-off-by: Muhammad Falak R Wani <[email protected]>
* | | | Merge remote-tracking branch 'origin/mr/186'Nick Mathewson2021-12-142-5/+3
|\ \ \ \
| * | | | address lint warningsDaniel Eades2021-12-091-1/+1
| | | | |
| * | | | address lint warningsDaniel Eades2021-12-091-4/+2
| |/ / /
* | / / s/hidden/onion/g in code commentsNeel Chauhan2021-12-132-2/+2
| |/ / |/| |
* | | Merge branch 'reconfigure' into 'main'eta2021-12-1320-119/+689
|\ \ \ | | | | | | | | | | | | | | | | Make most arti-client fields reconfigurable. See merge request tpo/core/arti!181
| * | | Fix Rustdoc errors.Nick Mathewson2021-12-082-4/+4
| | | |
| * | | Test FsStateMgr::path(), and fix a bug in it.Nick Mathewson2021-12-071-1/+8
| | | | | | | | | | | | | | | | | | | | We join "state" to the directory name, so we must call parent() to get the original.
| * | | Add a few tests to tor-config.Nick Mathewson2021-12-074-4/+71
| | | |
| * | | Make override_net_params take effect sooner.Nick Mathewson2021-12-073-4/+37
| | | | | | | | | | | | | | | | | | | | This is still not as soon as I'd like: a real change here will require refactoring DirMgr::notify().
| * | | Oops: MutCfg shouldn't implement Clone.Nick Mathewson2021-12-072-12/+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.
| * | | 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 much of DirMgrConfig reconfigurable.Nick Mathewson2021-12-074-38/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't change the authorities while in-flight: that would be pretty miserable to implement. Similarly we can't change the cache while in-flight. Everything else should be fair game, though there are a couple of tricky bits. I've tried to document those.
| * | | Make TorClient reconfigurable.Nick Mathewson2021-12-072-15/+29
| | | | | | | | | | | | | | | | This covers ClientAddrConfig and ClientTimeoutConfig.
| * | | Minor circuit predictor tweaks and comments.Nick Mathewson2021-12-071-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | Most notably, make min_exit_circs_for_port actually get used. Also add a couple of comments.
| * | | Make preemptive circuits reconfigurable.Nick Mathewson2021-12-073-43/+79
| | | | | | | | | | | | | | | | | | | | | | | | This required re-centralizing the configuration object for preemptive circuits, since previously the settings from it were a bit spread out over the crate.
| * | | MutCfg: Add map_and_replace.Nick Mathewson2021-12-071-0/+10
| | | | | | | | | | | | | | | | | | | | This will help in the case when a configuration can only partially change.
| * | | Make circuit_timing reconfigurable.Nick Mathewson2021-12-073-18/+26
| | | |
| * | | Add new configuration objects to reconfigure.Nick Mathewson2021-12-072-5/+13
| | | | | | | | | | | | | | | | | | | | (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-077-20/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. ;)
| * | | MutCfg facility to help with reconfiguration.Nick Mathewson2021-12-072-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's useful to keep configuration objects inside a RwLock<Arc<>>, so we can have slightly-stale pointers to the existing configuration structure without holding locks too long. This code adds a MutCfg type with basic support for this pattern, and functions to make it a bit more ergonomic.
| * | | Sketch API for reconfiguration.Nick Mathewson2021-12-0711-16/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Don't create circuits if the consensus is stale by over 72 hoursNeel Chauhan2021-12-122-0/+11
| |/ / |/| |
* | | address lint warningsDaniel Eades2021-12-091-8/+8
| | | | | | | | | | | | | | | [Edited by nickm: This applies one of Daniel's fixes in place of one of Trinity's: Trinity says it's a bit cleaner, and I agree.]
* | | drop arcs before awaitingTrinity Pointard2021-12-091-0/+1
| | |
* | | fix nightly clippy errorsTrinity Pointard2021-12-098-32/+19
| | |
* | | update rusqlite and revert minimal version changeTrinity Pointard2021-12-091-1/+1
| | |
* | | Beautify some Vec->array code in tor-proto.Nick Mathewson2021-12-081-6/+7
| | | | | | | | | | | | | | | | | | | | | [T;N] supports TryFrom<Vec<T>>, and has since Rust 1.48: we can just use that. This resolves an XXXX comment.
* | | proxy: report an error if all listeners fail.Nick Mathewson2021-12-081-1/+1
| | |
* | | Resolve XXXXs in proxy.rsNick Mathewson2021-12-081-3/+3
| | | | | | | | | | | | These issues all have tickets, so can become TODOs.
* | | Treat unrecognized SENDME versions as an error.Nick Mathewson2021-12-081-2/+1
| | | | | | | | | | | | | | | | | | We should never get one of these unless we have opted in to get it. (This behavior is the same as C tor.)
* | | tor-bytes: Enable `subtle` and `mac` features in digest.Nick Mathewson2021-12-081-1/+1
| | | | | | | | | | | | | | | These features are necessary for digest to expose its CtOutput type; without them, the tor-bytes crate doesn't build independently.
* | | Merge remote-tracking branch 'origin/mr/183'Nick Mathewson2021-12-081-9/+14
|\ \ \
| * | | Use a safer histogram rebuild algorithm.Nick Mathewson2021-12-081-9/+14
| | | | | | | | | | | | | | | | | | | | Our old algorithm could, on some inputs, exhaust RAM. That's not great, since we try to be robust againt corruption to the state file.
* | | | Merge remote-tracking branch 'origin/mr/180'Nick Mathewson2021-12-081-11/+10
|\ \ \ \
| * | | | In CryptInit, return a Result in initialize()Neel Chauhan2021-12-081-11/+10
| | |/ / | |/| |
* | | | tor-netdir: Resolve an XXXX about type uglinessNick Mathewson2021-12-083-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had no function to infallibly convert BoundedInt32<{0 or 1},H> into a u32, even though we could have. Because of that, we were treating weight_scale as an i32 when logically it's a u32 or a NonZeroU32. Moreover, it turns out we were using an incorrect minimum for the bwweightscale param, which would in theory have allowed the authorities to make us divide by zero. This patch introduces the necessary From<> implementation and uses it. It corrects the binimum bwweightscale, and prevents a division-by-zero issue in case weight_scale is zero.
* | | | Remove a XXXX comment in tor-llcrypto.Nick Mathewson2021-12-081-1/+0
| | | | | | | | | | | | | | | | | | | | This comment was about an unspecified string; the issue of specifying the string is now torspec!55.
* | | | Remove a couple of spec-related XXXXs in tor-netdir.Nick Mathewson2021-12-081-2/+0
| |/ / |/| | | | | | | | | | | I've opened torspec!54 to fill in the missing parts of the spec about these issues.
* | | Change an XXX in pareto.rs: a ticket is now open.Nick Mathewson2021-12-081-2/+3
| | |
* | | Resolve an XXXX: timeout scaling _is_ documentedNick Mathewson2021-12-081-1/+2
| | |
* | | Upgrade to digest v0.10.0Nick Mathewson2021-12-0712-44/+44
|/ / | | | | | | | | We generally try to track the latest rust-crypto traits when we can: fortunately, this upgrade didn't break much, considering.
* | Make ClientTimeoutConfig members crate-private.Nick Mathewson2021-12-071-3/+3
| | | | | | | | We shouldn't have pub members in these config objects.