modules/freifunk: Fix a problem that happened when ipv6 was not enabled by adding checks

This commit is contained in:
Manuel Munz 2010-12-17 03:35:17 +00:00
parent 1a2165b0bd
commit 56bff936e7
2 changed files with 74 additions and 57 deletions

View file

@ -256,23 +256,33 @@ function public_status_json()
membuffers / 1024,
tostring(i18n.translate("buffered"))
)
local dr4 = sys.net.defaultroute()
local dr6 = sys.net.defaultroute6()
if dr6 then
def6 = {
gateway = dr6.nexthop:string(),
dest = dr6.dest:string(),
dev = dr6.device,
metr = dr6.metric }
end
if dr4 then
def4 = {
gateway = dr4.gateway:string(),
dest = dr4.dest:string(),
dev = dr4.device,
metr = dr4.metric }
end
rv[#rv+1] = {
time = os.date("%c"),
uptime = twa.date_format(tonumber(sys.uptime())),
load = string.format("%.2f, %.2f, %.2f", load1, load5, load15),
mem = mem,
defroutev4 = { gateway = dr4.gateway:string(),
dest = dr4.dest:string(),
dev = dr4.device,
metr = dr4.metric },
defroutev6 = { gateway = dr6.nexthop:string(),
dest = dr6.dest:string(),
dev = dr6.device,
metr = dr6.metric }
defroutev4 = def4,
defroutev6 = def6
}
luci.http.prepare_content("application/json")

View file

@ -133,59 +133,66 @@ local defroutev6 = sys.net.defaultroute6 ()
u.innerHTML = st[i].mem;
}
var u = document.getElementById('v4dst');
if (u)
{
u.innerHTML = st[i].defroutev4.dest;
}
var u = document.getElementById('v4gw');
if (u)
{
u.innerHTML = st[i].defroutev4.gateway;
}
var u = document.getElementById('v4dev');
if (u)
{
u.innerHTML = st[i].defroutev4.dev;
}
var u = document.getElementById('v4metr');
if (u)
{
u.innerHTML = st[i].defroutev4.metr;
}
var u = document.getElementById('v6dst');
if (u)
{
u.innerHTML = st[i].defroutev6.dest;
}
var u = document.getElementById('v6gw');
if (u)
{
u.innerHTML = st[i].defroutev6.gateway;
}
var u = document.getElementById('v6dev');
if (u)
{
u.innerHTML = st[i].defroutev6.dev;
}
var u = document.getElementById('v6metr');
if (u)
{
u.innerHTML = st[i].defroutev6.metr;
}
var u = document.getElementById('dyntime');
if (u)
{
u.innerHTML = st[i].time;
}
if (st[i].defroutev4)
{
var u = document.getElementById('v4dst');
if (u)
{
u.innerHTML = st[i].defroutev4.dest;
}
var u = document.getElementById('v4gw');
if (u)
{
u.innerHTML = st[i].defroutev4.gateway;
}
var u = document.getElementById('v4dev');
if (u)
{
u.innerHTML = st[i].defroutev4.dev;
}
var u = document.getElementById('v4metr');
if (u)
{
u.innerHTML = st[i].defroutev4.metr;
}
}
if (st[i].defroutev6)
{
var u = document.getElementById('v6dst');
if (u)
{
u.innerHTML = st[i].defroutev6.dest;
}
var u = document.getElementById('v6gw');
if (u)
{
u.innerHTML = st[i].defroutev6.gateway;
}
var u = document.getElementById('v6dev');
if (u)
{
u.innerHTML = st[i].defroutev6.dev;
}
var u = document.getElementById('v6metr');
if (u)
{
u.innerHTML = st[i].defroutev6.metr;
}
}
}
window.setTimeout(update_wifi_status, <%=interval%>);
}