diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2008-06-02 01:49:51 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2008-06-02 01:49:51 +0000 |
commit | 9f4428eefca7e5f4400fcbba57a7185519631628 (patch) | |
tree | 5ad5a1705bf63d76fc6f3c053470c5080ba66152 /applications/luci-statistics/root/etc/init.d | |
parent | 4058aacd0635e1b585993e065974edb17329f014 (diff) |
* luci/statistics: add init script
Diffstat (limited to 'applications/luci-statistics/root/etc/init.d')
-rw-r--r-- | applications/luci-statistics/root/etc/init.d/luci_statistics | 95 |
1 files changed, 15 insertions, 80 deletions
diff --git a/applications/luci-statistics/root/etc/init.d/luci_statistics b/applications/luci-statistics/root/etc/init.d/luci_statistics index 20f7865fd..68a5cf97a 100644 --- a/applications/luci-statistics/root/etc/init.d/luci_statistics +++ b/applications/luci-statistics/root/etc/init.d/luci_statistics @@ -1,85 +1,20 @@ #!/bin/sh /etc/rc.common -START=70 - -iface_add() { - local cfg="$1" - - config_get net "$cfg" network - [ -n "$net" ] || return 0 - - config_get iface "$net" ifname - [ -n "$iface" ] || return 0 - iface="${iface%%:*}" - - config_get ipaddr "$net" ipaddr - [ -n "$ipaddr" ] || return 0 - - config_get netmask "$net" netmask - [ -n "$netmask" ] || return 0 - - eval "$(ipcalc.sh $ipaddr $netmask)" - - iptables -t nat -A luci_splash -i "$iface" -s "$NETWORK/$PREFIX" -j luci_splash_portal - iptables -t nat -A luci_splash_portal -i "$iface" -s "$NETWORK/$PREFIX" -d "$ipaddr" -p tcp -m multiport --dports 22,80,443 -j RETURN -} - -blacklist_add() { - local cfg="$1" - - config_get mac "$cfg" mac - [ -n "$mac" ] && iptables -t nat -A luci_splash_portal -m mac --mac-source "$mac" -j DROP -} - -whitelist_add() { - local cfg="$1" - - config_get mac "$cfg" mac - [ -n "$mac" ] && iptables -t nat -A luci_splash_portal -m mac --mac-source "$mac" -j RETURN -} +START=79 start() { - ### Read chains from config - include /lib/network - scan_interfaces - config_load luci_splash - - ### Create subchains - iptables -t nat -N luci_splash - iptables -t nat -N luci_splash_portal - iptables -t nat -N luci_splash_leases - - ### Build the main and portal rule - config_foreach blacklist_add blacklist - config_foreach whitelist_add whitelist - config_foreach iface_add iface - - ### Build the portal rule - iptables -t nat -A luci_splash_portal -p udp --dport 53 -j RETURN - iptables -t nat -A luci_splash_portal -j luci_splash_leases - - ### Build the leases rule - iptables -t nat -A luci_splash_leases -p tcp --dport 80 -j REDIRECT --to-ports 8082 - iptables -t nat -A luci_splash_leases -j DROP - - ### Start the splash httpd - httpd -c /etc/luci_splash_httpd.conf -p 8082 -h /usr/lib/luci-splash/htdocs - - ### Hook in the chain - iptables -t nat -A prerouting_rule -j luci_splash -} + ### replace shipped config with symlink + if [ ! -L /etc/collectd.conf ]; then + test -f /etc/collectd.conf && mv /etc/collectd.conf /etc/collectd.conf.bak + ln -s /var/etc/collectd.conf /etc/collectd.conf + fi -stop() { - ### Hook out the chain - iptables -t nat -D prerouting_rule -j luci_splash - - ### Clear subchains - iptables -t nat -F luci_splash_leases - iptables -t nat -F luci_splash_portal - iptables -t nat -F luci_splash - - ### Delete subchains - iptables -t nat -X luci_splash_leases - iptables -t nat -X luci_splash_portal - iptables -t nat -X luci_splash -} + ### create config + mkdir -p /var/etc + /usr/bin/stat-genconfig > /var/etc/collectd.conf + ### prepare rrdimg directory + if [ ! -L /www/rrdimg ]; then + imagepath="$(uci get luci_statistics.rrdtool.image_path)" + ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg + fi +} |