luci-app-openvpn: parse extended 'remote' syntax as well
authorDirk Brenken <dev@brenken.org>
Sat, 18 Apr 2020 07:31:39 +0000 (09:31 +0200)
committerDirk Brenken <dev@brenken.org>
Sat, 18 Apr 2020 07:31:39 +0000 (09:31 +0200)
* parse special 'remote' syntax (remote <host> <port> <proto> as well
  (removed in last commit by accident)

Signed-off-by: Dirk Brenken <dev@brenken.org>
applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua

index 74d27f63507524e9c510895cc33db47c19cadb9d..bf8e26afe6c3997d6d80d1782223aee06ad62282 100644 (file)
@@ -144,7 +144,10 @@ function port.cfgvalue(self, section)
        if not val then
                local file_cfg = self.map:get(section, "config")
                if file_cfg  and fs.access(file_cfg) then
-                       val = sys.exec("awk '{if(match(tolower($1),/^port$|^remote$/)&&match($2,/[0-9]+/)){cnt++;printf $2;exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       val = sys.exec("awk '{if(match(tolower($1),/^port$/)&&match($2,/[0-9]+/)){cnt++;printf $2;exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       if val == "-" then
+                               val = sys.exec("awk '{if(match(tolower($1),/^remote$/)&&match($3,/[0-9]+/)){cnt++;printf $3;exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       end
                end
        end
        return val or "-"
@@ -156,7 +159,10 @@ function proto.cfgvalue(self, section)
        if not val then
                local file_cfg = self.map:get(section, "config")
                if file_cfg and fs.access(file_cfg) then
-                       val = sys.exec("awk '{if(match(tolower($1),/^proto$|^remote$/)&&match(tolower($2),/^udp[46]*$|^tcp[a-z46-]*$/)){cnt++;print tolower(substr($2,1,3));exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       val = sys.exec("awk '{if(match(tolower($1),/^proto$/)&&match(tolower($2),/^udp[46]*$|^tcp[a-z46-]*$/)){cnt++;print tolower(substr($2,1,3));exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       if val == "-" then
+                               val = sys.exec("awk '{if(match(tolower($1),/^remote$/)&&match(tolower($4),/^udp[46]*$|^tcp[a-z46-]*$/)){cnt++;print tolower(substr($4,1,3));exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+                       end
                end
        end
        return val or "-"