Magellan Linux

Annotation of /trunk/openslp/slpd.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1443 - (hide annotations) (download)
Wed Jul 27 16:20:19 2011 UTC (12 years, 9 months ago) by niro
File size: 2582 byte(s)
-use rc_print() and rc_echo()
1 niro 840 #!/bin/sh
2     # $Header: /root/magellan-cvs/src/openslp/slpd.rc,v 1.1 2009-06-11 13:22:04 niro Exp $
3    
4     #%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k
5     #%start: 30
6     #%stop: 30
7    
8     #deps
9     #%needs:
10     #%before:
11     #%after:
12    
13     source /etc/conf.d/rc
14     source $rc_functions
15    
16     #
17     # Does nothing if a route exists that supports multicast traffic.
18     # If no routes supporting multicast traffic exists, the function
19     # tries to add one. A 0 is returned on success and a 1 on failure.
20     # One parameter must be passed in. This variable determins verbosity.
21     # If parameter is non-zero debugging will appear.
22     #
23     multicast_route_set()
24     {
25     PING_OPTIONS_1='-c1 -w1'
26     PING_OPTIONS_2='-c1 -i1'
27     MULTICAST_ADDRESS='239.255.255.253'
28     TMP_FILE=/tmp/route.check
29     PING_ERROR_NO_ROUTE='unreachable'
30    
31     MSG_FAILED_TO_FIND='Failed to Detect Multicast Route'
32     MSG_SUCCESS_ON_FIND='Multicast Route Enabled'
33     MSG_ADDING_ROUTE='Attempting to Add Multicast Route ...'
34     MSG_FAILED_TO_ADD=' FAILED - Route NOT Added.'
35     MSG_SUCCES_ON_ADD=' SUCCESS - Route Added.'
36    
37     CMD_GET_INTERFACE="netstat -i | awk 'BEGIN{}(NR>2)&&(!/^lo*/){print \$1}'"
38     CMD_ADD_ROUTE="route add -net 224.0.0.0 netmask 240.0.0.0"
39    
40     ping $PING_OPTIONS_1 $MULTICAST_ADDRESS 2> $TMP_FILE 1> /dev/null
41     if [ $? = 2 ]; then
42     ping $PING_OPTIONS_2 $MULTICAST_ADDRESS 2> $TMP_FILE 1> /dev/null
43     fi
44    
45     grep $PING_ERROR_NO_ROUTE $TMP_FILE > /dev/null 2>&1
46     err_unreachable_found=$?
47    
48     #If errors, add route. Otherwise, do nothing
49     if [ -s $TMP_FILE ] && [ $err_unreachable_found = 0 ]; then
50    
51     if [ $1 != 0 ]; then
52 niro 1443 rc_echo $MSG_FAILED_TO_FIND
53     rc_echo $MSG_ADDING_ROUTE
54 niro 840 fi
55    
56     $CMD_ADD_ROUTE `eval $CMD_GET_INTERFACE` > /dev/null 2>&1
57     retval=$?
58     if [ $1 != 0 ]; then
59    
60     if [ $retval = 0 ]; then
61 niro 1443 rc_echo $MSG_SUCCES_ON_ADD
62 niro 840 else
63 niro 1443 rc_echo $MSG_FAILED_TO_ADD
64 niro 840 fi
65     fi
66     else
67     if [ $1 != 0 ]; then
68 niro 1443 rc_echo -n $MSG_SUCCESS_ON_FIND
69 niro 840 fi
70     retval=0
71     fi
72    
73     rm -f $TMP_FILE # Clean up
74     return $retval
75     }
76    
77     checkconfig()
78     {
79     multicast_route_set 0
80     if [ $? -ne 0 ]
81     then
82 niro 1443 rc_echo "No route available for multicast traffic!"
83 niro 840 exit 1
84     fi
85     }
86    
87     case "$1" in
88     start)
89     checkconfig
90 niro 1443 rc_print "Starting slpd ..."
91 niro 840 start-stop-daemon --start --quiet --exec /usr/sbin/slpd --pidfile /var/run/slpd.pid
92     evaluate_retval
93    
94     update_svcstatus $1
95     splash svc_started "$(basename $0)" 0
96     ;;
97    
98     stop)
99 niro 1443 rc_print "Stopping slpd ..."
100 niro 840 start-stop-daemon --stop --quiet --pidfile /var/run/slpd.pid
101     evaluate_retval
102    
103     update_svcstatus $1
104     splash svc_stopped "$(basename $0)" 0
105     ;;
106    
107     restart)
108     $0 stop
109     sleep 1
110     $0 start
111     ;;
112    
113     *)
114 niro 1443 rc_echo "Usage: $0 {start|stop|restart}"
115 niro 840 exit 1
116     ;;
117     esac