From 8567cd5bdb950ea771c453e1b7c33c9e41ce53e2 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Sat, 27 Jun 2026 17:04:34 -0500 Subject: [PATCH] add extra case to waitForConnection --- internal/network/network.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/network/network.go b/internal/network/network.go index e2e3675..33784b3 100644 --- a/internal/network/network.go +++ b/internal/network/network.go @@ -524,22 +524,23 @@ func waitForConnection(dev gonm.DeviceWireless, ssid string, timeout time.Durati continue } - // NmDeviceStateActivated = 100, fully connected with IP - if state == gonm.NmDeviceStateActivated { - // Confirm it's actually the SSID we wanted + logger.Debug("network: device state %d, waiting...", state) + + switch state { + case gonm.NmDeviceStateActivated: current, err := CurrentNetwork() if err == nil && current == ssid { - logger.Info("network: fully connected to %q", ssid) + logger.Info("network: fully connected to %q (DHCP complete)", ssid) return nil } - } - // NmDeviceStateFailed = 120, NmDeviceStateDisconnected = 30 - if state == gonm.NmDeviceStateFailed { + case gonm.NmDeviceStateFailed: return fmt.Errorf("network: connection to %q failed (wrong password?)", ssid) + + case gonm.NmDeviceStateDisconnected: + return fmt.Errorf("network: connection to %q was rejected by the network", ssid) } - logger.Debug("network: device state %d, waiting...", state) time.Sleep(500 * time.Millisecond) } return fmt.Errorf("network: timed out waiting for connection to %q", ssid)