mirror of
https://github.com/davegallant/vpngate.git
synced 2025-08-06 08:43:40 +00:00
@@ -5,7 +5,6 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/juju/errors"
|
||||
"github.com/rs/zerolog/log"
|
||||
@@ -26,9 +25,6 @@ func Run(path string, workDir string, args ...string) (string, error) {
|
||||
stderr := &bytes.Buffer{}
|
||||
cmd.Stdout = stdout
|
||||
cmd.Stderr = stderr
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{
|
||||
Pdeathsig: syscall.SIGTERM,
|
||||
}
|
||||
log.Debug().Msgf("Executing " + strings.Join(cmd.Args, " "))
|
||||
err = cmd.Run()
|
||||
output := strings.TrimSpace(stdout.String())
|
||||
|
@@ -1,52 +0,0 @@
|
||||
package network
|
||||
|
||||
import (
|
||||
"github.com/juju/errors"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/showwin/speedtest-go/speedtest"
|
||||
)
|
||||
|
||||
// TestSpeed tests the speed of an active network connection
|
||||
func TestSpeed() error {
|
||||
user, err := speedtest.FetchUserInfo()
|
||||
|
||||
if err != nil {
|
||||
return errors.Annotate(err, "Unable to fetch user info")
|
||||
}
|
||||
|
||||
serverList, err := speedtest.FetchServerList(user)
|
||||
|
||||
if err != nil {
|
||||
return errors.Annotate(err, "Unable to fetch server list")
|
||||
}
|
||||
|
||||
targets, _ := serverList.FindServer([]int{})
|
||||
|
||||
if err != nil {
|
||||
return errors.Annotate(err, "Unable to find server")
|
||||
}
|
||||
|
||||
for _, s := range targets {
|
||||
err := s.PingTest()
|
||||
|
||||
if err != nil {
|
||||
log.Error().Msg("Failed to obtain ping")
|
||||
}
|
||||
|
||||
err = s.DownloadTest(true)
|
||||
|
||||
if err != nil {
|
||||
log.Error().Msg("Failed download test")
|
||||
}
|
||||
|
||||
err = s.UploadTest(true)
|
||||
|
||||
if err != nil {
|
||||
log.Error().Msg("Failed upload test")
|
||||
}
|
||||
|
||||
log.Info().Msgf("Latency: %s, Download: %f, Upload: %f", s.Latency, s.DLSpeed, s.ULSpeed)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
@@ -3,10 +3,8 @@ package vpn
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/davegallant/vpngate/pkg/exec"
|
||||
"github.com/davegallant/vpngate/pkg/network"
|
||||
"github.com/juju/errors"
|
||||
"github.com/nxadm/tail"
|
||||
"github.com/rs/zerolog/log"
|
||||
@@ -21,17 +19,6 @@ func Connect(configPath string) error {
|
||||
}
|
||||
defer os.Remove(tmpLogFile.Name())
|
||||
|
||||
go func() {
|
||||
for {
|
||||
err = network.TestSpeed()
|
||||
if err != nil {
|
||||
log.Error().Msg("Failed to test network speed")
|
||||
}
|
||||
time.Sleep(time.Minute)
|
||||
}
|
||||
|
||||
}()
|
||||
|
||||
go func() {
|
||||
// Tail the temporary openvpn log file
|
||||
t, err := tail.TailFile(tmpLogFile.Name(), tail.Config{Follow: true})
|
||||
|
Reference in New Issue
Block a user