#!/bin/sh # If we are running NetworkManager, tell it we are going to sleep. # TODO: Make NetworkManager smarter about how to handle sleep/resume # If we are asleep for less time than it takes for TCP to reset a # connection, and we are assigned the same IP on resume, we should # not break established connections. Apple can do this, and it is # rather nifty. . "${PM_FUNCTIONS}" suspend_nm() { # Tell NetworkManager to shut down networking dbus_send --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.sleep } resume_nm() { # Wake up NetworkManager and make it do a new connection dbus_send --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.wake } case "$1" in hibernate|suspend) suspend_nm ;; thaw|resume) resume_nm ;; *) exit $NA ;; esac