Annotation of /trunk/openslp/slpd.rc
Parent Directory | Revision Log
Revision 1443 -
(hide annotations)
(download)
Wed Jul 27 16:20:19 2011 UTC (13 years, 2 months ago) by niro
File size: 2582 byte(s)
Wed Jul 27 16:20:19 2011 UTC (13 years, 2 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 |