Skip to content

Commit 2c73672

Browse files
committed
Fix: restore PIA error if region does not support port forwarding
1 parent 74b7c81 commit 2c73672

File tree

4 files changed

+19
-25
lines changed

4 files changed

+19
-25
lines changed

internal/constants/pia.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,12 @@ func PIAServers() (servers []models.PIAServer) {
4848
copy(servers, allServers.Pia.Servers)
4949
return servers
5050
}
51+
52+
func PIAServerWhereName(serverName string) (server models.PIAServer) {
53+
for _, server := range PIAServers() {
54+
if server.ServerName == serverName {
55+
return server
56+
}
57+
}
58+
return server
59+
}

internal/provider/privateinternetaccess/connection.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,5 @@ func (p *PIA) GetOpenVPNConnection(selection configuration.ServerSelection) (
4747
return connection, err
4848
}
4949

50-
p.activeServer = findActiveServer(servers, connection)
51-
5250
return connection, nil
5351
}
54-
55-
func findActiveServer(servers []models.PIAServer,
56-
connection models.OpenVPNConnection) (activeServer models.PIAServer) {
57-
// Reverse lookup server using the randomly picked connection
58-
for _, server := range servers {
59-
for _, ip := range server.IPs {
60-
if connection.IP.Equal(ip) {
61-
return server
62-
}
63-
}
64-
}
65-
return activeServer
66-
}

internal/provider/privateinternetaccess/portforward.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"strings"
1616
"time"
1717

18+
"github.com/qdm12/gluetun/internal/constants"
1819
"github.com/qdm12/golibs/format"
1920
"github.com/qdm12/golibs/logging"
2021
)
@@ -32,12 +33,12 @@ var (
3233
func (p *PIA) PortForward(ctx context.Context, client *http.Client,
3334
logger logging.Logger, gateway net.IP, serverName string) (
3435
port uint16, err error) {
35-
// commonName := p.activeServer.ServerName
36-
// if !p.activeServer.PortForward {
37-
// logger.Error("The server " + commonName +
38-
// " (region " + p.activeServer.Region + ") does not support port forwarding")
39-
// return
40-
// }
36+
server := constants.PIAServerWhereName(serverName)
37+
if !server.PortForward {
38+
logger.Error("The server " + serverName +
39+
" (region " + server.Region + ") does not support port forwarding")
40+
return
41+
}
4142
if gateway == nil {
4243
return 0, ErrGatewayIPIsNil
4344
} else if serverName == "" {

internal/provider/privateinternetaccess/provider.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ import (
99
)
1010

1111
type PIA struct {
12-
servers []models.PIAServer
13-
randSource rand.Source
14-
timeNow func() time.Time
15-
activeServer models.PIAServer
12+
servers []models.PIAServer
13+
randSource rand.Source
14+
timeNow func() time.Time
1615
// Port forwarding
1716
portForwardPath string
1817
authFilePath string

0 commit comments

Comments
 (0)