From cbfba813fe22b80e82bfa6fd5c10db6624130774 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 28 Apr 2014 20:10:49 +0200 Subject: wpa_supplicant: Restart when wlan devices (dis)appear --- nixos/modules/services/networking/wpa_supplicant.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'nixos/modules/services') diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix index 987b21da9ec9..771eeecd772b 100644 --- a/nixos/modules/services/networking/wpa_supplicant.nix +++ b/nixos/modules/services/networking/wpa_supplicant.nix @@ -90,11 +90,11 @@ in services.dbus.packages = [ pkgs.wpa_supplicant ]; + # FIXME: start a separate wpa_supplicant instance per interface. jobs.wpa_supplicant = { description = "WPA Supplicant"; wantedBy = [ "network.target" ]; - after = [ "systemd-udev-settle.service" ]; path = [ pkgs.wpa_supplicant ]; @@ -133,6 +133,12 @@ in assertions = [{ assertion = !cfg.userControlled.enable || cfg.interfaces != []; message = "user controlled wpa_supplicant needs explicit networking.wireless.interfaces";}]; + # Restart wpa_supplicant when a wlan device appears or disappears. + services.udev.extraRules = + '' + ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="${config.systemd.package}/bin/systemctl try-restart wpa_supplicant.service" + ''; + }; } -- cgit 1.4.1