diff --git a/vnt/src/handle/recv_data/client.rs b/vnt/src/handle/recv_data/client.rs index 8441d81..332780b 100644 --- a/vnt/src/handle/recv_data/client.rs +++ b/vnt/src/handle/recv_data/client.rs @@ -165,6 +165,7 @@ impl ClientPacketHandler { ) -> io::Result<()> { let metric = net_packet.source_ttl() - net_packet.ttl() + 1; let source = net_packet.source(); + context.route_table.update_read_time(&source, &route_key); match ControlPacket::new(net_packet.transport_protocol(), net_packet.payload())? { ControlPacket::PingPacket(_) => { net_packet.set_transport_protocol(control_packet::Protocol::Pong.into()); diff --git a/vnt/src/handle/recv_data/mod.rs b/vnt/src/handle/recv_data/mod.rs index 0b91168..408c1fd 100644 --- a/vnt/src/handle/recv_data/mod.rs +++ b/vnt/src/handle/recv_data/mod.rs @@ -112,8 +112,6 @@ impl RecvDataHandler { } let current_device = self.current_device.load(); let dest = net_packet.destination(); - let source = net_packet.source(); - context.route_table.update_read_time(&source, &route_key); if dest == current_device.virtual_ip || dest.is_broadcast() || dest.is_multicast() diff --git a/vnt/src/handle/recv_data/server.rs b/vnt/src/handle/recv_data/server.rs index d75cc26..58bd975 100644 --- a/vnt/src/handle/recv_data/server.rs +++ b/vnt/src/handle/recv_data/server.rs @@ -89,11 +89,12 @@ impl PacketHandler for ServerPacketHandler { context: &Context, current_device: &CurrentDeviceInfo, ) -> io::Result<()> { + context.route_table.update_read_time(&net_packet.source(), &route_key); if net_packet.protocol() == Protocol::Error && net_packet.transport_protocol() == crate::protocol::error_packet::Protocol::NoKey.into() { - //开启服务端加密的情况下,只有这个回应是不加密的,是服务端通知客户端上传密钥 + //服务端通知客户端上传密钥 #[cfg(feature = "server_encrypt")] { let mutex_guard = self.rsa_cipher.lock();