summaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src/doc
Commit message (Collapse)AuthorAgeFilesLines
* 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
| |
| * tor-netdoc: Put the "routerdesc" document type behind a feature.Nick Mathewson2021-11-121-0/+5
| | | | | | | | | | | | | | | | | | | | Nothing in arti currently uses this document type. Eventually it will be useful for relays and for bridge clients. I've left the "SHA1 digest of a router descriptor" type available unconditinoally, however, since it does get used in a few places. Part of #125.
* | Remove the unused `published` field from GenericRouterStatus.Nick Mathewson2021-11-123-23/+3
|/ | | | | | | | | | | | This field isn't used in modern Tor, and has never been used in Arti. If tor!489 is merged, then it will no longer contain a useful value in future consensuses. We shouldn't store it, or else somebody else will get the smart idea of using it for something. This commit breaks API compatibility for tor-netdoc with the `build_docs` feature enabled. I haven't entered that into the semver_status.md file, since we already have a pending tor-netdoc API breaker in !129.
* Add a couple of pieces of missing documentation.Nick Mathewson2021-11-081-3/+5
|
* Remove some dbg!() calls in real code.Nick Mathewson2021-11-021-1/+1
|