luci-app-openvpn: relax port/protocol parser

* relax port/protocol parser for ovpn files
* limit protocol to 'udp' or 'tcp'

Signed-off-by: Dirk Brenken <dev@brenken.org>
This commit is contained in:
Dirk Brenken 2020-04-18 08:57:36 +02:00
parent 1dbcc737fe
commit d4fef2cc64
No known key found for this signature in database
GPG key ID: 9D71CD547BFAE684

View file

@ -144,10 +144,7 @@ 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$/)&&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
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)
end
end
return val or "-"
@ -159,10 +156,7 @@ 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$/)&&match(tolower($2),/^udp[46]*$|^tcp[46]*-server$|^tcp[46]*-client$/)){cnt++;printf tolower($2);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[46]*-server$|^tcp[46]*-client$/)){cnt++;printf $4;exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
end
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)
end
end
return val or "-"