Magellan Linux

Contents of /trunk/openslp/slpd.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1443 - (show 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 #!/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 rc_echo $MSG_FAILED_TO_FIND
53 rc_echo $MSG_ADDING_ROUTE
54 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 rc_echo $MSG_SUCCES_ON_ADD
62 else
63 rc_echo $MSG_FAILED_TO_ADD
64 fi
65 fi
66 else
67 if [ $1 != 0 ]; then
68 rc_echo -n $MSG_SUCCESS_ON_FIND
69 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 rc_echo "No route available for multicast traffic!"
83 exit 1
84 fi
85 }
86
87 case "$1" in
88 start)
89 checkconfig
90 rc_print "Starting slpd ..."
91 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 rc_print "Stopping slpd ..."
100 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 rc_echo "Usage: $0 {start|stop|restart}"
115 exit 1
116 ;;
117 esac