and added files
[bcm963xx.git] / userapps / opensource / ipsec-tools / src / racoon / samples / roadwarrior / client / phase1-down.sh
1 #!/bin/sh
2
3 #
4 # sa-down.sh local configuration for a new SA
5 #
6
7 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
8
9 case `uname -s` in
10 NetBSD)
11         DEFAULT_GW=`netstat -rn | awk '($1 == "default"){print $2}'`
12         ;;
13 Linux)
14         DEFAULT_GW=`netstat -rn | awk '($1 == "0.0.0.0"){print $2}'`
15         ;;
16 esac
17
18 echo $@
19 echo "LOCAL_ADDR = ${LOCAL_ADDR}"
20 echo "REMOTE_ADDR = ${REMOTE_ADDR}"
21 echo "DEFAULT_GW = ${DEFAULT_GW}"
22 echo "INTERNAL_ADDR4 = ${INTERNAL_ADDR4}"
23 echo "INTERNAL_DNS4 = ${INTERNAL_DNS4}"
24
25 echo ${INTERNAL_ADDR4} | grep '[0-9]' > /dev/null || exit 0
26 echo ${DEFAULT_GW} | grep '[0-9]' > /dev/null || exit 0
27
28 test -f /etc/resolv.conf.bak && cp /etc/resolv.conf.bak /etc/resolv.conf
29
30 case `uname -s` in
31 NetBSD)
32         if=`netstat -rn|awk '($1 == "default"){print $7}'`
33         ifconfig ${if} delete ${INTERNAL_ADDR4}
34         route delete default
35         route add default ${DEFAULT_GW} -ifa ${LOCAL_ADDR}
36         ;;
37 Linux)
38         if=`netstat -rn|awk '($1 == "0.0.0.0"){print $8}'`
39         route delete default
40         route delete ${REMOTE_ADDR}
41         ifconfig ${if}:1 del ${INTERNAL_ADDR4}
42         route add default gw ${DEFAULT_GW}
43
44         #
45         # XXX This is a workaround because Linux seems to ignore
46         # the deleteall commands below. This is bad because it flushes
47         # any SAD instead of flushing what needs to be flushed.
48         # Someone using Linux please fix it
49         #
50         setkey -F
51         ;;
52 esac
53
54 echo "
55 deleteall ${REMOTE_ADDR} ${LOCAL_ADDR} esp;
56 deleteall ${LOCAL_ADDR} ${REMOTE_ADDR} esp; 
57 spddelete ${INTERNAL_ADDR4}/32[any] 0.0.0.0/0[any] any
58         -P out ipsec esp/tunnel/${LOCAL_ADDR}-${REMOTE_ADDR}/require;
59 spddelete 0.0.0.0/0[any] ${INTERNAL_ADDR4}[any] any
60         -P in ipsec esp/tunnel/${REMOTE_ADDR}-${LOCAL_ADDR}/require;
61 " | setkey -c
62