diff options
author | Jo-Philipp Wich <jo@mein.io> | 2017-11-10 13:06:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-10 13:06:10 +0100 |
commit | b2274e5d6d27cdd0819d9e35058ebcd2cb8b55f5 (patch) | |
tree | f7d9aef2fe1ec73c86e68b61887c8d4752924882 | |
parent | 37f4a3b90c56fea8d06833092ce6a5e2e2c2d1d1 (diff) | |
parent | dd0b5cfd16eaea51b3653a91a1e136898d685849 (diff) |
Merge pull request #980 from NvrBst/pull-request-upnp_description
luci-app-upnp: Adding and displaying "Description" to upnp data
-rw-r--r-- | applications/luci-app-upnp/luasrc/controller/upnp.lua | 15 | ||||
-rw-r--r-- | applications/luci-app-upnp/luasrc/view/upnp_status.htm | 4 |
2 files changed, 17 insertions, 2 deletions
diff --git a/applications/luci-app-upnp/luasrc/controller/upnp.lua b/applications/luci-app-upnp/luasrc/controller/upnp.lua index c60b7c496..e485708f0 100644 --- a/applications/luci-app-upnp/luasrc/controller/upnp.lua +++ b/applications/luci-app-upnp/luasrc/controller/upnp.lua @@ -19,8 +19,12 @@ function index() end function act_status() + local uci = luci.model.uci.cursor() + local lease_file = uci:get("upnpd", "config", "upnp_lease_file") + local ipt = io.popen("iptables --line-numbers -t nat -xnvL MINIUPNPD 2>/dev/null") if ipt then + local upnpf = lease_file and io.open(lease_file, "r") local fwd = { } while true do local ln = ipt:read("*l") @@ -29,23 +33,32 @@ function act_status() elseif ln:match("^%d+") then local num, proto, extport, intaddr, intport = ln:match("^(%d+).-([a-z]+).-dpt:(%d+) to:(%S-):(%d+)") + local descr = "" if num and proto and extport and intaddr and intport then num = tonumber(num) extport = tonumber(extport) intport = tonumber(intport) + + if upnpf then + local uln = upnpf:read("*l") + if uln then descr = uln:match(string.format("^%s:%d:%s:%d:%%d*:(.*)$", proto:upper(), extport, intaddr, intport)) end + if not descr then descr = "" end + end fwd[#fwd+1] = { num = num, proto = proto:upper(), extport = extport, intaddr = intaddr, - intport = intport + intport = intport, + descr = descr } end end end + if upnpf then upnpf:close() end ipt:close() luci.http.prepare_content("application/json") diff --git a/applications/luci-app-upnp/luasrc/view/upnp_status.htm b/applications/luci-app-upnp/luasrc/view/upnp_status.htm index e358dcded..89fdb5e21 100644 --- a/applications/luci-app-upnp/luasrc/view/upnp_status.htm +++ b/applications/luci-app-upnp/luasrc/view/upnp_status.htm @@ -29,9 +29,10 @@ tr.insertCell(-1).innerHTML = st[i].extport; tr.insertCell(-1).innerHTML = st[i].intaddr; tr.insertCell(-1).innerHTML = st[i].intport; + tr.insertCell(-1).innerHTML = st[i].descr; tr.insertCell(-1).innerHTML = String.format( - '<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete Redirect%>" onclick="upnp_delete_fwd(%d)" />', + '<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete%>" onclick="upnp_delete_fwd(%d)" />', st[i].num ); } @@ -58,6 +59,7 @@ <th class="cbi-section-table-cell"><%:External Port%></th> <th class="cbi-section-table-cell"><%:Client Address%></th> <th class="cbi-section-table-cell"><%:Client Port%></th> + <th class="cbi-section-table-cell"><%:Description%></th> <th class="cbi-section-table-cell"> </th> </tr> <tr class="cbi-section-table-row"> |