#!/bin/bash

. /usr/lib/pm-utils/functions

suspend_modules()
{
	[ -z "$SUSPEND_MODULES" ] && return 0
	for x in $SUSPEND_MODULES ; do
		modunload $x
	done
	return 0
}

resume_modules()
{
	[ -z "$RESUME_MODULES" ] && return 0
	for x in $RESUME_MODULES ; do
		modprobe $x
	done
}

unload_network()
{
	for x in /sys/class/net/*; do
	if [ -e $x/device/driver ]; then
		NETMODULES="$NETMODULES $(basename $(readlink $x/device/driver) | tr [:upper:\] [:lower:])"
	fi
	done
	for x in $NETMODULES; do
		modunload $x;
	done
	if [ -d /sys/module/ndiswrapper ]; then
	        modunload ndiswrapper;
	fi
}

case "$1" in
	hibernate|suspend)
		suspend_modules
		unload_network
		;;
	thaw|resume)
		resume_modules
                invoke-rc.d networking restart
		;;
	*)
		;;
esac

exit $?
