Ignore ipv6 labeled address (#809)

Ignore ipv6 labeled address
This commit is contained in:
Zoltan Papp 2023-04-14 15:40:27 +02:00 committed by GitHub
parent 2eeed55c18
commit 9f35a7fb8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View File

@ -78,6 +78,9 @@ func (m *mobileIFaceDiscover) parseInterfacesString(interfaces string) []*transp
addrs := strings.Trim(fields[1], " \n") addrs := strings.Trim(fields[1], " \n")
foundAddress := false foundAddress := false
for _, addr := range strings.Split(addrs, " ") { for _, addr := range strings.Split(addrs, " ") {
if strings.Contains(addr, "%") {
continue
}
ip, ipNet, err := net.ParseCIDR(addr) ip, ipNet, err := net.ParseCIDR(addr)
if err != nil { if err != nil {
log.Warnf("%s", err) log.Warnf("%s", err)

View File

@ -3,6 +3,8 @@ package stdnet
import ( import (
"fmt" "fmt"
"testing" "testing"
log "github.com/sirupsen/logrus"
) )
func Test_parseInterfacesString(t *testing.T) { func Test_parseInterfacesString(t *testing.T) {
@ -20,6 +22,7 @@ func Test_parseInterfacesString(t *testing.T) {
{"wlan0", 30, 1500, true, true, false, false, true, "10.1.10.131/24"}, {"wlan0", 30, 1500, true, true, false, false, true, "10.1.10.131/24"},
{"rmnet0", 30, 1500, true, true, false, false, true, "192.168.0.56/24"}, {"rmnet0", 30, 1500, true, true, false, false, true, "192.168.0.56/24"},
{"rmnet_data1", 30, 1500, true, true, false, false, true, "fec0::118c:faf7:8d97:3cb2/64"}, {"rmnet_data1", 30, 1500, true, true, false, false, true, "fec0::118c:faf7:8d97:3cb2/64"},
{"rmnet_data2", 30, 1500, true, true, false, false, true, "fec0::118c:faf7:8d97:3cb2%rmnet2/64"},
} }
var exampleString string var exampleString string
@ -35,13 +38,13 @@ func Test_parseInterfacesString(t *testing.T) {
d.multicast, d.multicast,
d.addr) d.addr)
} }
d := mobileIFaceDiscover{} d := mobileIFaceDiscover{}
nets := d.parseInterfacesString(exampleString) nets := d.parseInterfacesString(exampleString)
if len(nets) == 0 { if len(nets) == 0 {
t.Fatalf("failed to parse interfaces") t.Fatalf("failed to parse interfaces")
} }
log.Printf("%d", len(nets))
for i, net := range nets { for i, net := range nets {
if net.MTU != testData[i].mtu { if net.MTU != testData[i].mtu {
t.Errorf("invalid mtu: %d, expected: %d", net.MTU, testData[0].mtu) t.Errorf("invalid mtu: %d, expected: %d", net.MTU, testData[0].mtu)
@ -60,7 +63,7 @@ func Test_parseInterfacesString(t *testing.T) {
if len(addr) == 0 { if len(addr) == 0 {
t.Errorf("invalid address parsing") t.Errorf("invalid address parsing")
} }
log.Printf("%v", addr)
if addr[0].String() != testData[i].addr { if addr[0].String() != testData[i].addr {
t.Errorf("invalid address: %s, expected: %s", addr[0].String(), testData[i].addr) t.Errorf("invalid address: %s, expected: %s", addr[0].String(), testData[i].addr)
} }