Chore: adjust the signal

This commit is contained in:
yaling888 2022-03-22 18:40:33 +08:00
parent ac4cde1411
commit f4312cfa5a
2 changed files with 7 additions and 6 deletions

View file

@ -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 {

View file

@ -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