From 90f1dbe548533f2bc284f8a055a43200906790ac Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 4 Mar 2007 00:40:59 +0000 Subject: [PATCH] * Set some wireless settings (ESSID, WEP key). svn path=/nixos/trunk/; revision=8163 --- system/upstart.nix | 2 +- upstart-jobs/network-interfaces.nix | 34 +++++++++++++++++++++++------ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/system/upstart.nix b/system/upstart.nix index 626e82fcd0c..fc694eefc13 100644 --- a/system/upstart.nix +++ b/system/upstart.nix @@ -60,7 +60,7 @@ import ../upstart-jobs/gather.nix { # Network interfaces. (import ../upstart-jobs/network-interfaces.nix { - inherit (pkgs) nettools kernel module_init_tools; + inherit (pkgs) nettools kernel module_init_tools wirelesstools; nameservers = config.get ["networking" "nameservers"]; defaultGateway = config.get ["networking" "defaultGateway"]; interfaces = config.get ["networking" "interfaces"]; diff --git a/upstart-jobs/network-interfaces.nix b/upstart-jobs/network-interfaces.nix index 5e85401422c..66548b1354d 100644 --- a/upstart-jobs/network-interfaces.nix +++ b/upstart-jobs/network-interfaces.nix @@ -1,5 +1,5 @@ # !!! Don't like it that I have to pass the kernel here. -{ nettools, kernel, module_init_tools +{ nettools, kernel, module_init_tools, wirelesstools , nameservers, defaultGateway, interfaces }: @@ -7,8 +7,10 @@ let # !!! use XML names = map (i: i.name) interfaces; - ipAddresses = map (i: i.ipAddress) interfaces; + ipAddresses = map (i: if i ? ipAddress then i.ipAddress else "dhcp") interfaces; subnetMasks = map (i: if i ? subnetMask then i.subnetMask else "default") interfaces; + essids = map (i: if i ? essid then i.essid else "default") interfaces; + wepKeys = map (i: if i ? wepKey then i.wepKey else "nokey") interfaces; in @@ -33,17 +35,35 @@ start script names=(${toString names}) ipAddresses=(${toString ipAddresses}) subnetMasks=(${toString subnetMasks}) + essids=(${toString essids}) + wepKeys=(${toString wepKeys}) for ((n = 0; n < \${#names[*]}; n++)); do name=\${names[$n]} ipAddress=\${ipAddresses[$n]} subnetMask=\${subnetMasks[$n]} - echo \"Configuring interface $name...\" - extraFlags= - if test \"$subnetMask\" != default; then - extraFlags=\"$extraFlags netmask $subnetMask\" + essid=\${essids[$n]} + wepKey=\${wepKeys[$n]} + + # Set wireless networking stuff. + if test \"$essid\" != dhcp; then + ${wirelesstools}/sbin/iwconfig \"$name\" essid \"$essid\" fi - ${nettools}/sbin/ifconfig \"$name\" \"$ipAddress\" $extraFlags || true + + if test \"$wepKey\" != nokey; then + ${wirelesstools}/sbin/iwconfig \"$name\" key \"$(cat \"$wepKey\")\" + fi + + # Set IP address / netmask. + if test \"$ipAddress\" != dhcp; then + echo \"Configuring interface $name...\" + extraFlags= + if test \"$subnetMask\" != default; then + extraFlags=\"$extraFlags netmask $subnetMask\" + fi + ${nettools}/sbin/ifconfig \"$name\" \"$ipAddress\" $extraFlags || true + fi + done # Set the nameservers.