diff --git a/libadlin/tunnel.go b/libadlin/tunnel.go index 58a31fa..264c602 100644 --- a/libadlin/tunnel.go +++ b/libadlin/tunnel.go @@ -1,6 +1,7 @@ package adlin import ( + "context" "crypto/ed25519" "crypto/rand" "crypto/sha512" @@ -60,10 +61,13 @@ var ( ) func _readWgDump() (wgd map[string]*WGDump, err error) { - out, errr := exec.Command("wg", "show", "wg-adlin", "dump").Output() + ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) + defer cancel() - if errr != nil { - return nil, errr + out, err := exec.CommandContext(ctx, "wg", "show", "wg-adlin", "dump").Output() + + if err != nil { + return nil, err } wgd = map[string]*WGDump{} @@ -105,7 +109,7 @@ func readWgDump() (wgd map[string]*WGDump, err error) { wgDumpCache_mutex.RLock() } - return wgd, nil + return } type TunnelToken struct {