Rearrange output of luci.sys.wifi.*, luci.sys.net.conntrack
authorSteven Barth <steven@midlink.org>
Fri, 17 Oct 2008 21:56:21 +0000 (21:56 +0000)
committerSteven Barth <steven@midlink.org>
Fri, 17 Oct 2008 21:56:21 +0000 (21:56 +0000)
libs/sys/luasrc/sys.lua

index c271dee86b8a4ad5bbeb154d8f7abfc3eb8ccfb3..e8b5e2c3a7e0c9f5e967df3eb14a78e0700a00e9 100644 (file)
@@ -265,9 +265,9 @@ function net.conntrack()
        local connt = {}
        if luci.fs.access("/proc/net/nf_conntrack") then
                for line in io.lines("/proc/net/nf_conntrack") do
-                       local entry = _parse_mixed_record(line, " +")
-                       entry.layer3 = entry[1]
-                       entry.layer4 = entry[2]
+                       local entry, flags = _parse_mixed_record(line, " +")
+                       entry.layer3 = flags[1]
+                       entry.layer4 = flags[2]
                        for i=1, #entry do
                                entry[i] = nil
                        end
@@ -276,9 +276,9 @@ function net.conntrack()
                end
        elseif luci.fs.access("/proc/net/ip_conntrack") then
                for line in io.lines("/proc/net/ip_conntrack") do
-                       local entry = _parse_mixed_record(line, " +")
+                       local entry, flags = _parse_mixed_record(line, " +")
                        entry.layer3 = "ipv4"
-                       entry.layer4 = entry[1]
+                       entry.layer4 = flags[1]
                        for i=1, #entry do
                                entry[i] = nil
                        end
@@ -533,7 +533,11 @@ function wifi.getiwconfig()
                local k = l:match("^(.-) ")
                l = l:gsub("^(.-) +", "", 1)
                if k then
-                       iwc[k] = _parse_mixed_record(l)
+                       local entry, flags = _parse_mixed_record(l)
+                       if entry then
+                               entry.flags = flags
+                       end
+                       iwc[k] = entry
                end
        end
 
@@ -557,7 +561,11 @@ function wifi.iwscan(iface)
                                c = c:gsub("^(.-)- ", "", 1)
                                c = luci.util.split(c, "\n", 7)
                                c = table.concat(c, "\n", 1)
-                               table.insert(iws[k], _parse_mixed_record(c))
+                               local entry, flags = _parse_mixed_record(c)
+                               if entry then
+                                       entry.flags = flags
+                               end
+                               table.insert(iws[k], entry)
                        end
                end
        end
@@ -653,6 +661,7 @@ end
 function _parse_mixed_record(cnt, delimiter)
        delimiter = delimiter or "  "
        local data = {}
+       local flags = {}
 
        for i, l in pairs(luci.util.split(luci.util.trim(cnt), "\n")) do
                for j, f in pairs(luci.util.split(luci.util.trim(l), delimiter, nil, true)) do
@@ -660,7 +669,7 @@ function _parse_mixed_record(cnt, delimiter)
 
             if k then
                                if x == "" then
-                                       table.insert(data, k)
+                                       table.insert(flags, k)
                                else
                        data[k] = v
                                end
@@ -668,5 +677,5 @@ function _parse_mixed_record(cnt, delimiter)
        end
        end
 
-    return data
+    return data, flags
 end