summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src/doc
Commit message (Collapse)AuthorAgeFilesLines
* tor-proto: split and elaborate tor_bytes::Error instancesNick Mathewson2022-06-231-5/+15
| | | | | | | | | Some of these were for decoding particular objects (we now say what kind of objects), and some were unrelated tor_cert errors that for some reason we had shoved into a tor_bytes::Error. There is now a separate tor_cert::CertError type, independent from tor_cert's use of `tor_bytes::Error` for parsing errors.
* microdesc: make sure we recover from an error in the final md.Nick Mathewson2022-06-071-1/+7
| | | | | | | | (This is slightly different from recovering from errors in the middle of a list of mds, since in this case we _can't_ advance to the next md.) Also, note that a given branch is probably not reachable.
* netdoc: test case for microdesc with no ed25519 id.Nick Mathewson2022-06-071-0/+1
| | | | | The "bad-id" microdescriptor is hand-edited based on one from a Chutney network.
* netdoc: test a couple of accessors for AuthCert.Nick Mathewson2022-06-071-1/+11
|
* Resolve the new `derive_partial_eq_without_eq` lint.Nick Mathewson2022-05-231-1/+1
| | | | It's a little overzealous sometimes, but it's mostly to the good.
* Fix typoDimitris Apostolou2022-05-141-1/+1
|
* tor-netdoc: Add a Lifetime::valid_at method.Nick Mathewson2022-05-111-0/+4
|
* netdoc: add a new type for NicknamesNick Mathewson2022-05-093-11/+8
| | | | | | | | | | Relay nicknames are always between 1 and 19 characters long, and they're always ASCII: That means that storing them in a [u8;19] will always be possible, and always use less resources than storing them in a String. Fortunately, the tinystr crate already helps us with this kind of thing.
* NetParams: Document its role as a validated config parameterIan Jackson2022-05-091-0/+3
|
* squash! Bump every crate's edition to 2021.Nick Mathewson2022-04-252-3/+0
| | | | | Remove all `use` statements for `TryFrom` and `TryInto`. These are now redundant in Rust 2021.
* Re-order attributes so that we can build with Rust 1.53.Nick Mathewson2022-03-315-15/+15
|
* tor-netdoc: Conditionally expose document fields.Nick Mathewson2022-03-316-0/+83
| | | | | | | | This commit uses the `visibility` and `visible` crates to conditionally make certain structs and their fields public (respectively). This is incredibly dangerous to use for anything besides testing, and I've tried to write the documentation for the feature accordingly.
* Remove allow(clippy::disallowed_methods) lint.Nick Mathewson2022-03-302-3/+0
|
* Merge branch 'no-system-time' into 'main'eta2022-03-302-0/+3
|\ | | | | | | | | | | | | Don't use SystemTime::now() Closes #306 See merge request tpo/core/arti!365
| * use wallclock where possible in teststrinity-1686a2022-02-262-0/+3
| |
* | Change type of TorClientConfig::override_net_paramsIan Jackson2022-03-161-1/+1
| | | | | | | | | | | | | | Now we use NetParams. That implies making its constructor public, which I think it fine. This is related to #413 but is far from completing that ticket.
* | Canonicalize and intern protover lines on descriptorsNick Mathewson2022-03-113-11/+17
| | | | | | | | | | | | | | | | This should save around 1MB per consensus, since every relay has a 'protocols' lines, but there are only a few distinct possibilities for such a line. Closes #385.
* | Canonicalize and intern family representations to save memory.Nick Mathewson2022-03-113-8/+24
| | | | | | | | | | | | This should save 1-3 MB of ram on each running arti client. Closes #384. See also tor#27359 and proposal 298.
* | Add a more generic implementation of intern-by-refNick Mathewson2022-03-111-1/+1
| |
* | netdoc: Call shrink_to_fit() when we're done parsing rs sectionsNick Mathewson2022-03-111-0/+1
| | | | | | | | | | (Once we're done parsing these, the vector will never get any longer.)
* | netdoc: allocate no extra space for RouterStatus addresses.Nick Mathewson2022-03-111-5/+6
| | | | | | | | This should save around 181K of heap on a current directory.
* | netdoc: Make versions smaller in GenericRouterStatusNick Mathewson2022-03-112-6/+45
| | | | | | | | | | | | When the version is a Tor version, we can just parse it; otherwise, we can intern it. This shrinks GenericRouterStatus and avoids a lot of extra help allocations.
* | tor-netdoc: Remove unused or_port field from RS.Nick Mathewson2022-03-112-6/+0
| | | | | | | | Part of #387
* | Add methods to `UnverifiedConsensus`Christian Grigis2022-03-101-0/+25
|/
* Refactor tor_netdoc::ErrorNick Mathewson2022-02-147-124/+199
| | | | | | | | | | | | | | | This error type doesn't impement HasKind, since the kind will depend on context. However, the existing implementation was pretty messy and inconsistent: Some errors had positions, some didn't. Some took messages as str, some as String. Some had internal errors that were somewhat orthogonal to their actual types. This commit refactors tor_netdoc::Error to use a ParseErrorKind, and adds a set of convenience functions to add positions and messages to the errors that need them.
* netdoc: Make doc-build errors a separate typeNick Mathewson2022-02-144-7/+7
| | | | | Every other case of tor_netdoc::Error means a parse failure. This one, though, means a failure to construct a document.
* Merge branch 'refactor/must-use-self' into 'main'eta2021-12-201-0/+1
|\ | | | | | | | | address clippy's latest lint See merge request tpo/core/arti!205
| * address clippy's latest lintDaniel Eades2021-12-201-0/+1
| |
* | tor-netdoc: Change an XXX to a TODO.Nick Mathewson2021-12-201-1/+4
| | | | | | | | | | | | Our behavior in handling not-yet-valid router descriptors doesn't match the C Tor implementation, but it's not a big deal: we don't currently use router descriptors at all.
* | tor-netdoc: Use a more correct error typeNick Mathewson2021-12-201-1/+1
| | | | | | | | | | | | If we fail to convert a curve25519 key to an ed25519 key for checking the onion-key crosscert, don't call that an internal error: it means that something is wrong with the provided ntor key.
* | Remove an XXXX about ed25519 signatures.Nick Mathewson2021-12-201-2/+0
|/ | | | | As of tor-spec commit 01122c5bd7d2f0f, the spec is no longer ambiguous on this point.
* s/hidden/onion/g in code commentsNeel Chauhan2021-12-131-1/+1
|
* fix nightly clippy errorsTrinity Pointard2021-12-092-6/+2
|
* Resolve roughly half of the XXXXs.Nick Mathewson2021-12-061-1/+1
| | | | | | | | We want to only use TODO in the codebase for non-blockers, and open tickets for anything that is a bigger blocker than a TODO. These XXXXs seem like definite non-blockers to me. Part of arti#231.
* Remove dir_port from RouterStatusBuilderNeel Chauhan2021-12-013-17/+1
|
* Add comments about the absence of tap_key in microdesc.Nick Mathewson2021-11-301-1/+4
|
* Merge remote-tracking branch 'origin/mr/151'Nick Mathewson2021-11-302-45/+4
|\
| * Parse RSA public keyNeel Chauhan2021-11-291-2/+9
| |
| * Remove unused tap_onion_key and tap_keyNeel Chauhan2021-11-282-52/+4
| |
* | Run "cargo update" to get latest versions.Nick Mathewson2021-11-291-0/+1
| | | | | | | | | | | | | | Also fix a couple of warnings introduced by now-unneeded imports with new ed25519 crate. This is part of the process for releasing our next version.
* | Merge remote-tracking branch 'origin/mr/149'Nick Mathewson2021-11-292-23/+0
|\ \
| * | Remove address from VoterInfoBuilderNeel Chauhan2021-11-281-12/+0
| | |
| * | Remove unused 'address' field from DirSource structNeel Chauhan2021-11-282-11/+0
| |/
* / deglob some enums, use concise iteration syntaxDaniel Eades2021-11-251-3/+3
|/
* Merge branch 'arti-client-config' into 'main'eta2021-11-221-1/+1
|\ | | | | | | | | Further configuration refactoring See merge request tpo/core/arti!137
| * Make every Config type implement Eq.Nick Mathewson2021-11-211-1/+1
| | | | | | | | | | Doing this is necessary for reconfiguration support, and will help a lot with testing, too.
* | Use consistent name for ns_consensus feature.Nick Mathewson2021-11-211-6/+6
|/
* Merge branch 'ticket125' into 'main'eta2021-11-166-130/+187
|\ | | | | | | | | | | | | Put most non-universally-needed functionality behind features Closes #125 See merge request tpo/core/arti!129
| * tor-netdoc: put NS consensus documents behind a feature.Nick Mathewson2021-11-124-2/+18
| | | | | | | | | | | | Clients never need these. Part of #125.
| * tor-netdoc: Split the two kinds of routerstatus into their own modulesNick Mathewson2021-11-123-128/+164
| |