summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-circmgr: Use a better key type for our circuit map.Nick Mathewson2020-12-141-70/+88
| | | | | | | | | | | | | | We now use the unique id of each non-pending circuit as its key in the map. I wish I could do this without copying, but I don't see a great way to do that while keeping the pending entries in the same map for now.
* | Remember the actual usable ports for an exit after we've built a circuitNick Mathewson2020-12-144-52/+165
| | | | | | | | | | | | | | | | Previously we'd just remember the port that we _wanted_ a circuit for, and forget all the ports that it _could_ support. This is part of a bigger circmgr revision/refactoring pass; there should be cleanups before I merge this.
* | Add a "RetryError" to capture the idea of multiple failed attempts.Nick Mathewson2020-12-125-16/+157
| | | | | | | | | | | | When we try to do something a few times and it fails each time, it can be a good idea to remember why the individual failures happened.
* | Use anyhow::Context in tor-chanmgr.Nick Mathewson2020-12-112-3/+9
| |
* | Add more anyhow Contexts in client-mainNick Mathewson2020-12-111-6/+18
| |
* | Do not keep a NetDir alive just because we have a stream.Nick Mathewson2020-12-101-1/+1
| |
* | Merge remote-tracking branch 'origin/mr/5' into mainNick Mathewson2020-12-102-9/+26
|\ \
| * | Use anyhow crate to add extra context for various dirclient errors.George Kadianakis2020-12-102-9/+26
| | |
* | | Add a couple of anyhow contexts in main.rsNick Mathewson2020-12-101-3/+9
|/ /
* | Fix some rustdoc warnings.Nick Mathewson2020-12-097-9/+11
| |
* | upgrade rusqliteNick Mathewson2020-12-082-2/+2
| |
* | upgrade to require latest anyhow.Nick Mathewson2020-12-085-5/+5
| |
* | It is an internal error if we do a TLS connection and get no cert.Nick Mathewson2020-12-081-3/+4
| |
* | Make RSAIdentity implement Copy.Nick Mathewson2020-12-084-7/+6
| |
* | Document a problem on network transitionNick Mathewson2020-12-081-0/+11
| |
* | De-parameterize ChanMgr and everything that wraps it.Nick Mathewson2020-12-089-145/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes a whole lot of our code simpler, and makes it so that CircMgr and DirMgr no longer need to have anything parameterized over transports, either. Instead of boxing Transport inside of ChanMgr, I've made a new Connection trait that goes from a ChanTarget* straight to a Channel. This lets us avoid having to box the intermediate TLS object. [*] Actually, a copy of the information from a ChanTarget. Ick, but I had to make a copy to avoid parameterizing Connecter::build_channel.
* | Tolerate attempt to write a non-UTF-8 HTTP header.Nick Mathewson2020-12-071-2/+6
| | | | | | | | previously, we would panic.
* | Use uniform weight all measured weights are zero.Nick Mathewson2020-12-071-9/+13
| |
* | Fix a logic bug in the --chutney-dir option.Nick Mathewson2020-12-071-4/+6
| | | | | | | | | | | | | | It was recording the dirport for each chutney authority as though it were an orport. That obviously won't work. Closes arti#45.
* | gitlab-ci.yml -- on rust-latest, turn all clippy warnings into errors.Nick Mathewson2020-12-071-1/+1
| |
* | Resolve a few nightly-only clippy issuesNick Mathewson2020-12-074-19/+12
| |
* | Merge branch 'moar_gitlab_ci' into mainNick Mathewson2020-12-071-4/+10
|\ \
| * | fixup! fixup! fixup! Try adding "test --all" and "fmt" and "clippy".Nick Mathewson2020-12-071-1/+1
| | |
| * | fixup! fixup! Try adding "test --all" and "fmt" and "clippy".Nick Mathewson2020-12-071-1/+1
| | |
| * | fixup! Try adding "test --all" and "fmt" and "clippy".Nick Mathewson2020-12-071-2/+2
| | |
| * | Try adding "test --all" and "fmt" and "clippy".Nick Mathewson2020-12-071-4/+10
| | |
* | | Mark some XXXX issues as XXXX-A1.Nick Mathewson2020-12-0716-41/+40
|/ /
* | Fix grammar in a log messageNick Mathewson2020-12-071-1/+1
| |
* | Add a missing documentation comment.Nick Mathewson2020-12-071-0/+1
| |
* | Add a few log messages about download timing.Nick Mathewson2020-12-072-2/+12
| |
* | Merge remote-tracking branch 'origin/mr/2' into mainNick Mathewson2020-12-071-1/+1
|\ \
| * | Fix typo in pick_path().Alexander Færøy2020-12-051-1/+1
| | | | | | | | | | | | | | | | | | This patch fixes a minor typo in the error case when looking for a middle relay for a 3-hop circuit where the error message should say "No middle relay found" and not "No exit relay found".
* | | Merge branch 'mr_4_squashed' into mainNick Mathewson2020-12-071-4/+6
|\ \ \
| * | | Let's try explicit target?Alexander Færøy2020-12-071-2/+2
| | | |
| * | | No need to install Husky hooks on CI.Alexander Færøy2020-12-071-0/+4
| | | |
| * | | No need to install libsqlite3-dev on CI servers.Alexander Færøy2020-12-061-2/+0
| | | |
* | | | Teach updater to download microdescriptors for usable directory.Nick Mathewson2020-12-073-43/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This follows a three-phase process: We are either fetching microdescriptors, waiting for the time to download the next consensus, or fetching the next consensus and making it usable. We can stop fetching microdescriptors for two reasons: by having no more mds that we need to download, or by running out of time in which the current consensus is usable.
* | | | Reuse microdescriptors from previous consensusNick Mathewson2020-12-062-11/+20
| | | | | | | | | | | | | | | | | | | | Previously, we'd re-parse them from the database every time we got a new consensus.
* | | | Refactor NetDir a little for space savings and updatingNick Mathewson2020-12-061-19/+96
|/ / / | | | | | | | | | | | | | | | | | | Rather than having the NetDir own its microdescs and consensus, give it Arc<>s for them. This way, we can do a shallow copy of a NetDir to work around mutability issues that would otherwise make it hard to add microdescs to a netdir on the fly.
* | | Also install libsqlite3-dev.Alexander Færøy2020-12-061-0/+2
| | |
* | | Add Gitlab CI support.Alexander Færøy2020-12-061-0/+17
|/ /
* | Enforce that the periods in a consensus lifetime are nonempty.Nick Mathewson2020-12-043-7/+17
| | | | | | | | | | To be valid, a lifetime must have valid_after < fresh_until < valid_until.
* | Update a few comments.Nick Mathewson2020-12-041-3/+16
| |
* | Dirmgr: Add a feature to keep the directory up-to-date.Nick Mathewson2020-12-043-30/+235
| | | | | | | | | | This required me to move the sqlite connection from a rwlock into mutex, since it isn't actually Sync.
* | authcert: move location into UncheckedAuthCert.Nick Mathewson2020-12-041-22/+39
| | | | | | | | This lets us make AuthCert Send and Sync.
* | tor-dirclient: tweak so that its future is Send.Nick Mathewson2020-12-041-2/+2
| |
* | Fix a copy-paste bug in netstatus::LifetimeNick Mathewson2020-12-041-1/+1
| |
* | rtcompat: add a function to sleep until a given wallclock timeNick Mathewson2020-12-041-1/+36
| | | | | | | | | | (We can't just subtract and sleep, since we should be at least somewhat concerned about clock jumps.)
* | Upgrade async-ioNick Mathewson2020-12-031-1/+1
| |
* | TODONick Mathewson2020-12-031-10/+11
| |