]> git.pld-linux.org Git - packages/ipset.git/commitdiff
- functions, add try-restart,reload,force reload
authorElan Ruusamäe <glen@pld-linux.org>
Wed, 21 Jul 2010 05:25:02 +0000 (05:25 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- do not save ipset config on error;

Changed files:
    ipset.init -> 1.4

ipset.init

index 2fe2342b53542f5d50ade3873fe60ab803ee158c..7389f7870a9c8e3aa2bf57b443bc78991a8ad799 100644 (file)
@@ -1,8 +1,11 @@
 #!/bin/sh
-
+#
 # chkconfig: 2345 07 93
 # description: Automates administration of IP sets.
+#
 # config: /etc/sysconfig/ipset
+#
+# $Id$
 
 IPSET_CONFIG=/etc/sysconfig/ipset
 if [ ! -f $IPSET_CONFIG ]; then
@@ -16,26 +19,61 @@ fi
 . /etc/rc.d/init.d/functions
 
 start() {
-       if [ -f $IPSET_CONFIG ]; then
-               show "Applying ipset rules"
-               /usr/sbin/ipset -X
-               /usr/sbin/ipset -R < $IPSET_CONFIG
-               RETVAL=$?
-               if [ $RETVAL = 0 ]; then
-                       ok
-               else
-                       fail
-               fi
-               touch /var/lock/subsys/ipset
+       if [ ! -f $IPSET_CONFIG ]; then
+               return
        fi
+
+       show "Applying ipset rules"
+       /usr/sbin/ipset -X
+       /usr/sbin/ipset -R < $IPSET_CONFIG
+       RETVAL=$?
+       if [ $RETVAL = 0 ]; then
+               ok
+       else
+               fail
+       fi
+       touch /var/lock/subsys/ipset
 }
 
 stop() {
+       if [ ! -f /var/lock/subsys/ipset ]; then
+               return
+       fi
+
        show "Resetting ipset rules"
        /usr/sbin/ipset -X && ok || fail
        rm -f /var/lock/subsys/ipset
 }
 
+condrestart() {
+       if [ ! -f /var/lock/subsys/ipset ]; then
+               RETVAL=$1
+               return
+       fi
+
+       stop
+       start
+}
+
+save() {
+       show "Saving current rules to %s" $IPSET_CONFIG
+       /usr/sbin/ipset -S > $IPSET_CONFIG.tmp
+       RETVAL=$?
+       if [ $RETVAL = 0 ]; then
+               cat $IPSET_CONFIG.tmp > $IPSET_CONFIG
+               chmod 600 $IPSET_CONFIG
+               ok
+       else
+               fail
+       fi
+       rm -f $IPSET_CONFIG.tmp
+}
+
+status() {
+       /usr/sbin/ipset -L --sorted --numeric
+       RETVAL=$?
+}
+
 RETVAL=0
 case "$1" in
   start)
@@ -44,27 +82,20 @@ case "$1" in
   stop)
        stop
        ;;
-  restart|force-reload)
+  restart|reload|force-reload)
        start
        ;;
-  status)
-       /usr/sbin/ipset -L --sorted --numeric
-       exit $?
+  try-restart)
+       condrestart 0
        ;;
   save)
-       show "Saving current rules to %s" $IPSET_CONFIG
-       touch $IPSET_CONFIG
-       chmod 600 $IPSET_CONFIG
-       /usr/sbin/ipset -S > $IPSET_CONFIG
-       RETVAL=$?
-       if [ $RETVAL = 0 ]; then
-               ok
-       else
-               fail
-       fi
+       save
+       ;;
+  status)
+       status
        ;;
   *)
-       msg_usage "$0 {start|stop|restart|force-reload|status|save}"
+       msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|save|status}"
        exit 3
 esac
 
This page took 0.05313 seconds and 4 git commands to generate.