Explorar o código

Don't check port any firewall rules twice for packets without ports

JackDoan hai 3 semanas
pai
achega
30cf2bbe6c
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      firewall.go

+ 2 - 1
firewall.go

@@ -755,7 +755,8 @@ func (fp firewallPort) match(p *firewall.Packet, incoming bool, c *cert.CachedCe
 		port = int32(p.RemotePort)
 		port = int32(p.RemotePort)
 	}
 	}
 
 
-	if fp[port].match(p, c, caPool) {
+	// Packets without ports (gre, esp, etc) have port 0, which is PortAny, don't check those rules twice
+	if port != firewall.PortAny && fp[port].match(p, c, caPool) {
 		return true
 		return true
 	}
 	}