* luci/statistics: add init script

This commit is contained in:
Jo-Philipp Wich 2008-06-02 01:49:51 +00:00
parent 4058aacd06
commit 9f4428eefc
2 changed files with 16 additions and 81 deletions

View file

@ -3,7 +3,7 @@
<h1>Statistik</h1>
<% for i, img in ipairs(images) do %>
<img src="/img/<%=img%>" />
<img src="/rrdimg/<%=img%>" />
<% end %>
<%+footer%>

View file

@ -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
}