Persistent server pools (#226)

* GetAllServers with version & timestamp tests
* Storage package to sync servers
* Use storage Sync to get and use servers
This commit is contained in:
Quentin McGaw
2020-08-25 19:38:50 -04:00
committed by GitHub
parent 6fc2b3dd21
commit aa9693a84d
23 changed files with 464 additions and 83 deletions

View File

@@ -34,8 +34,9 @@ type looper struct {
portForwarded uint16
portForwardedMutex sync.RWMutex
// Fixed parameters
uid int
gid int
uid int
gid int
allServers models.AllServers
// Configurators
conf Configurator
fw firewall.Configurator
@@ -51,7 +52,7 @@ type looper struct {
}
func NewLooper(provider models.VPNProvider, settings settings.OpenVPN,
uid, gid int,
uid, gid int, allServers models.AllServers,
conf Configurator, fw firewall.Configurator,
logger logging.Logger, client network.Client, fileManager files.FileManager,
streamMerger command.StreamMerger, fatalOnError func(err error)) Looper {
@@ -60,6 +61,7 @@ func NewLooper(provider models.VPNProvider, settings settings.OpenVPN,
settings: settings,
uid: uid,
gid: gid,
allServers: allServers,
conf: conf,
fw: fw,
logger: logger.WithPrefix("openvpn: "),
@@ -99,7 +101,7 @@ func (l *looper) Run(ctx context.Context, wg *sync.WaitGroup) {
for ctx.Err() == nil {
settings := l.GetSettings()
providerConf := provider.New(l.provider)
providerConf := provider.New(l.provider, l.allServers)
connections, err := providerConf.GetOpenVPNConnections(settings.Provider.ServerSelection)
if err != nil {
l.fatalOnError(err)