Second try...
[project/luci.git] / applications / luci-olsr / luasrc / controller / olsr.lua
index 1eede44..577f596 100644 (file)
@@ -45,15 +45,18 @@ function action_index()
        end
        
        local function compare(a, b)
-               if tonumber(a.ETX) == 0 then
+               local c = tonumber(a.ETX)
+               local d = tonumber(b.ETX)
+               
+               if not c or c == 0 then
                        return false
                end
                
-               if tonumber(b.ETX) == 0 then
+               if not d or d == 0 then
                        return true
                end
                
-               return tonumber(a.ETX) < tonumber(b.ETX)
+               return c < d
        end
        
        table.sort(data.Links, compare)
@@ -70,15 +73,18 @@ function action_routes()
        end
        
        local function compare(a, b)
-               if tonumber(a.ETX) == 0 then
+               local c = tonumber(a.ETX)
+               local d = tonumber(b.ETX)
+               
+               if not c or c == 0 then
                        return false
                end
                
-               if tonumber(b.ETX) == 0 then
+               if not d or d == 0 then
                        return true
                end
                
-               return tonumber(a.ETX) < tonumber(b.ETX)
+               return c < d
        end
        
        table.sort(data.Routes, compare)
@@ -167,6 +173,13 @@ function fetch_txtinfo(otable)
                        for k, key in pairs(keys) do
                                data[name][j][key] = fields[k] 
                        end
+                       
+                       if data[name][j].Linkcost then
+                               data[name][j].LinkQuality,
+                               data[name][j].NLQ,
+                               data[name][j].ETX =
+                                data[name][j].Linkcost:match("(.*)/(.*)\t(.*)")
+                       end
                end
        end