type WebResponseData = Vec<u8>;
#[throws(PacketError)]
-pub fn route_packet(_global: &Global,
+pub fn route_packet(global: &Global,
conn: &str, link: &dyn Display,
packet: RoutedPacket, daddr: IpAddr)
{
- // xxx
- trace!("{} {} discarding packet daddr={:?} len={}",
- conn, link, daddr, packet.len());
+ let c = &global.config;
+ let trace = |how| trace!("{} {} route {} daddr={:?} len={}",
+ conn, link, how, daddr, packet.len());
+
+ if daddr == c.vaddr || ! c.vnetwork.iter().any(|n| n.contains(&daddr)) {
+ trace("ipif inbound xxx discarding");
+ } else if daddr == c.vrelay {
+ trace("discard (relay)");
+ } else if let Some(_client) = global.all_clients.get(&ClientName(daddr)) {
+ trace("ipif route xxx discarding");
+ } else {
+ trace("discard (no client)");
+ }
}
async fn handle(