|
40 | 40 | default = []; |
41 | 41 | example = [ "wlan0" "wlan1" ]; |
42 | 42 | description = '' |
43 | | - The interfaces <command>wpa_supplicant</command> will use. If empty, it will |
44 | | - automatically use all wireless interfaces. |
| 43 | + The interfaces <command>wpa_supplicant</command> will use. |
45 | 44 | ''; |
46 | 45 | }; |
47 | 46 |
|
@@ -220,7 +219,14 @@ in { |
220 | 219 | }; |
221 | 220 |
|
222 | 221 | config = mkIf cfg.enable { |
223 | | - assertions = flip mapAttrsToList cfg.networks (name: cfg: { |
| 222 | + assertions = [ |
| 223 | + { assertion = cfg.interfaces != []; |
| 224 | + message = '' |
| 225 | + No network interfaces for wpa_supplicant have been configured. |
| 226 | + Please, specify at least one using networking.wireless.interfaces. |
| 227 | + ''; |
| 228 | + } |
| 229 | + ] ++ flip mapAttrsToList cfg.networks (name: cfg: { |
224 | 230 | assertion = with cfg; count (x: x != null) [ psk pskRaw auth ] <= 1; |
225 | 231 | message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive''; |
226 | 232 | }); |
@@ -255,20 +261,7 @@ in { |
255 | 261 | then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead." |
256 | 262 | fi |
257 | 263 | iface_args="-s -u -D${cfg.driver} ${configStr}" |
258 | | - ${if ifaces == [] then '' |
259 | | - for i in $(cd /sys/class/net && echo *); do |
260 | | - DEVTYPE= |
261 | | - UEVENT_PATH=/sys/class/net/$i/uevent |
262 | | - if [ -e "$UEVENT_PATH" ]; then |
263 | | - source "$UEVENT_PATH" |
264 | | - if [ "$DEVTYPE" = "wlan" -o -e /sys/class/net/$i/wireless ]; then |
265 | | - args+="''${args:+ -N} -i$i $iface_args" |
266 | | - fi |
267 | | - fi |
268 | | - done |
269 | | - '' else '' |
270 | | - args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" |
271 | | - ''} |
| 264 | + args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}" |
272 | 265 | exec wpa_supplicant $args |
273 | 266 | ''; |
274 | 267 | }; |
|
0 commit comments