From 276a93867c21d709af69eab5bfeaded36ad36d51 Mon Sep 17 00:00:00 2001
From: Manuel Munz <freifunk@somakoma.de>
Date: Tue, 26 Mar 2013 10:30:41 +0000
Subject: [PATCH] applications/luci-olsr: Fix overview page for ipv4 or ipv6
 only

---
 .../luci-olsr/luasrc/controller/olsr.lua        | 10 +++++++++-
 .../luasrc/view/status-olsr/overview.htm        | 17 ++++++++---------
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/applications/luci-olsr/luasrc/controller/olsr.lua b/applications/luci-olsr/luasrc/controller/olsr.lua
index fd616ab63..20bf25ba1 100644
--- a/applications/luci-olsr/luasrc/controller/olsr.lua
+++ b/applications/luci-olsr/luasrc/controller/olsr.lua
@@ -108,8 +108,16 @@ function action_json()
 
         local jsonreq4 = utl.exec("echo /status | nc 127.0.0.1 9090")
         local jsonreq6 = utl.exec("echo /status | nc ::1 9090")
-
 	http.prepare_content("application/json")
+
+	if #jsonreq4 < 1 then
+		jsonreq4 = "{}"
+	end
+
+	if #jsonreq6 < 1 then
+		jsonreq6 = "{}"
+	end
+
 	http.write("{v4:" .. jsonreq4 .. ", v6:" .. jsonreq6 .. "}")
 end
 
diff --git a/applications/luci-olsr/luasrc/view/status-olsr/overview.htm b/applications/luci-olsr/luasrc/view/status-olsr/overview.htm
index 3af5490d1..6d8eca874 100644
--- a/applications/luci-olsr/luasrc/view/status-olsr/overview.htm
+++ b/applications/luci-olsr/luasrc/view/status-olsr/overview.htm
@@ -72,7 +72,6 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 			} else if (info.v6.config.olsrdVersion != undefined) {
 				version = info.v6.config.olsrdVersion
 				date = info.v6.config.olsrdBuildDate
-
 			} else {
 				version = 'unknown'
 				date = 'unknown'
@@ -81,10 +80,10 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 
 		if (e = document.getElementById('nr_neigh'))
 			var neigh = 0;
-			if (info.v4.links.length != undefined) {
+			if (info.v4.links != undefined) {
 				neigh = neigh + info.v4.links.length
 			}
-			if (info.v6.links.length != undefined) {
+			if (info.v6.links != undefined) {
 				neigh = neigh + info.v6.links.length
 			}
 			e.innerHTML = neigh;
@@ -92,10 +91,10 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 
 		if (e = document.getElementById('nr_hna'))
 			var hna = 0;
-			if (info.v4.hna.length != undefined) {
+			if (info.v4.hna != undefined) {
 				hna = hna + info.v4.hna.length
 			}
-			if (info.v6.hna.length != undefined) {
+			if (info.v6.hna != undefined) {
 				hna = hna + info.v6.hna.length
 			}
 			e.innerHTML = hna;
@@ -103,10 +102,10 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 
 		if (e = document.getElementById('nr_ifaces'))
 			var nrint = 0
-			if (info.v4.interfaces.length != undefined) {
+			if (info.v4.interfaces != undefined) {
 				nrint = nrint + info.v4.interfaces.length
 			}
-			if (info.v6.interfaces.length != undefined) {
+			if (info.v6.interfaces != undefined) {
 				nrint = nrint + info.v6.interfaces.length
 			}
 			e.innerHTML = nrint
@@ -125,7 +124,7 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 				return false;
 			}
 
-			if (info.v4.topology.length != undefined) {
+			if (info.v4.topology != undefined) {
 				topo = topo + info.v4.topology.length;
 				for (var i = 0; i < info.v4.topology.length; i++) {
 					var destip = info.v4.topology[i].destinationIP
@@ -135,7 +134,7 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { },
 				}
 			}
 
-			if (info.v6.topology.length != undefined) {
+			if (info.v6.topology != undefined) {
 				topo = topo + info.v6.topology.length
 				for (var i = 0; i < info.v6.topology.length; i++) {
 					var destip = info.v6.topology[i].destinationIP
-- 
2.25.1