* 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>
|
||||
|
||||
<% for i, img in ipairs(images) do %>
|
||||
<img src="/img/<%=img%>" />
|
||||
<img src="/rrdimg/<%=img%>" />
|
||||
<% end %>
|
||||
|
||||
<%+footer%>
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue