luci-proto-wireguard: fixed incorrect peer detection for ipv6 and default port
authorTom Haley <this_username_has_been_taken2@proton.me>
Thu, 5 Dec 2024 07:54:19 +0000 (10:54 +0300)
committerPaul Donald <newtwen+github@gmail.com>
Thu, 5 Dec 2024 17:14:00 +0000 (18:14 +0100)
Fixed incorrect peer detection if IP v6 is used and no port for peer is defined.

Signed-off-by: Tom Haley <this_username_has_been_taken2@proton.me>
(cherry picked from commit 461d632d5c57bb179f2dae0b164b2d7d99d7432c)

protocols/luci-proto-wireguard/root/usr/share/rpcd/ucode/luci.wireguard

index 32acbb639d2614b7fe4e8b0428b861e56c1d4b9d..55f0bba2a9432d13ce858e447eff5b9234c1dd3c 100644 (file)
@@ -20,10 +20,10 @@ function checkPeerHost(configHost, configPort, wgHost) {
        const hostIp = replace(wgHost, /\[|\]/g, "");
        if (ips) {
                for (let line = ips.read('line'); length(line); line = ips.read('line')) {
-                       const ip =  rtrim(line, '\n');
+                       const ip = rtrim(line, '\n');
                        if (configPort && (ip + ":" + configPort == hostIp)) {
                                return true;
-                       } else if (ip == substr(hostIp, 0, index(hostIp, ":"))) {
+                       } else if (ip == substr(hostIp, 0, rindex(hostIp, ":"))) {
                                return true;
                        }
                }