Write auth file in openvpn loop

This commit is contained in:
Quentin McGaw
2020-07-08 22:11:23 +00:00
parent 3ae4523280
commit 765f06e5a8
2 changed files with 11 additions and 9 deletions

View File

@@ -107,13 +107,6 @@ func _main(background context.Context, args []string) int {
fatalOnError(err) fatalOnError(err)
} }
err = ovpnConf.WriteAuthFile(
allSettings.OpenVPN.User,
allSettings.OpenVPN.Password,
allSettings.System.UID,
allSettings.System.GID)
fatalOnError(err)
defaultInterface, defaultGateway, defaultSubnet, err := routingConf.DefaultRoute() defaultInterface, defaultGateway, defaultSubnet, err := routingConf.DefaultRoute()
fatalOnError(err) fatalOnError(err)
@@ -216,7 +209,7 @@ func _main(background context.Context, args []string) int {
unboundDone := make(chan struct{}) unboundDone := make(chan struct{})
serverDone := make(chan struct{}) serverDone := make(chan struct{})
openvpnLooper := openvpn.NewLooper(ovpnConf, allSettings.OpenVPN, logger, streamMerger, fatalOnError) openvpnLooper := openvpn.NewLooper(ovpnConf, allSettings.OpenVPN, logger, streamMerger, fatalOnError, allSettings.System.UID, allSettings.System.GID)
// wait for restartOpenvpn // wait for restartOpenvpn
go openvpnLooper.Run(ctx, restartOpenvpn, openvpnDone) go openvpnLooper.Run(ctx, restartOpenvpn, openvpnDone)

View File

@@ -21,10 +21,12 @@ type looper struct {
logger logging.Logger logger logging.Logger
streamMerger command.StreamMerger streamMerger command.StreamMerger
fatalOnError func(err error) fatalOnError func(err error)
uid int
gid int
} }
func NewLooper(conf Configurator, settings settings.OpenVPN, logger logging.Logger, func NewLooper(conf Configurator, settings settings.OpenVPN, logger logging.Logger,
streamMerger command.StreamMerger, fatalOnError func(err error)) Looper { streamMerger command.StreamMerger, fatalOnError func(err error), uid, gid int) Looper {
return &looper{ return &looper{
conf: conf, conf: conf,
settings: settings, settings: settings,
@@ -43,6 +45,13 @@ func (l *looper) Run(ctx context.Context, restart <-chan struct{}, done chan<- s
} }
for { for {
openvpnCtx, openvpnCancel := context.WithCancel(ctx) openvpnCtx, openvpnCancel := context.WithCancel(ctx)
err := l.conf.WriteAuthFile(
l.settings.User,
l.settings.Password,
l.uid,
l.gid,
)
l.fatalOnError(err)
stream, waitFn, err := l.conf.Start(openvpnCtx) stream, waitFn, err := l.conf.Start(openvpnCtx)
l.fatalOnError(err) l.fatalOnError(err)
go l.streamMerger.Merge(openvpnCtx, stream, go l.streamMerger.Merge(openvpnCtx, stream,