packages: ipset/ipset.init - functions, add try-restart, reload, force reload...

glen glen at pld-linux.org
Wed Jul 21 07:25:07 CEST 2010


Author: glen                         Date: Wed Jul 21 05:25:07 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- functions, add try-restart,reload,force reload
- do not save ipset config on error;

---- Files affected:
packages/ipset:
   ipset.init (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: packages/ipset/ipset.init
diff -u packages/ipset/ipset.init:1.3 packages/ipset/ipset.init:1.4
--- packages/ipset/ipset.init:1.3	Tue Dec 11 10:47:20 2007
+++ packages/ipset/ipset.init	Wed Jul 21 07:25:02 2010
@@ -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 @@
 . /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 @@
   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
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/ipset/ipset.init?r1=1.3&r2=1.4&f=u



More information about the pld-cvs-commit mailing list