cleanup and stats accounting organization

This commit is contained in:
John Smith
2021-11-26 09:54:38 -05:00
parent 311dc908fe
commit a80178da54
9 changed files with 341 additions and 231 deletions

View File

@@ -575,24 +575,32 @@ impl RPCProcessor {
match &out {
Err(_) => {
self.cancel_op_id_waiter(waitable_reply.op_id);
waitable_reply.node_ref.operate(|e| {
if waitable_reply.is_ping {
e.ping_lost(waitable_reply.send_ts);
} else {
e.question_lost(waitable_reply.send_ts);
}
});
if waitable_reply.is_ping {
self.routing_table()
.ping_lost(waitable_reply.node_ref.clone(), waitable_reply.send_ts);
} else {
self.routing_table()
.question_lost(waitable_reply.node_ref.clone(), waitable_reply.send_ts);
}
}
Ok((rpcreader, _)) => {
// Reply received
let recv_ts = get_timestamp();
waitable_reply.node_ref.operate(|e| {
if waitable_reply.is_ping {
e.pong_rcvd(waitable_reply.send_ts, recv_ts, rpcreader.header.body_len);
} else {
e.answer_rcvd(waitable_reply.send_ts, recv_ts, rpcreader.header.body_len);
}
});
if waitable_reply.is_ping {
self.routing_table().pong_rcvd(
waitable_reply.node_ref,
waitable_reply.send_ts,
recv_ts,
rpcreader.header.body_len,
)
} else {
self.routing_table().answer_rcvd(
waitable_reply.node_ref,
waitable_reply.send_ts,
recv_ts,
rpcreader.header.body_len,
)
}
}
};
@@ -749,13 +757,13 @@ impl RPCProcessor {
// Successfully sent
let send_ts = get_timestamp();
node_ref.operate(|e| {
if is_ping {
e.ping_sent(send_ts, bytes);
} else {
e.question_sent(send_ts, bytes);
}
});
if is_ping {
self.routing_table()
.ping_sent(node_ref.clone(), send_ts, bytes);
} else {
self.routing_table()
.question_sent(node_ref.clone(), send_ts, bytes);
}
// Pass back waitable reply completion
match eventual {
@@ -763,13 +771,13 @@ impl RPCProcessor {
// if we don't want an answer, don't wait for one
Ok(None)
}
Some(e) => Ok(Some(WaitableReply {
op_id: op_id,
eventual: e,
timeout: timeout,
node_ref: node_ref,
send_ts: send_ts,
is_ping: is_ping,
Some(eventual) => Ok(Some(WaitableReply {
op_id,
eventual,
timeout,
node_ref,
send_ts,
is_ping,
})),
}
}
@@ -916,13 +924,11 @@ impl RPCProcessor {
// Reply successfully sent
let send_ts = get_timestamp();
node_ref.operate(|e| {
if is_pong {
e.pong_sent(send_ts, bytes);
} else {
e.answer_sent(send_ts, bytes);
}
});
if is_pong {
self.routing_table().pong_sent(node_ref, send_ts, bytes);
} else {
self.routing_table().answer_sent(node_ref, send_ts, bytes);
}
Ok(())
}
@@ -985,16 +991,16 @@ impl RPCProcessor {
let will_validate_dial_info = self.will_validate_dial_info();
NodeInfo {
can_route: can_route,
will_route: will_route,
can_tunnel: can_tunnel,
will_tunnel: will_tunnel,
can_signal_lease: can_signal_lease,
will_signal_lease: will_signal_lease,
can_relay_lease: can_relay_lease,
will_relay_lease: will_relay_lease,
can_validate_dial_info: can_validate_dial_info,
will_validate_dial_info: will_validate_dial_info,
can_route,
will_route,
can_tunnel,
will_tunnel,
can_signal_lease,
will_signal_lease,
can_relay_lease,
will_relay_lease,
can_validate_dial_info,
will_validate_dial_info,
}
}
@@ -1007,9 +1013,7 @@ impl RPCProcessor {
None => None,
Some(c) => c.remote.to_socket_addr().ok(),
});
SenderInfo {
socket_address: socket_address,
}
SenderInfo { socket_address }
}
async fn process_info_q(&self, rpcreader: RPCMessageReader) -> Result<(), RPCError> {
@@ -1329,7 +1333,7 @@ impl RPCProcessor {
let reader = capnp::message::Reader::new(msg.data, Default::default());
let rpcreader = RPCMessageReader {
header: msg.header,
reader: reader,
reader,
};
let (which, is_q) = {
@@ -1379,13 +1383,17 @@ impl RPCProcessor {
.lookup_node_ref(rpcreader.header.envelope.get_sender_id())
{
if which == 0u32 {
sender_nr.operate(|e| {
e.ping_rcvd(rpcreader.header.timestamp, rpcreader.header.body_len);
});
self.routing_table().ping_rcvd(
sender_nr,
rpcreader.header.timestamp,
rpcreader.header.body_len,
);
} else {
sender_nr.operate(|e| {
e.question_rcvd(rpcreader.header.timestamp, rpcreader.header.body_len);
});
self.routing_table().question_rcvd(
sender_nr,
rpcreader.header.timestamp,
rpcreader.header.body_len,
);
}
}
};
@@ -1508,9 +1516,9 @@ impl RPCProcessor {
let msg = RPCMessage {
header: RPCMessageHeader {
timestamp: get_timestamp(),
envelope: envelope,
envelope,
body_len: body.len() as u64,
peer_noderef: peer_noderef,
peer_noderef,
},
data: RPCMessageData { contents: body },
};
@@ -1586,9 +1594,9 @@ impl RPCProcessor {
// Return the answer for anyone who may care
let out = InfoAnswer {
latency: latency,
node_info: node_info,
sender_info: sender_info,
latency,
node_info,
sender_info,
};
Ok(out)
@@ -1713,7 +1721,7 @@ impl RPCProcessor {
let peers_reader = find_node_a
.get_peers()
.map_err(map_error_internal!("Missing peers"))?;
let mut peers_vec = Vec::<PeerInfo>::with_capacity(
let mut peers = Vec::<PeerInfo>::with_capacity(
peers_reader
.len()
.try_into()
@@ -1732,13 +1740,10 @@ impl RPCProcessor {
}
}
peers_vec.push(peer_info);
peers.push(peer_info);
}
let out = FindNodeAnswer {
latency: latency,
peers: peers_vec,
};
let out = FindNodeAnswer { latency, peers };
Ok(out)
}