packages/rinetd: use new service functions
[packages.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 }