mirror of
https://github.com/pezkuwichain/pezkuwi-telemetry.git
synced 2026-07-22 17:15:43 +00:00
Address David's comments
This commit is contained in:
@@ -46,8 +46,8 @@ macro_rules! id_type {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
//! Mostly we're just checking that everything compiles OK
|
// Mostly we're just checking that everything compiles OK
|
||||||
//! when the macro is used as expected..
|
// when the macro is used as expected..
|
||||||
|
|
||||||
// A basic definition is possible:
|
// A basic definition is possible:
|
||||||
id_type! {
|
id_type! {
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ where
|
|||||||
self.total
|
self.total
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Fetch the current time source, incase we need to modify it.
|
/// Fetch the current time source, in case we need to modify it.
|
||||||
pub fn time_source(&mut self) -> &mut Time {
|
pub fn time_source(&mut self) -> &mut Time {
|
||||||
&mut self.time_source
|
&mut self.time_source
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ pub struct Aggregator(Arc<AggregatorInternal>);
|
|||||||
struct AggregatorInternal {
|
struct AggregatorInternal {
|
||||||
/// Shards that connect are each assigned a unique connection ID.
|
/// Shards that connect are each assigned a unique connection ID.
|
||||||
/// This helps us know who to send messages back to (especially in
|
/// This helps us know who to send messages back to (especially in
|
||||||
/// conjunction with the [`LocalId`] that messages will come with).
|
/// conjunction with the `ShardNodeId` that messages will come with).
|
||||||
shard_conn_id: AtomicU64,
|
shard_conn_id: AtomicU64,
|
||||||
/// Feeds that connect have their own unique connection ID, too.
|
/// Feeds that connect have their own unique connection ID, too.
|
||||||
feed_conn_id: AtomicU64,
|
feed_conn_id: AtomicU64,
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ impl Chain {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Can we add a node? If not, it's because the chain is at its quota.
|
/// Can we add a node? If not, it's because the chain is at its quota.
|
||||||
pub fn can_add_node(&self) -> bool {
|
pub fn is_overquota(&self) -> bool {
|
||||||
// Dynamically determine the max nodes based on the most common
|
// Dynamically determine the max nodes based on the most common
|
||||||
// label so far, in case it changes to something with a different limit.
|
// label so far, in case it changes to something with a different limit.
|
||||||
self.nodes.len() < max_nodes(self.labels.best())
|
self.nodes.len() < max_nodes(self.labels.best())
|
||||||
@@ -105,7 +105,7 @@ impl Chain {
|
|||||||
|
|
||||||
/// Assign a node to this chain.
|
/// Assign a node to this chain.
|
||||||
pub fn add_node(&mut self, node: Node) -> AddNodeResult {
|
pub fn add_node(&mut self, node: Node) -> AddNodeResult {
|
||||||
if !self.can_add_node() {
|
if !self.is_overquota() {
|
||||||
return AddNodeResult::Overquota;
|
return AddNodeResult::Overquota;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ use std::sync::Arc;
|
|||||||
/// A unique Id is assigned per websocket connection (or more accurately,
|
/// A unique Id is assigned per websocket connection (or more accurately,
|
||||||
/// per thing-that-subscribes-to-the-aggregator). That connection might send
|
/// per thing-that-subscribes-to-the-aggregator). That connection might send
|
||||||
/// data on behalf of multiple chains, so this ID is local to the aggregator,
|
/// data on behalf of multiple chains, so this ID is local to the aggregator,
|
||||||
/// and a unique ID is assigned per batch of data too ([`internal_messages::LocalId`]).
|
/// and a unique ID is assigned per batch of data too ([`internal_messages::ShardNodeId`]).
|
||||||
type ConnId = u64;
|
type ConnId = u64;
|
||||||
|
|
||||||
/// Incoming messages are either from websocket connections or
|
/// Incoming messages are either from websocket connections or
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ fn pick_best_ip_from_options(
|
|||||||
realip
|
realip
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Follow https://datatracker.ietf.org/doc/html/rfc7239 to decode the Forwarded header value.
|
/// Follow <https://datatracker.ietf.org/doc/html/rfc7239> to decode the Forwarded header value.
|
||||||
/// Roughly, proxies can add new sets of values by appending a comma to the existing list
|
/// Roughly, proxies can add new sets of values by appending a comma to the existing list
|
||||||
/// (so we have something like "values1, values2, values3" from proxy1, proxy2 and proxy3 for
|
/// (so we have something like "values1, values2, values3" from proxy1, proxy2 and proxy3 for
|
||||||
/// instance) and then the valeus themselves are ';' separated name=value pairs. The value in each
|
/// instance) and then the valeus themselves are ';' separated name=value pairs. The value in each
|
||||||
@@ -91,10 +91,12 @@ fn pick_best_ip_from_options(
|
|||||||
///
|
///
|
||||||
/// Examples from the RFC:
|
/// Examples from the RFC:
|
||||||
///
|
///
|
||||||
/// Forwarded: for="_gazonk"
|
/// ```text
|
||||||
/// Forwarded: For="[2001:db8:cafe::17]:4711"
|
/// Forwarded: for="_gazonk"
|
||||||
/// Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
|
/// Forwarded: For="[2001:db8:cafe::17]:4711"
|
||||||
/// Forwarded: for=192.0.2.43, for=198.51.100.17
|
/// Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
|
||||||
|
/// Forwarded: for=192.0.2.43, for=198.51.100.17
|
||||||
|
/// ```
|
||||||
fn get_first_addr_from_forwarded_header(value: &str) -> Option<&str> {
|
fn get_first_addr_from_forwarded_header(value: &str) -> Option<&str> {
|
||||||
let first_values = value.split(',').next()?;
|
let first_values = value.split(',').next()?;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user