* luci/statistics: add init script
This commit is contained in:
parent
4058aacd06
commit
9f4428eefc
2 changed files with 16 additions and 81 deletions
|
@ -3,7 +3,7 @@
|
||||||
<h1>Statistik</h1>
|
<h1>Statistik</h1>
|
||||||
|
|
||||||
<% for i, img in ipairs(images) do %>
|
<% for i, img in ipairs(images) do %>
|
||||||
<img src="/img/<%=img%>" />
|
<img src="/rrdimg/<%=img%>" />
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%+footer%>
|
<%+footer%>
|
||||||
|
|
|
@ -1,85 +1,20 @@
|
||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
START=70
|
START=79
|
||||||
|
|
||||||
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() {
|
start() {
|
||||||
### Read chains from config
|
### replace shipped config with symlink
|
||||||
include /lib/network
|
if [ ! -L /etc/collectd.conf ]; then
|
||||||
scan_interfaces
|
test -f /etc/collectd.conf && mv /etc/collectd.conf /etc/collectd.conf.bak
|
||||||
config_load luci_splash
|
ln -s /var/etc/collectd.conf /etc/collectd.conf
|
||||||
|
fi
|
||||||
|
|
||||||
### Create subchains
|
### create config
|
||||||
iptables -t nat -N luci_splash
|
mkdir -p /var/etc
|
||||||
iptables -t nat -N luci_splash_portal
|
/usr/bin/stat-genconfig > /var/etc/collectd.conf
|
||||||
iptables -t nat -N luci_splash_leases
|
|
||||||
|
|
||||||
### Build the main and portal rule
|
### prepare rrdimg directory
|
||||||
config_foreach blacklist_add blacklist
|
if [ ! -L /www/rrdimg ]; then
|
||||||
config_foreach whitelist_add whitelist
|
imagepath="$(uci get luci_statistics.rrdtool.image_path)"
|
||||||
config_foreach iface_add iface
|
ln -s ${imagepath:-/tmp/rrdimg}/ /www/rrdimg
|
||||||
|
fi
|
||||||
### 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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue