]>
Commit | Line | Data |
---|---|---|
1d058f32 | 1 | #!/bin/sh |
2 | ########################################################################## | |
3 | # Copyright (c) 2001, Cisco Systems, All Rights Reserved | |
4 | ########################################################################### | |
5 | # | |
6 | # File: vpnclient_init | |
7 | # Date: 04/23/2001 | |
8 | # | |
9 | ########################################################################### | |
10 | # | |
11 | # chkconfig: 345 85 85 | |
12 | # description: Startup script for the vpn client. Version 4.6.00 (0045) | |
13 | # | |
14 | ########################################################################### | |
15 | # Source function library. | |
16 | VPNCLIENT="/opt/cisco-vpnclient/bin/vpnclient" | |
17 | VPNDEV="cipsec0" | |
18 | VPNMOD=cisco_ipsec | |
19 | case `uname -r` in | |
20 | 2.[56].*) | |
21 | VPNMOD_FILE="${VPNMOD}.ko" | |
22 | ;; | |
23 | *) | |
24 | VPNMOD_FILE="$VPNMOD" | |
25 | ;; | |
26 | esac | |
27 | ||
28 | WHOAMI=`id | sed -e 's/(.*//'` | |
29 | ||
30 | # See how we were called. | |
31 | case "$1" in | |
32 | start) | |
33 | echo -n "Starting ${VPNCLIENT}: " | |
34 | if [ "$WHOAMI" != "uid=0" ] ; then | |
35 | echo "Failed (super user access required)" | |
36 | exit 1 | |
37 | fi | |
38 | /sbin/lsmod | grep -q "${VPNMOD}" | |
39 | if [ "$?" = "0" ] ; then | |
40 | echo "module ${VPNMOD} is already running. Use restart instead." | |
41 | exit 1 | |
42 | fi | |
43 | ||
44 | if [ -f /etc/resolv.conf.vpnbackup ]; then | |
45 | echo "restoring /etc/resolv.conf" | |
46 | mv /etc/resolv.conf.vpnbackup /etc/resolv.conf | |
47 | fi | |
48 | if [ -d /lib/modules/preferred ]; then | |
49 | PC=/lib/modules/preferred/CiscoVPN | |
50 | else | |
df0a4d63 | 51 | PC=/lib/modules/`uname -r`/misc |
1d058f32 | 52 | fi |
53 | if [ -d $PC ] ; then | |
54 | /sbin/insmod ${PC}/${VPNMOD_FILE} | |
55 | if [ "$?" != "0" ] ; then | |
56 | echo "Failed (insmod)" | |
57 | exit 1 | |
58 | fi | |
59 | else | |
60 | echo "module directory $PC not found." | |
61 | exit 1 | |
62 | fi | |
63 | case "`uname -r`" in | |
64 | 2.6.*) | |
65 | ;; | |
66 | 2.5.*) | |
67 | ;; | |
68 | 2.4.*) | |
69 | ;; | |
70 | 2.2.*) | |
71 | ;; | |
72 | 2.0.*) | |
73 | # | |
74 | # This is only needed due to a bug in 2.0.x kernels that affects | |
75 | # arp lookups. | |
76 | # | |
77 | ifconfig $VPNDEV 222.222.222.222 ; | |
78 | if [ "$?" != "0" ] ; then | |
79 | echo "Failed (ifconfig)" | |
80 | /sbin/rmmod ${VPNMOD} | |
81 | exit 1 | |
82 | fi | |
83 | ;; | |
84 | *) | |
85 | echo "Failed (unsupported Linux version)" | |
86 | /sbin/rmmod ${VPNMOD} | |
87 | exit 1 | |
88 | ;; | |
89 | esac | |
90 | ||
91 | echo "Done" | |
92 | ;; | |
93 | stop) | |
94 | echo -n "Shutting down ${VPNCLIENT}: " | |
95 | if [ "$WHOAMI" != "uid=0" ] ; then | |
96 | echo "Failed (super user access required)" | |
97 | exit 1 | |
98 | fi | |
99 | killall cvpnd > /dev/null 2>&1 | |
100 | ||
101 | /sbin/lsmod | grep -q "${VPNMOD}" | |
102 | if [ "$?" != "0" ] ; then | |
103 | echo "module ${VPNMOD} is not running." | |
104 | exit 1 | |
105 | fi | |
106 | /sbin/ifconfig $VPNDEV down | |
107 | if [ "$?" != "0" ] ; then | |
108 | echo "Failed (ifconfig)" | |
109 | exit 1 | |
110 | fi | |
111 | /sbin/rmmod ${VPNMOD} | |
112 | if [ "$?" != "0" ] ; then | |
113 | echo "Failed (rmmod)" | |
114 | exit 1 | |
115 | fi | |
116 | echo "Done" | |
117 | ;; | |
118 | status) | |
119 | /sbin/lsmod | egrep 'Module' | |
120 | /sbin/lsmod | egrep "${VPNMOD}" | |
121 | if [ "$?" != "0" ] ; then | |
122 | echo | |
123 | echo "Status Failed (lsmod ${VPNMOD}) - The VPN module is not loaded." | |
124 | fi | |
125 | echo | |
126 | /sbin/ifconfig $VPNDEV | |
127 | if [ "$?" != "0" ] ; then | |
128 | echo | |
129 | echo "Status Failed (ifconfig ${VPNDEV}) - The virtual interface is not present." | |
130 | exit 1 | |
131 | fi | |
132 | ;; | |
133 | restart|reload) | |
134 | $0 stop | |
135 | $0 start | |
136 | ;; | |
137 | *) | |
138 | echo "Usage: $0 {start|stop|restart|reload|status}" | |
139 | exit 1 | |
140 | esac | |
141 | ||
142 | exit 0 |