From 0b215ef42d7d4d4e957e4b6a124995190414f64e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 1 Jun 2026 18:37:47 +0100 Subject: [PATCH 1/2] tor-netdoc: routerstatus entries: Add `stats` item (votes only) --- crates/tor-netdoc/semver.md | 2 +- crates/tor-netdoc/src/doc/netstatus/rs.rs | 2 +- crates/tor-netdoc/src/doc/netstatus/rs/build/each_flavor.rs | 1 + crates/tor-netdoc/src/doc/netstatus/rs/each_flavor.rs | 1 + crates/tor-netdoc/src/doc/netstatus/rs/each_variety.rs | 5 +++++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/tor-netdoc/semver.md b/crates/tor-netdoc/semver.md index 23df35550c..9531bead8a 100644 --- a/crates/tor-netdoc/semver.md +++ b/crates/tor-netdoc/semver.md @@ -21,5 +21,5 @@ ADDED: `F64Finite` type ADDED: `doc::netstatus::{plain, md, vote}::NetworkStatus` BREAKING: `AuthCertUnverified::verify` doesn't take times; instead returns `TimerangeBound` DEPRECATED: `parse2::check_validity_time` and `check_validity_time_tolerance` -ADDED: `RouterStatus` fields `r.dir_port`, `p`, `id` ADDED: `impl From for Error` +ADDED: `RouterStatus` fields `r.dir_port`, `p`, `id`, `stats` diff --git a/crates/tor-netdoc/src/doc/netstatus/rs.rs b/crates/tor-netdoc/src/doc/netstatus/rs.rs index 0ad6728d15..6ffae245f4 100644 --- a/crates/tor-netdoc/src/doc/netstatus/rs.rs +++ b/crates/tor-netdoc/src/doc/netstatus/rs.rs @@ -12,7 +12,7 @@ pub(crate) mod vote; use super::{ConsensusFlavor, ConsensusMethods, consensus_methods_comma_separated}; use crate::doc::netstatus::NetstatusKwd; -use crate::doc::netstatus::{IgnoredPublicationTimeSp, Protocols, RelayWeight, RelayWeightsItem}; +use crate::doc::netstatus::{IgnoredPublicationTimeSp, NetParams, Protocols, RelayWeight, RelayWeightsItem}; use crate::encode::{EncodeOrd, ItemEncoder}; use crate::parse::parser::Section; use crate::parse2::ItemArgumentParseable; diff --git a/crates/tor-netdoc/src/doc/netstatus/rs/build/each_flavor.rs b/crates/tor-netdoc/src/doc/netstatus/rs/build/each_flavor.rs index 586139d77f..7df5afb9b3 100644 --- a/crates/tor-netdoc/src/doc/netstatus/rs/build/each_flavor.rs +++ b/crates/tor-netdoc/src/doc/netstatus/rs/build/each_flavor.rs @@ -197,6 +197,7 @@ impl RouterStatusBuilder { weight, port_policy: ns_expr!(None, NotPresent, Void {}), ed25519_id: NotPresent, + stats: NotPresent, }) } diff --git a/crates/tor-netdoc/src/doc/netstatus/rs/each_flavor.rs b/crates/tor-netdoc/src/doc/netstatus/rs/each_flavor.rs index f2181670b4..5f25e18d3d 100644 --- a/crates/tor-netdoc/src/doc/netstatus/rs/each_flavor.rs +++ b/crates/tor-netdoc/src/doc/netstatus/rs/each_flavor.rs @@ -199,6 +199,7 @@ impl RouterStatus { weight, port_policy: ns_expr!(None, NotPresent, Void {}), ed25519_id: NotPresent, + stats: NotPresent, }) } } diff --git a/crates/tor-netdoc/src/doc/netstatus/rs/each_variety.rs b/crates/tor-netdoc/src/doc/netstatus/rs/each_variety.rs index f20bedbbc5..407b160a7e 100644 --- a/crates/tor-netdoc/src/doc/netstatus/rs/each_variety.rs +++ b/crates/tor-netdoc/src/doc/netstatus/rs/each_variety.rs @@ -174,6 +174,11 @@ pub struct RouterStatus { // otherwise, we are missing handling of `id none`. #[deftly(netdoc(keyword = "id"))] pub ed25519_id: ns_type!(NotPresent, NotPresent, Ed25519IdentityLine), + + /// `stats` -- Statistics for this relay + /// + /// + pub stats: ns_type!(NotPresent, NotPresent, NetParams), } impl RouterStatus { -- GitLab From 9ef51f2d1cd2d9237ebf14acd707c96353b00416 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 11 Jun 2026 15:05:46 +0100 Subject: [PATCH 2/2] tor-netdoc: rs.rs: tidy imports --- crates/tor-netdoc/src/doc/netstatus/rs.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/tor-netdoc/src/doc/netstatus/rs.rs b/crates/tor-netdoc/src/doc/netstatus/rs.rs index 6ffae245f4..2cb57272ed 100644 --- a/crates/tor-netdoc/src/doc/netstatus/rs.rs +++ b/crates/tor-netdoc/src/doc/netstatus/rs.rs @@ -11,8 +11,9 @@ pub(crate) mod plain; pub(crate) mod vote; use super::{ConsensusFlavor, ConsensusMethods, consensus_methods_comma_separated}; -use crate::doc::netstatus::NetstatusKwd; -use crate::doc::netstatus::{IgnoredPublicationTimeSp, NetParams, Protocols, RelayWeight, RelayWeightsItem}; +use crate::doc::netstatus::{ + IgnoredPublicationTimeSp, NetParams, NetstatusKwd, Protocols, RelayWeight, RelayWeightsItem, +}; use crate::encode::{EncodeOrd, ItemEncoder}; use crate::parse::parser::Section; use crate::parse2::ItemArgumentParseable; -- GitLab