From f4312cfa5a19f8379a60afc75217117656f42e53 Mon Sep 17 00:00:00 2001 From: yaling888 <73897884+yaling888@users.noreply.github.com> Date: Tue, 22 Mar 2022 18:40:33 +0800 Subject: [PATCH] Chore: adjust the signal --- listener/tun/device/tun/tun_wireguard.go | 11 ++++++----- main.go | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/listener/tun/device/tun/tun_wireguard.go b/listener/tun/device/tun/tun_wireguard.go index dabd1252..50db6511 100644 --- a/listener/tun/device/tun/tun_wireguard.go +++ b/listener/tun/device/tun/tun_wireguard.go @@ -3,9 +3,10 @@ package tun import ( + "errors" "fmt" + "os" "runtime" - "strings" "github.com/Dreamacro/clash/common/pool" "github.com/Dreamacro/clash/listener/tun/device" @@ -53,9 +54,7 @@ func Open(name string, mtu uint32) (_ device.Device, err error) { nt, err := tun.CreateTUN(t.name, forcedMTU) // forcedMTU do not work on wintun, need to be setting by other way // retry if abnormal exit on Windows at last time - if err != nil && runtime.GOOS == "windows" && - strings.HasSuffix(err.Error(), "file already exists.") { - + if err != nil && runtime.GOOS == "windows" && errors.Is(err, os.ErrExist) { nt, err = tun.CreateTUN(t.name, forcedMTU) } @@ -80,7 +79,9 @@ func (t *TUN) Read(packet []byte) (int, error) { } buff := pool.Get(t.offset + cap(packet)) - defer pool.Put(buff) + defer func() { + _ = pool.Put(buff) + }() n, err := t.nt.Read(buff, t.offset) if err != nil { diff --git a/main.go b/main.go index d4c38d12..bc8c7a55 100644 --- a/main.go +++ b/main.go @@ -101,7 +101,7 @@ func main() { } sigCh := make(chan os.Signal, 1) - signal.Notify(sigCh, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) + signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) <-sigCh // cleanup