#!/bin/sh

. /etc/rc.common

ID="/usr/bin/id"
WHOAMI=`$ID|sed -e 's/(.*//'`
SYSTEM=`uname -sr`

# if we are on older systems, we have to use kmodstat, newer we have to
# use kextstat.

case "$SYSTEM" in

    *5.*)
    STAT_CMD=kmodstat
    ;;
    *)
    STAT_CMD=kextstat
    ;;
esac

# no arguemnts, print usage.

case $# in
0)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac

#
# Configure interfaces
##

ConsoleMessage "Configuring Cisco Systems VPN resources."

STATUS=`$STAT_CMD | grep com.cisco.nke.ipsec`

##
# make sure we are root.
##

if [ "$WHOAMI" != "uid=0" ] ; then
        echo "^GSorry, you need super user access to run this script."
        exit 1
fi

##
# load the IPSec NKE here.
##

if [ -f /var/run/resolv.conf.vpnbackup ]; then
    echo "++ restoring resolv.conf"
    mv /var/run/resolv.conf.vpnbackup /var/run/resolv.conf
fi

case $1 in

    start)
        if [ -d /System/Library/Extensions/CiscoVPN.kext ]; then
	    ConsoleMessage "Loading Cisco Systems IPSec NKE..."

            case $STATUS in 
                *com.cisco*)
                 echo " ++ IPSec NKE extension already loaded, use restart to reload module."
                 echo ""
                 ;;
                 *)
	            kextload /System/Library/Extensions/CiscoVPN.kext
                    STATUS=`$STAT_CMD | grep com.cisco.nke.ipsec`

                case $STATUS in
                    *com.cisco*)
                     echo "Cisco Systems IPSec NKE loaded succesfully."
                     echo ""
                     ;;
                    *)
                     echo "Unable to load IPSec NKE."
                     echo ""
                     ;;
                esac
            esac
        fi
        ;;
  


    stop)
        if [ -d /System/Library/Extensions/CiscoVPN.kext ]; then
            ConsoleMessage "Unloading Cisco Systems IPSec NKE..."

            case $STATUS in
                *com.cisco*)
                 
                    kextunload /System/Library/Extensions/CiscoVPN.kext
                    STATUS=`$STAT_CMD | grep com.cisco.nke.ipsec`

                case $STATUS in
                    *com.cisco*)
                     echo " ++ Unable to unload Cisco Systems IPSec NKE."
                     echo ""
                     ;;
                    *)
                     echo "Cisco Systems IPSec NKE unloaded succesfully."
                     echo ""
                     ;; 
                esac
                ;;

                *)
                echo " ++ Cisco Systems IPSec NKE, not loaded."
                echo "" 
            esac
        fi
        ;;

 
    restart)
        ConsoleMessage "Restarting Cisco Systems IPSec NKE extension..."

        case $STATUS in
           *com.cisco*)
         
               echo "  ==> Unloading Cisco Systems IPSec NKE..." 
               kextunload /System/Library/Extensions/CiscoVPN.kext
               ;;

           *)
               ;;
        esac

        echo "  ==> Loading Cisco Systems IPSec NKE..."
        kextload /System/Library/Extensions/CiscoVPN.kext
        STATUS=`$STAT_CMD | grep com.cisco.nke.ipsec`

            case $STATUS in
                *com.cisco.nke*)
                 echo "Cisco Systems IPSec NKE restarted succesfully."
                 echo ""
                 ;;
                *)
                 echo "Unable to restart IPSec NKE."
                 echo ""
                 ;;
            esac

        ;;

    status)

	RES=`$STAT_CMD | grep com.cisco.nke.ipsec`
	echo $RES
        ;;

    *)
	echo "usage: CiscoVPN {start|stop|restart|status} "
        ;;

esac

