aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | Merge branch 'geoip-convert' into 'main'Nick Mathewson2026-04-282-0/+189
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | geoip: Add an internal-use tool to convert geoip db formats. See merge request tpo/core/arti!3909
| * | | | geoip: Add an internal-use tool to convert geoip db formats.Nick Mathewson2026-04-282-0/+189
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | This should eventually be integrated with Tor's geoip-db-tool, but for now, we ought to put this somewhere. (And until the next tor-geoip crate is released, we can't really use its new functionality.)
* | | | Merge branch 'feature/syslog' into 'main'Nick Mathewson2026-04-285-4/+70
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | implement syslog support Closes #444 See merge request tpo/core/arti!3817
| * | | implement syslog supportAndrew Kloet2026-04-285-4/+70
| | | |
* | | | Merge branch 'mutex-sha1-sha2' into 'main'Ian Jackson2026-04-283-24/+18
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | tor-dirserver: Make sha1 and sha2 mutually exclusive in schema See merge request tpo/core/arti!3917
| * | | | tor-dirserver: Make use of only one descriptor hash in missing selectionClara Engler2026-04-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes use of the presence of only one descriptor hash inside consensus_router_descriptor_member by adding a respective AND clause to the select statements of missing descriptors to only select the rows with a non-null SHA-1 (or SHA-2 for the sake of microdescs) in the consensus_router_descriptor_member table. This is defensive programming and should not be required in practice because the docid as well as the "XOR" CHECK should already ensure that this value is always non-NULL. However, if it still happens and slips through, the statement would return NULL rows, which is not what we want and was previously prevented by ensuring this field was never NULL in the first place.
| * | | | tor-dirserver: Store precisely one descriptor hash in schemaClara Engler2026-04-273-24/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the consensus_router_descriptor_member table in the database schema, removing the NOT NULL constraint on unsigned_sha1 and unsigned_sha2 by replacing it with a new CHECK constraint that checks that either one of them is set but not both. The reason for this is as follows: We are going to use this table to compute the queue of missing descriptors, which means that we can only populate this table with the data we know from the consensus. The consensus however tells us only one of those hashes, namely sha1 in the case of a consensus-ns and sha2 in the case of a consensus-md. In other words: This commit can also be seen as an effort to change the design of the operation in such a way that the queue is obtained directly from the database and not computed at the start during state transition.
* | | | | Merge branch 'ns-auth-entry' into 'main'Clara Engler2026-04-2710-195/+543
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Parsing and encoding for netstatus authority sections See merge request tpo/core/arti!3892
| * | | | | tor-netdoc: Remove two now-otiose use'sIan Jackson2026-04-271-2/+2
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: discuss vote-digestIan Jackson2026-04-271-0/+4
| | | | | |
| * | | | | tor-netdoc: semver.md: remove a trailing spaceIan Jackson2026-04-271-1/+1
| | | | | |
| * | | | | tor-netdoc: consensus authority section: document addition in semver.mdIan Jackson2026-04-271-0/+1
| | | | | |
| * | | | | tor-netdoc: consensus authority section: ConsensusAuthoritySectionIan Jackson2026-04-274-91/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace poc code with new ConsensusAuthoritySection. This is an entirely new parsing approach. Key differences: * We parse the arguments to dir-source, which poc didn't. * We don't clone the input and fully parse the first item; instead, we dismantle the dir-source line ad-hoc to determine the item type. * Rather than a Vec of Enums, we parse into two Vecs of the different entry types. The few lines that aren't rewritten show up as moved in git show --color-moved --color-moved-ws=allow-indentation-change but I suggest reviewing the new implementation de novo.
| * | | | | tor-netdoc: consensus authority section: SupersededAuthorityKeyIan Jackson2026-04-272-2/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the type corresponding to a "superseded authority key entry", which is a single dir-source line with a weird nickname.
| * | | | | tor-netdoc: DirSource: move to new dir_source moduleIan Jackson2026-04-272-42/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is going to handle the bizarre `-legacy` nickname encoding for superseded authority keys. That's going to be a fair amount of code, some derived from DirSource. Make a module for it all. We're going to take a different approach that in poc. So there's going to be all-new code and then the poc version will be deleted. They don't resemble each other very much. In this commit: just code motion, and the creation of the new module with associated doc comment. Review with --color-moved.
| * | | | | tor-netdoc: VoteAuthoritySection: derive ConstructorIan Jackson2026-04-272-4/+18
| | | | | |
| * | | | | tor-netdoc: VoteAuthoritySection: add a blank lineIan Jackson2026-04-271-0/+1
| | | | | |
| * | | | | tor-netdoc: VoteAuthoritySection: implement encodingIan Jackson2026-04-271-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We must add to our ad-hoc derive, since the normal derive can't do the encoding either.
| * | | | | tor-netdoc: VoteAuthoritySection: iterate rather than open-coding fieldsIan Jackson2026-04-271-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use deftly's field loop, rather than handcoding the two fields. (We don't expect to add any fields, but if we did this would be more correct.)
| * | | | | tor-netdoc: VoteAuthoritySection: improve doc commentsIan Jackson2026-04-271-3/+13
| | | | | |
| * | | | | tor-netdoc: VoteAuthoritySection: promote poc to prodIan Jackson2026-04-273-51/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Almost entirely code motion. Review with --color-moved. This is new correct for votes, and uses the non-poc names for things. We'll improve up a few minor things in a moment. The cfg situation is getting very tangled. There are already various TODOs about this. I think it is time to bite the bullet; I will do that separately from this MR.
| * | | | | tor-netdoc: VoteAuthoritySection: promote poc to prod (prep, use's)Ian Jackson2026-04-272-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prepare for the namespace environment in the mainline doc/netstatus modules. (Add a couple of temporary use's.)
| * | | | | tor-netdoc: VoteAuthoritySection: promote poc to prod (prep, rename)Ian Jackson2026-04-271-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to move this code to the main doc/netstatus modules. Rename the struct and its associated derive macro, to the naming approach used outside poc. We leave a `use` behind in poc. That can remain until poc is eventually abolished.
| * | | | | tor-netdoc: VoteAuthoritySection: deindent NddAuthoritySectionIan Jackson2026-04-271-42/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purely whitespace change: deindent certain lines by 4. `git show -w` is helpful.
| * | | | | tor-netdoc: VoteAuthorityEntry: replace in poc with new proper typeIan Jackson2026-04-272-23/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has a side effect of testing the parsing. (Testing of the encoding will have to come a lot later.)
| * | | | | tor-netdoc: VoteAuthorityEntry: new struct (just a skeleton for now)Ian Jackson2026-04-272-0/+37
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: document changes in semver.mdIan Jackson2026-04-271-0/+3
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: derive ConstructorIan Jackson2026-04-272-1/+11
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: derive encoding and parsingIan Jackson2026-04-271-1/+5
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: fix type of vote_digest fieldIan Jackson2026-04-272-3/+3
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: fix type of contact fieldIan Jackson2026-04-272-3/+17
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: add some blank linesIan Jackson2026-04-271-0/+2
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: rename from ConsensusVoterInfo (2) (fmt)Ian Jackson2026-04-271-1/+1
| | | | | |
| * | | | | tor-netdoc: ConsensusAuthorityEntry: rename from ConsensusVoterInfo (2)Ian Jackson2026-04-274-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | Deprecate the compatibility alias.
| * | | | | tor-netdoc: ConsensusAuthorityEntry: rename from ConsensusVoterInfoIan Jackson2026-04-271-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | Use the terminology from the spec.
| * | | | | tor-netdoc: DirSource: document changes in semver.mdIan Jackson2026-04-271-1/+3
| | | | | |
| * | | | | tor-netdoc: DirSource: derive ConstructorIan Jackson2026-04-272-1/+12
| | | | | |
| * | | | | tor-netdoc: DirSource: derive encoding and parsingIan Jackson2026-04-271-1/+4
| | | | | |
| * | | | | tor-netdoc: DirSource: add missing hostname fieldIan Jackson2026-04-272-0/+11
| | | | | |
| * | | | | tor-netdoc: DirSource: fix type of identity fieldIan Jackson2026-04-272-3/+4
| | | | | |
| * | | | | tor-netdoc: DirSource: fix type of nickname fieldIan Jackson2026-04-272-3/+9
| | | | | |
| * | | | | tor-netdoc: DirSource: add spec urlIan Jackson2026-04-271-0/+1
| | | | | |
| * | | | | tor-netdoc: DirSource: add some blank linesIan Jackson2026-04-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | This makes the struct more legible.
| * | | | | tor-netdoc: EncodedAuthCert: implement NetdocEncodableIan Jackson2026-04-271-0/+13
| | | | | |
| * | | | | tor-netdoc: ItemValueParseable: Tolerate non-snake-case fieldsIan Jackson2026-04-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | We'll want this with Constructor's __non_exhaustive.
* | | | | | Merge branch 'embedded-cert-prep' into 'main'Ian Jackson2026-04-272-1/+10
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | Prep work for EmbeddedCert See merge request tpo/core/arti!3918
| * | | | | tor-netdoc: RouterSigEd25519::hash: Comment and assert re spaceIan Jackson2026-04-271-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3918#note_3401409
| * | | | | tor-netdoc: Add a TODO re VerifyFailedIan Jackson2026-04-271-1/+1
| | | | | |
* | | | | | Merge branch 'embedded-cert' into 'main'Ian Jackson2026-04-2713-18/+706
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor-netdoc: Introduce EmbeddedCert, and a demo of how to use it Closes #2485 See merge request tpo/core/arti!3922
| * | | | | | tor-netdoc: Introduce `EmbeddedCert`Ian Jackson2026-04-274-0/+395
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #2485.