Commit Graph

706 Commits

Author SHA1 Message Date
Nick Mathewson cc55469307 Add a function to retire circuits. 2020-11-24 12:44:04 -05:00
Nick Mathewson b9685e4efb change default socks proxy port to 9150 2020-11-24 12:27:11 -05:00
Nick Mathewson 200a7dbd26 Drop unsupported requests (like RESOLVE) 2020-11-24 12:20:13 -05:00
Nick Mathewson ce221476d5 Fetch microdescriptors in parallel. 2020-11-24 11:59:56 -05:00
Nick Mathewson 142116c031 A little better logging on bootstrap. 2020-11-24 10:57:20 -05:00
Nick Mathewson ea27328c67 Make legacy-store code disabled by default.
In the long run we might not want it at all.
2020-11-24 10:43:16 -05:00
Nick Mathewson 2fd2c27ee5 typo fix 2020-11-24 10:42:51 -05:00
Nick Mathewson 771d49d59e Reject .onion addresses for now. 2020-11-24 10:37:04 -05:00
Nick Mathewson e3d4a6e114 Turn client-demo into a mostly-good client. 2020-11-24 10:33:38 -05:00
Nick Mathewson f9d741ab36 Add a function to load a directory from cache. 2020-11-24 09:00:45 -05:00
Nick Mathewson 9749022fa2 When a consensus has enough descriptors, mark it non-pending. 2020-11-24 07:08:41 -05:00
Nick Mathewson 7af214b594 When storing consensuses, index them by the sha3 of the whole file. 2020-11-23 11:11:17 -05:00
Nick Mathewson 525f6b2bfa Document and de-warning the rest of tor-dirmgr 2020-11-23 10:41:41 -05:00
Nick Mathewson 5f361d9529 Less copying of the authority list. 2020-11-23 09:33:43 -05:00
Nick Mathewson b4831da536 A little documentation in tor-dirmgr 2020-11-23 09:23:20 -05:00
Nick Mathewson 8a9654ee90 missing docs in tor-dirclient 2020-11-23 08:51:18 -05:00
Nick Mathewson 5d32d69011 Require (and write) docs in tor-dirclient. 2020-11-20 19:11:28 -05:00
Nick Mathewson 3d4f5f261e Require documentation in tor-rtcompat. 2020-11-20 17:24:16 -05:00
Nick Mathewson 3f89b3db7b Make "storage" module private 2020-11-20 16:29:55 -05:00
Nick Mathewson 99e0b1d9f5 Remove a couple of #[allow]s. 2020-11-20 15:30:32 -05:00
Nick Mathewson 61593e1c59 Teach DirMgr to use its own NetDir, if present, to bootstrap itself. 2020-11-20 15:11:20 -05:00
Nick Mathewson 7a78bef0d1 Add a better way to get a shared directory out of a DirMgr. 2020-11-20 15:07:38 -05:00
Nick Mathewson 48da54d8c5 Remove needless Arc<> for DirStoreHandle. And DirStoreHandle itself. 2020-11-20 14:52:59 -05:00
Nick Mathewson 999706ee8f Move a few more responsibilities into NetDirConfig.
Also start a DirMgr type.
2020-11-20 14:46:22 -05:00
Nick Mathewson 7e50c4ad3a Move storage and config logic from netdir to dirmgr. 2020-11-20 12:20:43 -05:00
Nick Mathewson 21ebb5caf3 NetDirConfig: Learn fallback directories from chutney configurations too 2020-11-20 09:48:57 -05:00
Nick Mathewson c7ee4997b5 Missing file: whoops 2020-11-20 09:18:12 -05:00
Nick Mathewson 4721e95c06 Use a builder pattern for NetDir. 2020-11-20 09:02:11 -05:00
Nick Mathewson ff821d3f31 Move NetDirConfig into its own module. 2020-11-20 08:53:34 -05:00
Nick Mathewson d3f94f48f4 Move some netdir code into submodules.
The Authority type gets its own module; so does the ability to load
from legacy storage.
2020-11-20 08:44:26 -05:00
Nick Mathewson 300c9c3fde Remove "dumpdir" example as obsolete 2020-11-20 08:08:32 -05:00
Nick Mathewson 7ecfa4c863 Remove a couple of stray dbg!() calls. 2020-11-19 19:23:34 -05:00
Nick Mathewson 9f4230fb1b Initial pass on directory-manager code.
This code can now bootstrap from the network, cache the results, and
reload from cache.

There's lots more work to do here, including a big pile of tidying
and refactoring and testing and documentation.
2020-11-19 19:11:10 -05:00
Nick Mathewson 35040534ba downgrade an ok_or_else to ok_or. 2020-11-19 12:00:14 -05:00
Nick Mathewson 87fe434875 Refactor AuthCertKeyIds::cmp(). 2020-11-19 11:38:06 -05:00
Nick Mathewson 02bac5f04e Add support for using fallback directories in path construction
This is mainly a refactoring commit, with a little new code.

It also adds #[derive(Copy,Clone)] for a few types.
2020-11-19 10:06:48 -05:00
Nick Mathewson 0945808e9b Add a notion of a one-hop fallback path.
These have a FallbackDirectory as target, rather than a Relay.
2020-11-17 16:58:26 -05:00
Nick Mathewson 5188263429 Refactor first-hop handling types a bit
This lets us have the notion of "get the first hop of a path as some
kind of a chantarget", which will make it easier to write other path
types.
2020-11-17 16:46:23 -05:00
Nick Mathewson 658996dae9 Netdir: improve representation
Now a netdir no longer holds unwanted microdescs, and it always
holds a weight function.
2020-11-17 14:14:17 -05:00
Nick Mathewson 9d49988c66 Netdir: add functions to add mds, and list missing mds 2020-11-17 13:40:00 -05:00
Nick Mathewson 3668f65c9e Netdir: only expose a netdir object if we have enough directory info
The calculation isn't completely right here, but it's a fair
stopgap.
2020-11-17 13:26:46 -05:00
Nick Mathewson 0d06dedd17 Include a list of fallback directories in tor-netdir 2020-11-16 16:46:08 -05:00
Nick Mathewson 33f070e7b5 Start a directory client implementation
It can send a GET request on a circuit, get an answer, and
decompress it with zlib.

It will need documentation and tests eventually, as well as serious
refactoring.
2020-11-16 16:39:16 -05:00
Nick Mathewson 168def3c28 Make AuthCertKeyIds sortable. 2020-11-16 15:08:12 -05:00
Nick Mathewson 1148b2d79a Note an unpleasantness in the circmgr api. 2020-11-16 15:07:19 -05:00
Nick Mathewson 6f68f99f4e Checkpoint work on a sqlite backend.
Among other stuff, revert parts of previous commit that introduced a
ReadableStore abstraction: there isn't a good abstraction hat covers
both Tor legacy stores and sqlite stores-- or if there is, I'll have
to find it organizally.

This isn't a final version: it probably has bugs, and it needs
documentation and more tests.  But before I do those, I want to
sanity-check the API by drafting the next layer up on the stack.
2020-11-16 09:22:27 -05:00
Nick Mathewson 29afe2869f Type and functions for key ID inspection of AuthCert. 2020-11-16 08:55:31 -05:00
Nick Mathewson 4512d7e9ed Have the consensus-parsing code expose the signed piece of the consensus. 2020-11-16 08:55:31 -05:00
Nick Mathewson 7336eeeb61 Checkpoint work on making storage backend generic
Also uses mmap for loading stuff.
2020-11-14 10:32:17 -05:00
Nick Mathewson cc59658fea Add accessors for consensus lifetimes. 2020-11-14 10:32:17 -05:00