Improve parsing

This commit is contained in:
kayos@tcp.direct 2022-10-11 17:15:57 -07:00
parent 60484db0c9
commit aae6c2ece7
Signed by: kayos
GPG Key ID: 4B841471B4BEE979
2 changed files with 27 additions and 0 deletions

View File

@ -82,6 +82,25 @@ func filter(in string) (filtered string, ok bool) { //nolint:cyclop
return "", false
}
return combo.String(), true
case 3:
if !strings.Contains(in, "@") {
return "", false
}
split := strings.Split(in, "@")
if !strings.Contains(split[0], ":") {
return "", false
}
splitAuth := strings.Split(split[0], ":")
splitServ := strings.Split(split[1], ":")
_, isDomain := dns.IsDomainName(splitServ[0])
if isDomain && isNumber(splitServ[1]) {
return buildProxyString(splitAuth[0], splitAuth[1],
splitServ[0], splitServ[1], false), true
}
if _, err := ipa.ParseIPPort(split[1]); err == nil {
return buildProxyString(splitAuth[0], splitAuth[1],
splitServ[0], splitServ[1], false), true
}
case 4:
_, isDomain := dns.IsDomainName(split[0])
if isDomain && isNumber(split[1]) {

View File

@ -29,6 +29,14 @@ func Test_filter(t *testing.T) {
wantFiltered: "user:pass@127.0.0.1:1080",
wantOk: true,
},
{
name: "withAuthAlt",
args: args{
in: "user:pass@127.0.0.1:1080",
},
wantFiltered: "user:pass@127.0.0.1:1080",
wantOk: true,
},
{
name: "simpleDomain",
args: args{