From 31b4a28a70ccdd707820f2192b424dab1eb36e10 Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Wed, 10 Jun 2026 08:15:44 +0200 Subject: [PATCH] nixos/wireless: fix for multiple interfaces Closes issue #529889 --- .../services/networking/wpa_supplicant.nix | 2 +- nixos/tests/wpa_supplicant.nix | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 0e092de5e609..7c7df6688b99 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -127,7 +127,7 @@ let ] ++ lib.optionals cfg.userControlled [ # set up client sockets directory - "+${pkgs.coreutils}/bin/mkdir /run/wpa_supplicant/client" + "+${pkgs.coreutils}/bin/mkdir -p /run/wpa_supplicant/client" "+${pkgs.coreutils}/bin/chown wpa_supplicant:wpa_supplicant /run/wpa_supplicant/client" "+${pkgs.coreutils}/bin/chmod g=u /run/wpa_supplicant/client" ]; diff --git a/nixos/tests/wpa_supplicant.nix b/nixos/tests/wpa_supplicant.nix index 88b727ad4a69..02fdc6bb5b00 100644 --- a/nixos/tests/wpa_supplicant.nix +++ b/nixos/tests/wpa_supplicant.nix @@ -283,18 +283,22 @@ in enable = lib.mkOverride 0 true; userControlled = true; allowAuxiliaryImperativeNetworks = true; - interfaces = [ "wlan1" ]; + interfaces = [ + "wlan0" + "wlan1" + ]; }; }; testScript = '' wpa_cli = "sudo -u alice -g wpa_supplicant wpa_cli" - with subtest("Daemon is running and accepting connections"): - machine.wait_for_unit("wpa_supplicant-wlan1.service") - status = machine.wait_until_succeeds(f"{wpa_cli} -i wlan1 status") - assert "Failed to connect" not in status, \ - "Failed to connect to the daemon" + with subtest("Daemons are running and accepting connections"): + for iface in ["wlan0", "wlan1"]: + machine.wait_for_unit(f"wpa_supplicant-{iface}.service") + status = machine.wait_until_succeeds(f"{wpa_cli} -i {iface} status") + assert "Failed to connect" not in status, \ + f"Failed to connect to the daemon for {iface}" with subtest("Daemon can be configured imperatively"): machine.succeed(f"{wpa_cli} -i wlan1 add_network")