]> git.pld-linux.org Git - packages/ipset.git/blob - ipset.init
- functions, add try-restart,reload,force reload
[packages/ipset.git] / ipset.init
1 #!/bin/sh
2 #
3 # chkconfig: 2345 07 93
4 # description: Automates administration of IP sets.
5 #
6 # config: /etc/sysconfig/ipset
7 #
8 # $Id$
9
10 IPSET_CONFIG=/etc/sysconfig/ipset
11 if [ ! -f $IPSET_CONFIG ]; then
12         case "$1" in
13         start|restart|force-reload)
14                 exit 0
15         ;;
16         esac
17 fi
18
19 . /etc/rc.d/init.d/functions
20
21 start() {
22         if [ ! -f $IPSET_CONFIG ]; then
23                 return
24         fi
25
26         show "Applying ipset rules"
27         /usr/sbin/ipset -X
28         /usr/sbin/ipset -R < $IPSET_CONFIG
29         RETVAL=$?
30         if [ $RETVAL = 0 ]; then
31                 ok
32         else
33                 fail
34         fi
35         touch /var/lock/subsys/ipset
36 }
37
38 stop() {
39         if [ ! -f /var/lock/subsys/ipset ]; then
40                 return
41         fi
42
43         show "Resetting ipset rules"
44         /usr/sbin/ipset -X && ok || fail
45         rm -f /var/lock/subsys/ipset
46 }
47
48 condrestart() {
49         if [ ! -f /var/lock/subsys/ipset ]; then
50                 RETVAL=$1
51                 return
52         fi
53
54         stop
55         start
56 }
57
58 save() {
59         show "Saving current rules to %s" $IPSET_CONFIG
60         /usr/sbin/ipset -S > $IPSET_CONFIG.tmp
61         RETVAL=$?
62         if [ $RETVAL = 0 ]; then
63                 cat $IPSET_CONFIG.tmp > $IPSET_CONFIG
64                 chmod 600 $IPSET_CONFIG
65                 ok
66         else
67                 fail
68         fi
69         rm -f $IPSET_CONFIG.tmp
70 }
71
72 status() {
73         /usr/sbin/ipset -L --sorted --numeric
74         RETVAL=$?
75 }
76
77 RETVAL=0
78 case "$1" in
79   start)
80         start
81         ;;
82   stop)
83         stop
84         ;;
85   restart|reload|force-reload)
86         start
87         ;;
88   try-restart)
89         condrestart 0
90         ;;
91   save)
92         save
93         ;;
94   status)
95         status
96         ;;
97   *)
98         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|save|status}"
99         exit 3
100 esac
101
102 exit $RETVAL
This page took 0.119911 seconds and 4 git commands to generate.