diff --git a/contrib/11netcfg b/contrib/11netcfg index db65f5a..158336b 100755 --- a/contrib/11netcfg +++ b/contrib/11netcfg @@ -1,32 +1,31 @@ #!/bin/bash -source /usr/lib/pm-utils/functions -source /etc/pm/config.d/netcfg +. "${PM_FUNCTIONS}" + +# Save state of specified daemon and stop it. +# +# By default stopservice has to do it by itself, but it has a bug and considers +# that ALL daemons are started). +stop_service() { + [ -f "/var/run/daemons/$1" ] && stopservice $1 +} suspend_netcfg() { - case $NETCFG_SUSPEND in - daemons) - stopservice net-profiles - stopservice net-auto-wired - stopservice net-auto-wireless - ;; - retain|*) - netcfg all-suspend - ;; - esac + # save state of all netcfg daemons and stop it + stop_service net-profiles + stop_service net-auto-wired + stop_service net-auto-wireless + # save network profiles that are not handled by any daemon + netcfg all-suspend } resume_netcfg() { - case $NETCFG_SUSPEND in - daemons) - restartservice net-profiles - restartservice net-auto-wired - restartservice net-auto-wireless - ;; - retain|*) - netcfg all-resume - ;; - esac + # resume network profiles that was not handled by any daemon + netcfg all-resume + # resume daemons was started before hibernate/suspend stop it + restartservice net-profiles + restartservice net-auto-wired + restartservice net-auto-wireless } if [ -x /usr/bin/netcfg2 ]; then