Files
vpngate/pkg/vpn/client.go
DG 61f5779346 Remove speedtest (#42)
* Remove speedtest

* Go mod tidy
2021-08-09 22:23:21 -04:00

36 lines
814 B
Go

package vpn
import (
"io/ioutil"
"os"
"github.com/davegallant/vpngate/pkg/exec"
"github.com/juju/errors"
"github.com/nxadm/tail"
"github.com/rs/zerolog/log"
)
// Connect to a specified OpenVPN configuration
func Connect(configPath string) error {
tmpLogFile, err := ioutil.TempFile("", "vpngate-openvpn-log-")
if err != nil {
return errors.Annotate(err, "Unable to create a temporary log file")
}
defer os.Remove(tmpLogFile.Name())
go func() {
// Tail the temporary openvpn log file
t, err := tail.TailFile(tmpLogFile.Name(), tail.Config{Follow: true})
if err != nil {
log.Error().Msgf("%s", err)
}
for line := range t.Lines {
log.Debug().Msg(line.Text)
}
}()
_, err = exec.Run("openvpn", ".", "--verb", "4", "--log", tmpLogFile.Name(), "--config", configPath)
return err
}