From 8d0e4ed0b1fc0be29a0913974f84345b05b2c021 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Tue, 20 Feb 2018 15:19:28 +0100 Subject: [PATCH] fix: fixed bug which prevented some interfaces wiht IPv6 only addresses from being detected. --- network/net.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/network/net.go b/network/net.go index dc69e7ec..c2717704 100644 --- a/network/net.go +++ b/network/net.go @@ -71,19 +71,19 @@ func FindInterface(name string) (*Endpoint, error) { } // Also search by ip if needed. - if name != "" { - for _, a := range addrs { - if a.String() == name || strings.HasPrefix(a.String(), name) { - doCheck = true - break - } + hasIPv4 := false + for _, a := range addrs { + hasIPv4 = IPv4Validator.MatchString(a.String()) + if name != "" && (a.String() == name || strings.HasPrefix(a.String(), name)) { + doCheck = true } } if doCheck { var e *Endpoint = nil - // interface is in monitor mode (or it's just down and the user is dumb) - if nAddrs == 0 { + // interface is in monitor mode (or it's just down and the user is dumb, or + // it only has an IPv6 address). + if nAddrs == 0 || hasIPv4 == false { e = NewEndpointNoResolve(MonitorModeAddress, mac, ifName, 0) } else { // For every address of the interface.