[packages] new package: rinetd - internet redirection server
[openwrt/svn-archive/archive.git] / net / rinetd / files / rinetd.init
1 #!/bin/sh /etc/rc.common
2 # rinetd init script
3 # Copyright (C) 2009 OpenWrt.org
4
5 START=80
6
7 SSD=start-stop-daemon
8 BIN=/usr/sbin/rinetd
9 CFG=/var/etc/rinetd.conf
10 PID=/var/run/rinetd.pid
11
12 common_add() {
13 local cfg="$1"
14 local logfile logcommon allow deny match
15
16 config_get logfile "$cfg" logfile
17 config_get_bool logcommon "$cfg" logcommon 0
18
19 [ -n "$logfile" ] && {
20 echo "logfile $logfile" >> $CFG
21 [ "$logcommon" -gt 0 ] && echo "logcommon" >> $CFG
22 }
23
24 config_get allow "$cfg" allow
25 config_get deny "$cfg" deny
26
27 for match in $allow; do
28 echo "allow $match" >> $CFG
29 done
30
31 for match in $deny; do
32 echo "deny $match" >> $CFG
33 done
34 }
35
36 forward_add() {
37 local cfg="$1"
38 local bindaddr bindport connaddr connport
39
40 config_get bindaddr "$cfg" bindaddress
41 config_get bindport "$cfg" bindport
42 config_get connaddr "$cfg" connectaddress
43 config_get connport "$cfg" connectport
44
45 [ -n "$bindaddr" ] && [ -n "$connaddr" ] && \
46 [ -n "$bindport" ] && [ -n "$connport" ] && \
47 echo "$bindaddr $bindport $connaddr $connport" >> $CFG
48 }
49
50 start() {
51 mkdir -p /var/etc /var/run
52
53 echo "# This file is autogenerated, use /etc/config/rinetd" > $CFG
54 config_load rinetd
55 config_foreach common_add common
56 config_foreach forward_add forwarding
57
58 $SSD -S -q -x $BIN -- -c $CFG
59 }
60
61 stop() {
62 $SSD -K -q -p $PID -x $BIN
63 rm -f $PID $CFG
64 }
65
66 reload() {
67 $SSD -K -q -p $PID -x $BIN -s 1
68 }