summaryrefslogtreecommitdiffhomepage
path: root/modules/freifunk
diff options
context:
space:
mode:
authorManuel Munz <freifunk@somakoma.de>2010-12-17 03:35:17 +0000
committerManuel Munz <freifunk@somakoma.de>2010-12-17 03:35:17 +0000
commit56bff936e759d85cd6de765b1f4cf4f485497ab8 (patch)
tree0d810345f33960f269eba1f266455e471ea773e1 /modules/freifunk
parent1a2165b0bd10694db696daa79ea1e388ecae4ef2 (diff)
modules/freifunk: Fix a problem that happened when ipv6 was not enabled by adding checks
Diffstat (limited to 'modules/freifunk')
-rw-r--r--modules/freifunk/luasrc/controller/freifunk/freifunk.lua30
-rw-r--r--modules/freifunk/luasrc/view/freifunk/public_status.htm93
2 files changed, 70 insertions, 53 deletions
diff --git a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
index f4f9b97c0d..db4e00c1e6 100644
--- a/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
+++ b/modules/freifunk/luasrc/controller/freifunk/freifunk.lua
@@ -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")
diff --git a/modules/freifunk/luasrc/view/freifunk/public_status.htm b/modules/freifunk/luasrc/view/freifunk/public_status.htm
index 5cfc0c72d5..94ca2cd21e 100644
--- a/modules/freifunk/luasrc/view/freifunk/public_status.htm
+++ b/modules/freifunk/luasrc/view/freifunk/public_status.htm
@@ -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');
+ var u = document.getElementById('dyntime');
if (u)
{
- u.innerHTML = st[i].defroutev6.gateway;
+ u.innerHTML = st[i].time;
}
- var u = document.getElementById('v6dev');
- if (u)
+ if (st[i].defroutev4)
{
- u.innerHTML = st[i].defroutev6.dev;
+ 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('v6metr');
- if (u)
+ if (st[i].defroutev6)
{
- u.innerHTML = st[i].defroutev6.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;
- }
}
window.setTimeout(update_wifi_status, <%=interval%>);
}