<%# LuCI - Lua Configuration Interface Copyright 2008 Steven Barth Copyright 2008-2011 Jo-Philipp Wich Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 $Id$ -%> <% require "luci.fs" require "luci.tools.status" local has_ipv6 = luci.fs.access("/proc/net/ipv6_route") local has_dhcp = luci.fs.access("/etc/config/dhcp") local has_wifi = luci.fs.stat("/etc/config/wireless") has_wifi = has_wifi and has_wifi.size > 0 if luci.http.formvalue("status") == "1" then local ntm = require "luci.model.network".init() local dr4 = luci.sys.net.defaultroute() local dr6 = luci.sys.net.defaultroute6() local wan, wan6 if dr4 and dr4.device then wan = ntm:get_interface(dr4.device) wan = wan and wan:get_network() end if dr6 and dr6.device then wan6 = ntm:get_interface(dr6.device) wan6 = wan6 and wan6:get_network() end local _, _, memtotal, memcached, membuffers, memfree = luci.sys.sysinfo() local conn_count = tonumber(( luci.sys.exec("wc -l /proc/net/nf_conntrack") or luci.sys.exec("wc -l /proc/net/ip_conntrack") or ""):match("%d+")) or 0 local conn_max = tonumber(( luci.sys.exec("sysctl net.nf_conntrack_max") or luci.sys.exec("sysctl net.ipv4.netfilter.ip_conntrack_max") or ""):match("%d+")) or 4096 local rv = { uptime = luci.sys.uptime(), localtime = os.date(), loadavg = { luci.sys.loadavg() }, memtotal = memtotal, memcached = memcached, membuffers = membuffers, memfree = memfree, connmax = conn_max, conncount = conn_count, leases = luci.tools.status.dhcp_leases(), wifinets = luci.tools.status.wifi_networks() } if wan then rv.wan = { ipaddr = wan:ipaddr(), gwaddr = wan:gwaddr(), netmask = wan:netmask(), dns = wan:dnsaddrs(), expires = wan:expires(), uptime = wan:uptime(), proto = wan:proto(), ifname = wan:ifname(), link = wan:adminlink() } end if wan6 then rv.wan6 = { ip6addr = wan6:ip6addr(), gw6addr = wan6:gw6addr(), dns = wan6:dns6addrs(), uptime = wan6:uptime(), ifname = wan6:ifname(), link = wan6:adminlink() } end luci.http.prepare_content("application/json") luci.http.write_json(rv) return end local system, model = luci.sys.sysinfo() -%> <%+header%>

<%:Status%>

<%:System%>
<%:Router Name%><%=luci.sys.hostname() or "?"%>
<%:Router Model%><%=pcdata(model or "?")%>
<%:Firmware Version%> <%=pcdata(luci.version.distname)%> <%=pcdata(luci.version.distversion)%> / <%=pcdata(luci.version.luciname)%> (<%=pcdata(luci.version.luciversion)%>)
<%:Kernel Version%><%=luci.sys.exec("uname -r")%>
<%:Local Time%>-
<%:Uptime%>-
<%:Load Average%>-
<%:Memory%>
<%:Total Available%>-
<%:Free%>-
<%:Cached%>-
<%:Buffered%>-
<%:Network%> <% if has_ipv6 then %> <% end %>
<%:IPv4 WAN Status%>

?
<%:Collecting data...%>
<%:IPv6 WAN Status%>

?
<%:Collecting data...%>
<%:Active Connections%>-
<% if has_dhcp then %>
<%:DHCP Leases%>
<%:Hostname%> <%:IPv4-Address%> <%:MAC-Address%> <%:Leasetime remaining%>

<%:Collecting data...%>
<% end %> <% if has_wifi then %>
<%:Wireless%>
<%:Collecting data...%>
<%:Associated Stations%>
  <%:MAC-Address%> <%:Network%> <%:Signal%> <%:Noise%>

<%:Collecting data...%>
<% end %> <%- require "luci.util" require "nixio.fs" local plugins = nixio.fs.dir(luci.util.libpath() .. "/view/admin_status/index") if plugins then local inc for inc in plugins do if inc:match("%.htm$") then include("admin_status/index/" .. inc:gsub("%.htm$", "")) end end end -%> <%+footer%>