also detect applications that use the AF_INET6 socket for IPv4 connections

This commit is contained in:
Peter Stöckli 2019-05-13 11:14:58 +02:00
parent 5c8f7102c2
commit 0efcfe9e65
Failed to generate hash of commit

View file

@ -2,11 +2,27 @@ package netstat
import ( import (
"net" "net"
"strings"
"github.com/evilsocket/opensnitch/daemon/log" "github.com/evilsocket/opensnitch/daemon/log"
) )
func FindEntry(proto string, srcIP net.IP, srcPort uint, dstIP net.IP, dstPort uint) *Entry { func FindEntry(proto string, srcIP net.IP, srcPort uint, dstIP net.IP, dstPort uint) *Entry {
if entry := findEntryForProtocol(proto, srcIP, srcPort, dstIP, dstPort); entry != nil {
return entry
}
ipv6Suffix := "6"
if strings.HasSuffix(proto, ipv6Suffix) == false {
otherProto := proto + ipv6Suffix
log.Debug("Searching for %s netstat entry instead of %s", otherProto, proto)
return findEntryForProtocol(otherProto, srcIP, srcPort, dstIP, dstPort)
}
return nil;
}
func findEntryForProtocol(proto string, srcIP net.IP, srcPort uint, dstIP net.IP, dstPort uint) *Entry {
entries, err := Parse(proto) entries, err := Parse(proto)
if err != nil { if err != nil {
log.Warning("Error while searching for %s netstat entry: %s", proto, err) log.Warning("Error while searching for %s netstat entry: %s", proto, err)