From ac706bd156f2a53f2ff8c633a0d9782242156431 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Thu, 30 Apr 2020 11:01:22 +0000 Subject: [PATCH] Wait for openvpn to exit on program termination --- cmd/main.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/main.go b/cmd/main.go index 817de116..5f657954 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -259,11 +259,16 @@ func main() { } // Runs openvpn and restarts it if it does not exit cleanly go func() { + waitErrors := make(chan error) for { stream, waitFn, err := ovpnConf.Start(ctx) e.FatalOnError(err) go streamMerger.Merge(ctx, stream, command.MergeName("openvpn"), command.MergeColor(constants.ColorOpenvpn())) + waiter.Add(func() error { + return <-waitErrors + }) if err := waitFn(); err != nil { + waitErrors <- err logger.Error("openvpn crashed: %s", err) } else { break