From 3d3f7796635a1367f6e6e0602fce476b4bb45235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Alloza=20Gonz=C3=A1lez?= Date: Thu, 28 Dec 2023 14:20:20 +0100 Subject: [PATCH] fix: do not crash if wifi is not connected --- pkg/find/find.go | 2 +- pkg/networking/networking.go | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/find/find.go b/pkg/find/find.go index 2087c61..ffbd366 100644 --- a/pkg/find/find.go +++ b/pkg/find/find.go @@ -46,7 +46,7 @@ func (f *Finder) Run(args Args) error { } fmt.Printf("Found %d IP addresses\n", len(ipv4List)) - fmt.Printf("Zear IP addresses (user: %s)...\n", args.User) + fmt.Printf("Scanning IP addresses (user: %s)...\n", args.User) start := time.Now() f.findArgs = args f.totalIPs = ipv4List diff --git a/pkg/networking/networking.go b/pkg/networking/networking.go index 30c5142..25c7ed8 100644 --- a/pkg/networking/networking.go +++ b/pkg/networking/networking.go @@ -146,7 +146,7 @@ func (n *networkingManager) getIfaceToConMap() (map[string]string, error) { return nil, fmt.Errorf("error getting network interfaces: %w", err) } - r := regexp.MustCompile(`([\w ]+)\s+([a-z0-9-]+)\s+(\w+)\s+(\w+)`) + r := regexp.MustCompile(`([\w ]+)\s+([a-z0-9-]+)\s+(\w+)\s+([\w-]+)`) lines := strings.Split(stdout, "\n") data := make(map[string]string) @@ -156,9 +156,13 @@ func (n *networkingManager) getIfaceToConMap() (map[string]string, error) { } matches := r.FindStringSubmatch(line) if len(matches) < 5 { - return nil, fmt.Errorf("error parsing network interfaces: %s", line) + return nil, fmt.Errorf("error parsing network interfaces: '%s'", line) + } + // Detect if the interface is not connected + if matches[4] == "--" { + n.log.Debug().Str("name", matches[3]).Str("uuid", matches[2]).Msg("Skipping connection, no device connected") + continue } - data[matches[4]] = matches[2] }