Contents of /trunk/openslp/slpd.rc
Parent Directory | Revision Log
Revision 840 -
(show annotations)
(download)
Thu Jun 11 13:22:04 2009 UTC (15 years, 3 months ago) by niro
File size: 2587 byte(s)
Thu Jun 11 13:22:04 2009 UTC (15 years, 3 months ago) by niro
File size: 2587 byte(s)
-added initscript for slp
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 | echo $MSG_FAILED_TO_FIND |
53 | 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 | echo $MSG_SUCCES_ON_ADD |
62 | else |
63 | echo $MSG_FAILED_TO_ADD |
64 | fi |
65 | fi |
66 | else |
67 | if [ $1 != 0 ]; then |
68 | 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 | echo "No route available for multicast traffic!" |
83 | exit 1 |
84 | fi |
85 | } |
86 | |
87 | case "$1" in |
88 | start) |
89 | checkconfig |
90 | echo -e ${COLOREDSTAR}"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 | echo -e ${COLOREDSTAR}"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 | echo "Usage: $0 {start|stop|restart}" |
115 | exit 1 |
116 | ;; |
117 | esac |