luci-base, luci-mod-network: migrate getDUIDHints method to C plugin
authorJo-Philipp Wich <jo@mein.io>
Fri, 8 Nov 2019 09:25:30 +0000 (10:25 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 8 Nov 2019 15:04:18 +0000 (16:04 +0100)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 392ba53effa26d2592db14c607c7d3103cce34d3)

modules/luci-base/root/usr/libexec/rpcd/luci
modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json
modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js

index 5bd17c75d295ff6a93ae15df16c90db48aa90946..56cb7bc85dd04b87390c154ac49e8d96a5d7a042 100755 (executable)
@@ -160,26 +160,6 @@ local methods = {
                end
        },
 
-       getDUIDHints = {
-               call = function()
-                       local fp = io.open('/var/hosts/odhcpd')
-                       local result = { }
-                       if fp then
-                               for line in fp:lines() do
-                                       local dev, duid, name = string.match(line, '# (%S+)%s+(%S+)%s+%d+%s+(%S+)')
-                                       if dev and duid and name then
-                                               result[duid] = {
-                                                       name = (name ~= "-") and name or nil,
-                                                       device = dev
-                                               }
-                                       end
-                               end
-                               fp:close()
-                       end
-                       return result
-               end
-       },
-
        getConntrackHelpers = {
                call = function()
                        local ok, fd = pcall(io.open, "/usr/share/fw3/helpers.conf", "r")
index 321817302ed5be5ed3d02d57dbac44bb7f7c9781..50ddc299faf71627397c7ac6fec4632800505b20 100644 (file)
@@ -43,8 +43,8 @@
                        "ubus": {
                                "file": [ "list", "read", "stat" ],
                                "iwinfo": [ "assoclist", "freqlist", "txpowerlist", "countrylist" ],
-                               "luci": [ "getConntrackList", "getDUIDHints", "getInitList", "getLocaltime", "getProcessList", "getRealtimeStats", "getTimezones", "getLEDs", "getUSBDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
-                               "luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getDSLStatus", "getHostHints", "getNetworkDevices", "getWirelessDevices" ],
+                               "luci": [ "getConntrackList", "getInitList", "getLocaltime", "getProcessList", "getRealtimeStats", "getTimezones", "getLEDs", "getUSBDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
+                               "luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getDSLStatus", "getDUIDHints", "getHostHints", "getNetworkDevices", "getWirelessDevices" ],
                                "network.interface": [ "dump" ],
                                "network.rrdns": [ "lookup" ],
                                "network": [ "get_proto_handlers" ],
index d7620e7f4780ef1d658ecbf7f4bd2c0ff3cdf9ff..84586f48545e6fa19f05dffe3c8da4261bf3bc48 100644 (file)
@@ -12,7 +12,7 @@ callHostHints = rpc.declare({
 });
 
 callDUIDHints = rpc.declare({
-       object: 'luci',
+       object: 'luci-rpc',
        method: 'getDUIDHints',
        expect: { '': {} }
 });
@@ -394,7 +394,7 @@ return L.view.extend({
                so = ss.option(form.Value, 'duid', _('<abbr title="The DHCP Unique Identifier">DUID</abbr>'));
                so.datatype = 'and(rangelength(20,36),hexstring)';
                Object.keys(duids).forEach(function(duid) {
-                       so.value(duid, '%s (%s)'.format(duid, duids[duid].name || '?'));
+                       so.value(duid, '%s (%s)'.format(duid, duids[duid].hostname || duids[duid].macaddr || duids[duid].ip6addr || '?'));
                });
 
                so = ss.option(form.Value, 'hostid', _('<abbr title="Internet Protocol Version 6">IPv6</abbr>-Suffix (hex)'));