From e216ce07dfeffc2ce330a93a3533ae2e0cc52853 Mon Sep 17 00:00:00 2001 From: Mathijs Kwik Date: Sun, 1 Apr 2012 10:54:15 +0000 Subject: [PATCH] dhcpcd: ip-up and ip-down emit more info (like wifi access point) useful to only start certain services (like vpn) on certain networks svn path=/nixos/trunk/; revision=33512 --- modules/services/networking/dhcpcd.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/services/networking/dhcpcd.nix b/modules/services/networking/dhcpcd.nix index 9e0e571a005f..408e49e7945f 100644 --- a/modules/services/networking/dhcpcd.nix +++ b/modules/services/networking/dhcpcd.nix @@ -40,7 +40,13 @@ let '' #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 @@ let # 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 '';