Author: mkwik
Date: Sun Apr  1 10:54:15 2012
New Revision: 33512
URL: https://nixos.org/websvn/nix/?rev=33512&sc=1

Log:
dhcpcd: ip-up and ip-down emit more info (like wifi access point)

useful to only start certain services (like vpn) on certain networks

Modified:
   nixos/trunk/modules/services/networking/dhcpcd.nix

Modified: nixos/trunk/modules/services/networking/dhcpcd.nix
==============================================================================
--- nixos/trunk/modules/services/networking/dhcpcd.nix  Sun Apr  1 10:54:13 
2012        (r33511)
+++ nixos/trunk/modules/services/networking/dhcpcd.nix  Sun Apr  1 10:54:15 
2012        (r33512)
@@ -40,7 +40,13 @@
     ''
       #exec >> /var/log/dhcpcd 2>&1
       #set -x
-    
+
+      params="IFACE=$interface REASON=$reason"
+
+      # only works when interface is wireless and wpa_supplicant has a control 
socket
+      # but we allow it to fail silently
+      wifiparams=$(/var/run/current-system/sw/sbin/wpa_cli -i$interface status 
2>/dev/null | grep ssid | sed 's|^b|B|;s|ssid|SSID|' | xargs)
+
       if [ "$reason" = BOUND -o "$reason" = REBOOT ]; then
           # Restart ntpd.  (The "ip-up" event below will trigger the
           # restart.)  We need to restart it to make sure that it will
@@ -50,11 +56,11 @@
           # it"), so we silently lose time synchronisation.
           ${config.system.build.upstart}/sbin/initctl stop ntpd
 
-          ${config.system.build.upstart}/sbin/initctl emit -n ip-up 
IFACE=$interface
+          ${config.system.build.upstart}/sbin/initctl emit -n ip-up "$params 
$wifiparams"
       fi
 
-          ${config.system.build.upstart}/sbin/initctl emit -n ip-down 
IFACE=$interface
       if [ "$reason" = EXPIRE -o "$reason" = RELEASE -o "$reason" = NOCARRIER] 
; then
+          ${config.system.build.upstart}/sbin/initctl emit -n ip-down "$params 
$wifiparams"
       fi
     '';
 
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to