[mio] 简化代码
This commit is contained in:
@@ -101,6 +101,7 @@ pub fn base_handle(
|
|||||||
net_packet.set_source(src_ip);
|
net_packet.set_source(src_ip);
|
||||||
net_packet.set_destination(dest_ip);
|
net_packet.set_destination(dest_ip);
|
||||||
if dest_ip == current_device.virtual_gateway {
|
if dest_ip == current_device.virtual_gateway {
|
||||||
|
// 发到网关的加密方式不一样,要单独处理
|
||||||
if protocol == Protocol::Icmp {
|
if protocol == Protocol::Icmp {
|
||||||
net_packet.set_gateway_flag(true);
|
net_packet.set_gateway_flag(true);
|
||||||
server_cipher.encrypt_ipv4(&mut net_packet)?;
|
server_cipher.encrypt_ipv4(&mut net_packet)?;
|
||||||
@@ -109,16 +110,9 @@ pub fn base_handle(
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
if dest_ip.is_multicast() {
|
if dest_ip.is_multicast() {
|
||||||
match protocol {
|
//当作广播处理
|
||||||
Protocol::Udp => {
|
dest_ip = Ipv4Addr::BROADCAST;
|
||||||
//当作广播处理
|
net_packet.set_destination(Ipv4Addr::BROADCAST);
|
||||||
net_packet.set_destination(Ipv4Addr::BROADCAST);
|
|
||||||
client_cipher.encrypt_ipv4(&mut net_packet)?;
|
|
||||||
broadcast(server_cipher, context, &mut net_packet, ¤t_device)?;
|
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
}
|
|
||||||
return Ok(());
|
|
||||||
}
|
}
|
||||||
if dest_ip.is_broadcast() || current_device.broadcast_ip == dest_ip {
|
if dest_ip.is_broadcast() || current_device.broadcast_ip == dest_ip {
|
||||||
// 广播 发送到直连目标
|
// 广播 发送到直连目标
|
||||||
@@ -149,6 +143,5 @@ pub fn base_handle(
|
|||||||
proxy_map.send_handle(&mut ipv4_packet)?;
|
proxy_map.send_handle(&mut ipv4_packet)?;
|
||||||
}
|
}
|
||||||
client_cipher.encrypt_ipv4(&mut net_packet)?;
|
client_cipher.encrypt_ipv4(&mut net_packet)?;
|
||||||
//优先发到直连到地址
|
|
||||||
context.send_ipv4_by_id(net_packet.buffer(), &dest_ip, current_device.connect_server)
|
context.send_ipv4_by_id(net_packet.buffer(), &dest_ip, current_device.connect_server)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user