summaryrefslogtreecommitdiffstats
path: root/contrib/pm-utils.handler
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pm-utils.handler')
-rwxr-xr-xcontrib/pm-utils.handler62
1 files changed, 62 insertions, 0 deletions
diff --git a/contrib/pm-utils.handler b/contrib/pm-utils.handler
new file mode 100755
index 0000000..f369a6b
--- /dev/null
+++ b/contrib/pm-utils.handler
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+. /usr/lib/pm-utils/functions
+
+[[ -f /usr/lib/network/network ]] || exit $NA
+. /usr/lib/network/network
+
+auto_resume()
+{
+ all_resume
+ sleep 2
+ # if didn't successfully resume wifi, and running net-auto daemon, then restart the daemon
+ if [[ -f /var/run/daemons/net-auto && -x /usr/bin/netcfg-auto-wireless ]]; then
+ if ! check_iface "$1" >/dev/null; then # ret=1 when iface down and available
+ /usr/bin/netcfg-auto-wireless "$1"
+ fi
+ fi
+}
+
+
+case "$1" in
+ hibernate|suspend_hybrid|suspend)
+ report_notify "suspending all interfaces..."
+ interface_suspend all
+ ;;
+ thaw|resume)
+ if "$CONN_DIR/wireless" query wlan0 enabled; then
+ report_notify "resuming all interfaces..."
+ auto_resume wlan0
+ else
+ report_notify "resuming all interfaces except wireless..."
+ all_resume wlan0
+ fi
+ ;;
+ radio_off)
+ report_notify "suspending wireless interface..."
+ interface_suspend wlan0 no
+ set_iface disabled wlan0
+ bring_interface forcedown wlan0
+ ;;
+ radio_on)
+ report_notify "resuming wireless interface..."
+ auto_resume wlan0
+ if [ -x /etc/pm/power.d/??wifi ]; then
+ /usr/bin/on_ac_power # this is in pm-utils
+ case $? in
+ 0) # on ac
+ /etc/pm/power.d/??wifi false
+ ;;
+ 1) # on battery
+ /etc/pm/power.d/??wifi true
+ ;;
+ esac
+ fi
+ ;;
+ *)
+ ;;
+esac
+
+exit $?
+
+# vim: ft=sh ts=4 et sw=4: