Skip to content

Commit c045f9b

Browse files
Seulgi Kimmergify[bot]
authored andcommitted
Make net_recentNetworkUsage show the destination address
And this patch changes the way to show the extension name. Currently, the key is one of the extension name, "::handshake" and "::negotiation". But this patch changes the key to be one of "handshake@{socket address}", "negotiation@{socket address}" and "::{extension name}@{socket address}.
1 parent c91bbd8 commit c045f9b

File tree

6 files changed

+26
-17
lines changed

6 files changed

+26
-17
lines changed

codechain/dummy_network_service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ impl NetworkControl for DummyNetworkService {
107107
Err(NetworkControlError::Disabled)
108108
}
109109

110-
fn recent_network_usage(&self) -> Result<HashMap<&'static str, usize>, NetworkControlError> {
110+
fn recent_network_usage(&self) -> Result<HashMap<String, usize>, NetworkControlError> {
111111
Err(NetworkControlError::Disabled)
112112
}
113113
}

network/src/control.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub trait Control: Send + Sync {
4949
fn get_whitelist(&self) -> Result<(Vec<FilterEntry>, bool), Error>;
5050
fn get_blacklist(&self) -> Result<(Vec<FilterEntry>, bool), Error>;
5151

52-
fn recent_network_usage(&self) -> Result<HashMap<&'static str, usize>, Error>;
52+
fn recent_network_usage(&self) -> Result<HashMap<String, usize>, Error>;
5353
}
5454

5555
#[derive(Clone, Debug)]

network/src/p2p/handler.rs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ pub struct Handler {
111111

112112
bootstrap_addresses: Vec<SocketAddr>,
113113

114-
network_usage_in_10_seconds: Mutex<HashMap<&'static str, VecDeque<(Instant, usize)>>>,
114+
network_usage_in_10_seconds: Mutex<HashMap<String, VecDeque<(Instant, usize)>>>,
115115

116116
min_peers: usize,
117117
max_peers: usize,
@@ -233,15 +233,15 @@ impl Handler {
233233
Ok(())
234234
}
235235

236-
pub fn recent_network_usage(&self) -> HashMap<&'static str, usize> {
236+
pub fn recent_network_usage(&self) -> HashMap<String, usize> {
237237
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
238238
let mut result = HashMap::with_capacity(network_usage_in_10_seconds.len());
239239
let now = Instant::now();
240240
for (name, times) in &mut *network_usage_in_10_seconds {
241241
remove_outdated_network_usage(times, &now);
242242
let total = times.iter().map(|(_, usage)| usage).sum();
243243
if total != 0 {
244-
result.insert(*name, total);
244+
result.insert(name.clone(), total);
245245
}
246246
}
247247
result
@@ -387,7 +387,7 @@ impl IoHandler<Message> for Handler {
387387
{
388388
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
389389
insert_network_usage(
390-
network_usage_in_10_seconds.entry("::handshake").or_default(),
390+
network_usage_in_10_seconds.entry(format!("handshake@{}", target)).or_default(),
391391
network_message_size,
392392
);
393393
}
@@ -429,14 +429,18 @@ impl IoHandler<Message> for Handler {
429429
} => {
430430
let stream =
431431
*self.remote_node_ids_reverse.read().get(&node_id).ok_or_else(|| Error::InvalidNode(node_id))?;
432-
let network_message_size = match stream {
432+
let (network_message_size, peer_addr) = match stream {
433433
FIRST_OUTBOUND...LAST_OUTBOUND => {
434434
let mut outbound_connections = self.outbound_connections.write();
435435
if let Some(con) = outbound_connections.get_mut(&stream) {
436436
let _f = finally(|| {
437437
io.update_registration(stream);
438438
});
439-
con.enqueue_extension_message(extension_name.to_string(), need_encryption, data)?
439+
440+
(
441+
con.enqueue_extension_message(extension_name.to_string(), need_encryption, data)?,
442+
*con.peer_addr(),
443+
)
440444
} else {
441445
return Err(format!("{} is an invalid stream", stream).into())
442446
}
@@ -447,7 +451,10 @@ impl IoHandler<Message> for Handler {
447451
let _f = finally(|| {
448452
io.update_registration(stream);
449453
});
450-
con.enqueue_extension_message(extension_name.to_string(), need_encryption, data)?
454+
(
455+
con.enqueue_extension_message(extension_name.to_string(), need_encryption, data)?,
456+
*con.peer_addr(),
457+
)
451458
} else {
452459
return Err(format!("{} is an invalid stream", stream).into())
453460
}
@@ -456,7 +463,7 @@ impl IoHandler<Message> for Handler {
456463
};
457464
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
458465
insert_network_usage(
459-
network_usage_in_10_seconds.entry(extension_name).or_default(),
466+
network_usage_in_10_seconds.entry(format!("::{}@{}", extension_name, peer_addr)).or_default(),
460467
network_message_size,
461468
);
462469
}
@@ -540,7 +547,7 @@ impl IoHandler<Message> for Handler {
540547
{
541548
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
542549
insert_network_usage(
543-
network_usage_in_10_seconds.entry("::negotiation").or_default(),
550+
network_usage_in_10_seconds.entry(format!("negotiation@{}", peer_addr)).or_default(),
544551
network_message_size,
545552
);
546553
}
@@ -684,7 +691,9 @@ impl IoHandler<Message> for Handler {
684691
let network_message_size = con.enqueue_negotiation_response(extension_name, version);
685692
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
686693
insert_network_usage(
687-
network_usage_in_10_seconds.entry("::negotiation").or_default(),
694+
network_usage_in_10_seconds
695+
.entry(format!("negotiation@{}", con.peer_addr()))
696+
.or_default(),
688697
network_message_size,
689698
);
690699
}
@@ -795,7 +804,7 @@ impl IoHandler<Message> for Handler {
795804
};
796805
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
797806
insert_network_usage(
798-
network_usage_in_10_seconds.entry("::handshake").or_default(),
807+
network_usage_in_10_seconds.entry(format!("handshake@{}", from)).or_default(),
799808
network_message_size,
800809
);
801810
}
@@ -834,7 +843,7 @@ impl IoHandler<Message> for Handler {
834843
};
835844
let mut network_usage_in_10_seconds = self.network_usage_in_10_seconds.lock();
836845
insert_network_usage(
837-
network_usage_in_10_seconds.entry("::handshake").or_default(),
846+
network_usage_in_10_seconds.entry(format!("handshake@{}", from)).or_default(),
838847
network_message_size,
839848
);
840849
}

network/src/service.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ impl Control for Service {
198198
Ok(self.filters_control.get_blacklist())
199199
}
200200

201-
fn recent_network_usage(&self) -> Result<HashMap<&'static str, usize>, ControlError> {
201+
fn recent_network_usage(&self) -> Result<HashMap<String, usize>, ControlError> {
202202
Ok(self.p2p_handler.recent_network_usage())
203203
}
204204
}

rpc/src/v1/impls/net.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ impl Net for NetClient {
128128
})
129129
}
130130

131-
fn recent_network_usage(&self) -> Result<HashMap<&'static str, usize>> {
131+
fn recent_network_usage(&self) -> Result<HashMap<String, usize>> {
132132
Ok(self.network_control.recent_network_usage().map_err(|e| errors::network_control(&e))?)
133133
}
134134
}

rpc/src/v1/traits/net.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,6 @@ build_rpc_trait! {
8080
fn get_blacklist(&self) -> Result<FilterStatus>;
8181

8282
#[rpc(name = "net_recentNetworkUsage")]
83-
fn recent_network_usage(&self) -> Result<HashMap<&'static str, usize>>;
83+
fn recent_network_usage(&self) -> Result<HashMap<String, usize>>;
8484
}
8585
}

0 commit comments

Comments
 (0)