#!/bin/zsh

# parametre = nom du tunnel

readwrite() {
	mount -wo remount /
	mount -wo remount /boot
}

readonly() {
	mount -ro remount /boot
	mount -ro remount /
}

update() {
	value=`echo $2|sed -e  's/\\./\\\\\\./g' -e 's/\\//\\\\\\//g'`
	(( sed -e "s/^\([	 ]*$1=\)\(.*\)/\1$value/" /etc/ipsectun.$tunnel.conf ) > /etc/ipsectun.$tunnel.conf.new) && mv /etc/ipsectun.$tunnel.conf.new /etc/ipsectun.$tunnel.conf
}

tunnel=$1
entry=`echo $1|tr '-' '_'`

. /sbin/menus/primitives

eval CFG_VPN_${entry}_LOC_ADDR=`grep "^[	 ]*right=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=`
eval CFG_VPN_${entry}_LOC_NET=`grep "^[	 ]*rightsubnet=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=|cut -f1 -d/`
eval CFG_VPN_${entry}_LOC_MASK=`grep "^[	 ]*rightsubnet=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=|cut -f2 -d/`
eval CFG_VPN_${entry}_LOC_GW=`grep "^[	 ]*rightnexthop=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=`

if [ -e /tmp/unsaved-vpnr-${tunnel} ]; then
	. /tmp/unsaved-vpnr-${tunnel}
fi

eval CFG_VPN_${entry}_REM_ADDR=`grep "^[	 ]*left=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=`
eval CFG_VPN_${entry}_REM_NET=`grep "^[	 ]*leftsubnet=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=|cut -f1 -d/`
eval CFG_VPN_${entry}_REM_MASK=`grep "^[	 ]*leftsubnet=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=|cut -f2 -d/`
eval CFG_VPN_${entry}_REM_GW=`grep "^[	 ]*leftnexthop=" /etc/ipsectun.$tunnel.conf |cut -f2 -d=`

if [ -e /tmp/unsaved-vpnl-${tunnel} ]; then
	. /tmp/unsaved-vpnl-${tunnel}
fi

readwrite

eval var1=$"CFG_VPN_${entry}_LOC_ADDR"
if [ ! -z $var1 ]; then
	#echo right=$var1
	update right $var1
fi

eval var1=$"CFG_VPN_${entry}_LOC_NET"
eval var2=$"CFG_VPN_${entry}_LOC_MASK"
if [ ! -z $var1 -a ! -z $var2 ]; then
	#echo rightsubnet=$var1/$var2
	update rightsubnet $var1/$var2
fi

eval var1=$"CFG_VPN_${entry}_LOC_GW"
if [ ! -z $var1 ]; then
	#echo rightnexthop=$var1
	update rightnexthop $var1
fi

eval var1=$"CFG_VPN_${entry}_REM_ADDR"
if [ ! -z $var1 ]; then
	#echo left=$var1
	update left $var1
fi

eval var1=$"CFG_VPN_${entry}_REM_NET"
eval var2=$"CFG_VPN_${entry}_REM_MASK"
if [ ! -z $var1 -a ! -z $var2 ]; then
	#echo leftsubnet=$var1/$var2
	update leftsubnet $var1/$var2
fi

eval var1=$"CFG_VPN_${entry}_REM_GW"
if [ ! -z $var1 ]; then
	#echo leftnexthop=$var1
	update leftnexthop $var1
fi

readonly

echo "# ${tunnel} setup saved" > /tmp/unsaved-vpnl-${tunnel}
echo "# ${tunnel} setup saved" > /tmp/unsaved-vpnr-${tunnel}

