Files
gluetun/internal/provider/privateinternetaccess/connection.go
Quentin McGaw 36b504609b chore(all): memory and thread safe storage
- settings: get filter choices from storage for settings validation
- updater: update servers to the storage
- storage: minimal deep copying and data duplication
- storage: add merged servers mutex for thread safety
- connection: filter servers in storage
- formatter: format servers to Markdown in storage
- PIA: get server by name from storage directly
- Updater: get servers count from storage directly
- Updater: equality check done in storage, fix #882
2022-06-05 15:19:16 +00:00

27 lines
885 B
Go

package privateinternetaccess
import (
"github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/constants/providers"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/provider/privateinternetaccess/presets"
"github.com/qdm12/gluetun/internal/provider/utils"
)
func (p *Provider) GetConnection(selection settings.ServerSelection) (
connection models.Connection, err error) {
// Set port defaults depending on encryption preset.
var defaults utils.ConnectionDefaults
switch *selection.OpenVPN.PIAEncPreset {
case presets.None, presets.Normal:
defaults.OpenVPNTCPPort = 502
defaults.OpenVPNUDPPort = 1198
case presets.Strong:
defaults.OpenVPNTCPPort = 501
defaults.OpenVPNUDPPort = 1197
}
return utils.GetConnection(providers.PrivateInternetAccess,
p.storage, selection, defaults, p.randSource)
}