From b0947bd594475341cbd0eb35be1fa9cb49082923 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Sat, 27 Jun 2026 16:51:18 -0500 Subject: [PATCH 1/3] Fix bugs in WiFi page --- internal/page/wifiSetupPage.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/page/wifiSetupPage.go b/internal/page/wifiSetupPage.go index 23abd7a..e6755d4 100644 --- a/internal/page/wifiSetupPage.go +++ b/internal/page/wifiSetupPage.go @@ -123,6 +123,7 @@ func (p *WiFiSetupPage) startScan() { logger.Error("wifi: failed to start scan: %v", err) p.status = wifiStatusError p.statusMessage = "Failed to start network scan. No Wi-Fi adapter found." + p.rebuildStatusTexture() } } @@ -183,7 +184,7 @@ func (p *WiFiSetupPage) handleNavKey(sym sdl.Keycode) { return } selected := p.networks[p.selectedIndex].Net - p.selectedNet = &selected + p.selectedNet = &p.networks[p.selectedIndex].Net p.connectError = "" if selected.Security != network.SecurityOpen { From 8567cd5bdb950ea771c453e1b7c33c9e41ce53e2 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Sat, 27 Jun 2026 17:04:34 -0500 Subject: [PATCH 2/3] 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) From 3bcfce261763e4ee553b0d6a21dc423f93e5c6c2 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Sat, 27 Jun 2026 17:06:14 -0500 Subject: [PATCH 3/3] use logger instead of printf --- internal/network/network.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/network/network.go b/internal/network/network.go index 33784b3..c0c75af 100644 --- a/internal/network/network.go +++ b/internal/network/network.go @@ -39,7 +39,7 @@ func init() { var err error nm, err = gonm.NewNetworkManager() if err != nil { - fmt.Printf("network: failed to connect to NetworkManager: %v\n", err) + logger.Error("network: failed to connect to NetworkManager: %v", err) } }