Also allow hyphens in proxy username/password

This commit is contained in:
Rodney Cullen 2022-05-09 13:39:46 +01:00
parent 873ba0ab09
commit 00cf3ca644

View file

@ -44,7 +44,7 @@ proxifiedContainers = {
// Parses a proxy description string of the format type://host[:port] or type://username:password@host[:port] (port is optional) // Parses a proxy description string of the format type://host[:port] or type://username:password@host[:port] (port is optional)
parseProxy(proxy_str, mozillaVpnData = null) { parseProxy(proxy_str, mozillaVpnData = null) {
const proxyRegexp = /(?<type>(https?)|(socks4?)):\/\/(\b(?<username>\w+):(?<password>\w+)@)?(?<host>((?:\d{1,3}\.){3}\d{1,3}\b)|(\b([\w.-]+)+))(:(?<port>\d+))?/; const proxyRegexp = /(?<type>(https?)|(socks4?)):\/\/(\b(?<username>[\w.-]+):(?<password>[\w.-]+)@)?(?<host>((?:\d{1,3}\.){3}\d{1,3}\b)|(\b([\w.-]+)+))(:(?<port>\d+))?/;
const matches = proxyRegexp.exec(proxy_str); const matches = proxyRegexp.exec(proxy_str);
if (!matches) { if (!matches) {
return false; return false;
@ -58,7 +58,10 @@ proxifiedContainers = {
mozillaVpnData = MozillaVPN.getMozillaProxyInfoObj(); mozillaVpnData = MozillaVPN.getMozillaProxyInfoObj();
} }
return {...matches.groups,...mozillaVpnData}; return {
...matches.groups,
...mozillaVpnData
};
}, },
// Deletes the proxy information object for a specified cookieStoreId [useful for cleaning] // Deletes the proxy information object for a specified cookieStoreId [useful for cleaning]