Add $remote_fs to Required-{Start,Stop} in initscript.
[anytun.git] / etc / init.d / anytun
index d0299d4..6905c67 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          anytun
-# Required-Start:    $network $named $syslog
-# Required-Stop:     
+# Required-Start:    $remote_fs $network $named $syslog
+# Required-Stop:     $remote_fs
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Start anycast tunneling daemon at boot time
@@ -16,6 +16,7 @@ NAME=anytun
 DESC=anytun
 CONFIG_DIR=/etc/anytun
 VARCONFIG_DIR=/var/run/anytun-controld
+VARRUN_DIR=/var/run/$NAME/
 
 test -x $DAEMON || exit 0
 
@@ -33,8 +34,9 @@ start_vpn () {
     if [ -n "$CHROOTDIR" ] ; then
       test -d $CHROOTDIR || mkdir -p $CHROOTDIR
     fi
+    test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR
     DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed  's/^/--/' | tr '\n' ' '`
-    $DAEMON --write-pid /var/run/anytun.$NAME.pid $POSTUP \
+    $DAEMON --write-pid $VARRUN_DIR/$NAME.pid $POSTUP \
       $DAEMONOPTS $DAEMONARG || STATUS="FAILED"
   else
     STATUS="no config found"
@@ -53,12 +55,13 @@ start_configd () {
     test -d $VARCONFIG_DIR || mkdir -p $VARCONFIG_DIR
     chmod 700 $VARCONFIG_DIR
     rm -f $VARCONFIG_DIR/$NAME 2>/dev/null
+    KDPRF=`sed 's/#.*//'  <  $CONFIG_DIR/$NAME/config | grep -e 'kd-prf' | sed  's/^/ --/' | xargs echo`
     for CLIENTNAME in `ls $CONFIG_DIR/$NAME/conf.d`; do
       echo -n " ($CLIENTNAME)"
       DAEMONARG=`sed 's/#.*//'  <  $CONFIG_DIR/$NAME/conf.d/$CLIENTNAME | grep -e '\w' | sed  's/^/ --/' | xargs echo`
-      $ANYTUNCONFIG $DAEMONARG >> $VARCONFIG_DIR/$NAME
+      $ANYTUNCONFIG $DAEMONARG $CIPHER $AUTHALGO $KDPRF >> $VARCONFIG_DIR/$NAME
     done
-    CONTROLHOST=`sed 's/#.*//'  <  $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed  's/^/ --/'`
+    CONTROLHOST=`sed 's/#.*//'  <  $CONFIG_DIR/$NAME/config | grep -e 'control-host' | sed  's/^/ --/' | xargs echo`
     $CONTROLDAEMON -f $VARCONFIG_DIR/$NAME $DAEMONOPTS $CONTROLHOST \
       --write-pid $VARCONFIG_DIR/$NAME.pid
     # rm -f $VARCONFIG_DIR/$NAME
@@ -66,7 +69,7 @@ start_configd () {
 }
 stop_configd () {
   if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
-    echo -n " ($NAME)"
+    echo -n " ($NAME-controlld)"
     kill `cat $VARCONFIG_DIR/$NAME.pid` || true
     rm $VARCONFIG_DIR/$NAME.pid
   fi 
@@ -99,8 +102,8 @@ case "$1" in
   stop)
   echo -n "Stoping $DESC:"
   if test -z "$2" ; then
-    for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
-      NAME=`echo $PIDFILE | cut -c17-`
+    for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
+      NAME=`basename $PIDFILE`
       NAME=${NAME%%.pid}
       echo -n " $NAME"
       stop_vpn
@@ -108,9 +111,9 @@ case "$1" in
   else
     while shift ; do
       [ -z "$1" ] && break
-      if test -e /var/run/anytun.$1.pid ; then
-        PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
-        NAME=`echo $PIDFILE | cut -c17-`
+      if test -e $VARRUN_DIR/$1.pid ; then
+        PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
+        NAME=`basename $PIDFILE`
         NAME=${NAME%%.pid}
         echo -n " $NAME"
         stop_vpn
@@ -124,8 +127,8 @@ case "$1" in
   reload)
   echo -n "Reloading $DESC:"
   if test -z "$2" ; then
-    for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
-      NAME=`echo $PIDFILE | cut -c17-`
+    for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
+      NAME=`basename $PIDFILE`
       NAME=${NAME%%.pid}
       echo -n " $NAME"
       if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
@@ -139,9 +142,9 @@ case "$1" in
   else
     while shift ; do
       [ -z "$1" ] && break
-      if test -e /var/run/anytun.$1.pid ; then
-        PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
-        NAME=`echo $PIDFILE | cut -c17-`
+      if test -e $VARRUN_DIR/$1.pid ; then
+        PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
+        NAME=`basename $PIDFILE`
         NAME=${NAME%%.pid}
         echo -n " $NAME"
         if [ -d $CONFIG_DIR/$NAME/conf.d ] ; then
@@ -161,8 +164,8 @@ case "$1" in
   force-reload)
   echo -n "Restarting $DESC:"
   if test -z "$2" ; then
-    for PIDFILE in `ls /var/run/anytun.*.pid 2> /dev/null`; do
-      NAME=`echo $PIDFILE | cut -c17-`
+    for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do
+      NAME=`basename $PIDFILE`
       NAME=${NAME%%.pid}
       echo -n " $NAME"
       stop_vpn
@@ -172,9 +175,9 @@ case "$1" in
   else
     while shift ; do
       [ -z "$1" ] && break
-      if test -e /var/run/anytun.$1.pid ; then
-        PIDFILE=`ls /var/run/anytun.$1.pid 2> /dev/null`
-        NAME=`echo $PIDFILE | cut -c17-`
+      if test -e $VARRUN_DIR/$1.pid ; then
+        PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null`
+        NAME=`basename $PIDFILE`
         NAME=${NAME%%.pid}
         echo -n " $NAME"
         stop_vpn