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