summaryrefslogtreecommitdiff
path: root/pm/sleep.d/55NetworkManager
blob: f3c6df5e5c39d6a9b4f440f11fc30696e053e824 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/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
        printf "Having NetworkManager put all interaces to sleep..."
	dbus_send --system                         \
		--dest=org.freedesktop.NetworkManager  \
		/org/freedesktop/NetworkManager        \
		org.freedesktop.NetworkManager.sleep && \
	    echo Done. || echo Failed.
}

resume_nm()
{
	# Wake up NetworkManager and make it do a new connection
	printf "Having NetworkManager wake interfaces back up..."
        dbus_send --system                        \
		--dest=org.freedesktop.NetworkManager \
		/org/freedesktop/NetworkManager       \
		org.freedesktop.NetworkManager.wake && \
	    echo Done. || echo Failed.
}

case "$1" in
	hibernate|suspend)
		suspend_nm
		;;
	thaw|resume)
		resume_nm
		;;
	*) exit $NA
		;;
esac