Fix: restore PIA error if region does not support port forwarding
This commit is contained in:
@@ -48,3 +48,12 @@ func PIAServers() (servers []models.PIAServer) {
|
||||
copy(servers, allServers.Pia.Servers)
|
||||
return servers
|
||||
}
|
||||
|
||||
func PIAServerWhereName(serverName string) (server models.PIAServer) {
|
||||
for _, server := range PIAServers() {
|
||||
if server.ServerName == serverName {
|
||||
return server
|
||||
}
|
||||
}
|
||||
return server
|
||||
}
|
||||
|
||||
@@ -47,20 +47,5 @@ func (p *PIA) GetOpenVPNConnection(selection configuration.ServerSelection) (
|
||||
return connection, err
|
||||
}
|
||||
|
||||
p.activeServer = findActiveServer(servers, connection)
|
||||
|
||||
return connection, nil
|
||||
}
|
||||
|
||||
func findActiveServer(servers []models.PIAServer,
|
||||
connection models.OpenVPNConnection) (activeServer models.PIAServer) {
|
||||
// Reverse lookup server using the randomly picked connection
|
||||
for _, server := range servers {
|
||||
for _, ip := range server.IPs {
|
||||
if connection.IP.Equal(ip) {
|
||||
return server
|
||||
}
|
||||
}
|
||||
}
|
||||
return activeServer
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/constants"
|
||||
"github.com/qdm12/golibs/format"
|
||||
"github.com/qdm12/golibs/logging"
|
||||
)
|
||||
@@ -32,12 +33,12 @@ var (
|
||||
func (p *PIA) PortForward(ctx context.Context, client *http.Client,
|
||||
logger logging.Logger, gateway net.IP, serverName string) (
|
||||
port uint16, err error) {
|
||||
// commonName := p.activeServer.ServerName
|
||||
// if !p.activeServer.PortForward {
|
||||
// logger.Error("The server " + commonName +
|
||||
// " (region " + p.activeServer.Region + ") does not support port forwarding")
|
||||
// return
|
||||
// }
|
||||
server := constants.PIAServerWhereName(serverName)
|
||||
if !server.PortForward {
|
||||
logger.Error("The server " + serverName +
|
||||
" (region " + server.Region + ") does not support port forwarding")
|
||||
return
|
||||
}
|
||||
if gateway == nil {
|
||||
return 0, ErrGatewayIPIsNil
|
||||
} else if serverName == "" {
|
||||
|
||||
@@ -9,10 +9,9 @@ import (
|
||||
)
|
||||
|
||||
type PIA struct {
|
||||
servers []models.PIAServer
|
||||
randSource rand.Source
|
||||
timeNow func() time.Time
|
||||
activeServer models.PIAServer
|
||||
servers []models.PIAServer
|
||||
randSource rand.Source
|
||||
timeNow func() time.Time
|
||||
// Port forwarding
|
||||
portForwardPath string
|
||||
authFilePath string
|
||||
|
||||
Reference in New Issue
Block a user