Merge pull request #1933 from Ansuel/hostname_upnp
authorJo-Philipp Wich <jo@mein.io>
Fri, 13 Jul 2018 12:50:28 +0000 (14:50 +0200)
committerGitHub <noreply@github.com>
Fri, 13 Jul 2018 12:50:28 +0000 (14:50 +0200)
luci-app-upnp: add hostname info

applications/luci-app-upnp/luasrc/controller/upnp.lua
applications/luci-app-upnp/luasrc/view/upnp_status.htm

index 95a0ef4862a7cd1157e028fd89062da9e575ef65..c4762434c5003e6aa1ac6e34bb0b82f125712bdc 100644 (file)
@@ -21,6 +21,8 @@ end
 function act_status()
        local uci = luci.model.uci.cursor()
        local lease_file = uci:get("upnpd", "config", "upnp_lease_file")
+       
+       local ipv4_hints = luci.sys.net.ipv4_hints()
 
        local ipt = io.popen("iptables --line-numbers -t nat -xnvL MINIUPNPD 2>/dev/null")
        if ipt then
@@ -45,12 +47,22 @@ function act_status()
                                                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
+               
+                                       local host_hint, _, e
+                                       
+                                       for _,e in pairs(ipv4_hints) do
+                                               if e[1] == intaddr then
+                                                       host_hint = e[2]
+                                                       break
+                                               end
+                                       end
 
                                        fwd[#fwd+1] = {
                                                num     = num,
                                                proto   = proto:upper(),
                                                extport = extport,
                                                intaddr = intaddr,
+                                               host_hint = host_hint,
                                                intport = intport,
                                                descr = descr
                                        }
index e5cb9854d187b38d5ff2ec63648114e5254fd915..ea79e57a6af6a4d22ae850beb40ea31f1d7d9ab2 100644 (file)
@@ -23,6 +23,7 @@
                                                st[i].proto,
                                                st[i].extport,
                                                st[i].intaddr,
+                                               st[i].host_hint || "<%:Unknown%>",
                                                st[i].intport,
                                                st[i].descr,
                                                E('<div><input class="cbi-button cbi-button-remove" type="button" value="<%:Delete%>" onclick="upnp_delete_fwd(%d)" /></div>'.format(st[i].num))
@@ -41,6 +42,7 @@
                        <div class="th"><%:Protocol%></div>
                        <div class="th"><%:External Port%></div>
                        <div class="th"><%:Client Address%></div>
+                       <div class="th"><%:Host%></div>
                        <div class="th"><%:Client Port%></div>
                        <div class="th"><%:Description%></div>
                        <div class="th cbi-section-actions">&#160;</div>