This commit is contained in:
Quentin McGaw
2020-07-19 14:22:23 +00:00
parent fab9939b26
commit 29f74df450
5 changed files with 57 additions and 15 deletions

View File

@@ -23,13 +23,16 @@ type Looper interface {
PortForward()
GetSettings() (settings settings.OpenVPN)
SetSettings(settings settings.OpenVPN)
GetPortForwarded() (portForwarded uint16)
}
type looper struct {
// Variable parameters
provider models.VPNProvider
settings settings.OpenVPN
settingsMutex sync.RWMutex
provider models.VPNProvider
settings settings.OpenVPN
settingsMutex sync.RWMutex
portForwarded uint16
portForwardedMutex sync.RWMutex
// Fixed parameters
uid int
gid int
@@ -187,11 +190,14 @@ func (l *looper) portForward(ctx context.Context, providerConf provider.Provider
port, err = providerConf.GetPortForward(client)
if err != nil {
l.logAndWait(ctx, err)
continue
}
l.logger.Info("port forwarded is %d", port)
}
l.logger.Info("port forwarded is %d", port)
l.portForwardedMutex.Lock()
l.portForwarded = port
l.portForwardedMutex.Unlock()
filepath := settings.Provider.PortForwarding.Filepath
l.logger.Info("writing forwarded port to %s", filepath)
err = l.fileManager.WriteLinesToFile(
@@ -206,3 +212,9 @@ func (l *looper) portForward(ctx context.Context, providerConf provider.Provider
l.logger.Error(err)
}
}
func (l *looper) GetPortForwarded() (portForwarded uint16) {
l.portForwardedMutex.RLock()
defer l.portForwardedMutex.RUnlock()
return l.portForwarded
}