public void PacketDispatcher(PcapDotNet.Packets.Packet packet) { Common.PacketData pdata = new Common.PacketData(packet); if (!NetworkFirewall.TestIncoming(pdata)) { return; } Task.Run(() => { switch (pdata.Type) { case PacketType.Arp: Arp.OnReceivePacket(pdata); break; case PacketType.Icmp: Icmp.OnReceivePacket(pdata); break; case PacketType.Dns: Dns.OnReceivePacket(pdata); break; case PacketType.Tcp: Tcp.OnReceivePacket(pdata); break; case PacketType.Http: Tcp.OnReceivePacket(pdata); break; } }); }