Create /var/run/iodine in init script if it doesn't exist; thanks to
authorgregor herrmann <gregoa@debian.org>
Thu, 26 Mar 2009 16:41:43 +0000 (16:41 -0000)
committergregor herrmann <gregoa@debian.org>
Thu, 26 Mar 2009 16:41:43 +0000 (16:41 -0000)
martin f krafft for the bug report (closes: #521259).

debian/changelog
debian/iodine.iodined.init

index 3eb662687e571bcc0627a2e8c9536938f00b8d9e..804c89937aacd1ab1cc519e42b9bb68b9c04d0ba 100644 (file)
@@ -2,6 +2,8 @@ iodine (0.5.1-2) UNRELEASED; urgency=low
 
   * (Re-)add a warning to README.Debian that both client and server needs to
     run the same protocol version (cf. #521260).
+  * Create /var/run/iodine in init script if it doesn't exist; thanks to
+    martin f krafft for the bug report (closes: #521259).
 
  -- gregor herrmann <gregoa@debian.org>  Thu, 26 Mar 2009 17:17:07 +0100
 
index cafec8ec259ffd643cbcaa74db5b4b9e4a232b7b..258c593bf9ce36075171a145b905561a7a584939 100644 (file)
@@ -22,6 +22,7 @@ DEFAULT=iodine
 DAEMON_ARGS=""
 PIDFILE=/var/run/$NAME.pid
 SCRIPTNAME=/etc/init.d/$NAME
+CHROOTDIR=/var/run/iodine
 
 # Exit if the package is not installed
 [ -x "$DAEMON" ] || exit 0
@@ -44,7 +45,7 @@ get_config() {
                exit 0
        else
                if [ -n "$IODINED_ARGS" ] && [ -n "$IODINED_PASSWORD" ] ; then
-                       DAEMON_ARGS="-u iodine -t /var/run/iodine -P $IODINED_PASSWORD $IODINED_ARGS"
+                       DAEMON_ARGS="-u iodine -t $CHROOTDIR -P $IODINED_PASSWORD $IODINED_ARGS"
                else
                        [ "$VERBOSE" != no ] && log_warning_msg "$NAME is not fully configured. Change this in /etc/default/$DEFAULT or run dpkg-reconfigure $DEFAULT."
                        exit 0
@@ -52,6 +53,16 @@ get_config() {
        fi
 }
 
+# chroot dir
+check_chrootdir() {
+       if [ -d "$CHROOTDIR" ] || mkdir -p "$CHROOTDIR" ; then
+               return 0
+       else
+               [ "$VERBOSE" != no ] && log_failure_msg "$CHROOTDIR does not exist and can't be created."
+               exit 0
+       fi
+}      
+
 #
 # Function that starts the daemon/service
 #
@@ -59,14 +70,16 @@ do_start()
 {
        # populate $DAEMON_ARGS
        get_config
+       # check CHROOTDIR
+       check_chrootdir
+       # 
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
                || return 1
-       start-stop-daemon --start --quiet --exec $DAEMON -- \
-               $DAEMON_ARGS \
+       start-stop-daemon --start --quiet --exec $DAEMON -- $DAEMON_ARGS \
                || return 2
        # Add code here, if necessary, that waits for the process to be ready
        # to handle requests from services started subsequently which depend