X-Git-Url: http://git.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=applications%2Fluci-splash%2Froot%2Fusr%2Fsbin%2Fluci-splash;fp=applications%2Fluci-splash%2Froot%2Fusr%2Fsbin%2Fluci-splash;h=675e6cb97a3e0daa14c10db433ba9bf318a9d8e6;hp=91921182b61802e776352b746aff440208eaddba;hb=6010725e024ce2bcbfaafab1a613403708678c5c;hpb=87b7651ef2c98e0bdc62947e731c9f3eb1e50441 diff --git a/applications/luci-splash/root/usr/sbin/luci-splash b/applications/luci-splash/root/usr/sbin/luci-splash index 91921182b6..675e6cb97a 100755 --- a/applications/luci-splash/root/usr/sbin/luci-splash +++ b/applications/luci-splash/root/usr/sbin/luci-splash @@ -576,9 +576,22 @@ function sync() -- Clean state file uci:load("luci_splash_leases") uci:revert("luci_splash_leases") - + + + -- Get the mac addresses of current leases + local macs = get_known_macs() + local arpcache = get_arpcache() + + local blackwhitelist = uci:get_all("luci_splash") + local whitelist_total = 0 + local whitelist_online = 0 + local blacklist_total = 0 + local blacklist_online = 0 + + -- For all leases local leasecount = 0 + local leases_online = 0 for k, v in pairs(leases) do if v[".type"] == "lease" then if os.difftime(time, tonumber(v.start)) > leasetime then @@ -586,6 +599,12 @@ function sync() remove_lease_rule(v.mac, v.ipaddr, v.device, tonumber(v.limit_up), tonumber(v.limit_down)) else leasecount = leasecount + 1 + + -- only count leases_online for connected clients + if arpcache[v.mac] then + leases_online = leases_online + 1 + end + -- Rewrite state uci:section("luci_splash_leases", "lease", convert_mac_to_secname(v.mac), { mac = v.mac, @@ -599,16 +618,6 @@ function sync() end end - -- Get the mac addresses of current leases - local macs = get_known_macs() - local arpcache = get_arpcache() - - local blackwhitelist = uci:get_all("luci_splash") - local whitelist_total = 0 - local whitelist_online = 0 - local blacklist_total = 0 - local blacklist_online = 0 - -- Whitelist, Blacklist for _, s in utl.spairs(blackwhitelist, function(a,b) return blackwhitelist[a][".type"] > blackwhitelist[b][".type"] end @@ -633,7 +642,10 @@ function sync() end end - update_stats(leasecount, whitelist_online, whitelist_total, blacklist_online, blacklist_total) + -- ToDo: + -- include a new field "leases_online" in stats to differ between active clients and leases: + -- update_stats(leasecount, leases_online, whitelist_online, whitelist_total, blacklist_online, blacklist_total) later: + update_stats(leases_online, whitelist_online, whitelist_total, blacklist_online, blacklist_total) uci:save("luci_splash_leases")