JackDoan 6 달 전
부모
커밋
2c30f016a4
1개의 변경된 파일과 5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      overlay/tun_linux.go

+ 5 - 1
overlay/tun_linux.go

@@ -71,8 +71,12 @@ type ifreqQLEN struct {
 }
 }
 
 
 func newTunFromFd(c *config.C, l *logrus.Logger, deviceFd int, vpnNetworks []netip.Prefix) (*tun, error) {
 func newTunFromFd(c *config.C, l *logrus.Logger, deviceFd int, vpnNetworks []netip.Prefix) (*tun, error) {
-	//todo if this actually gets called, it should check+set O_NONBLOCK
 	file := os.NewFile(uintptr(deviceFd), "/dev/net/tun")
 	file := os.NewFile(uintptr(deviceFd), "/dev/net/tun")
+	err := unix.SetNonblock(deviceFd, true)
+	if err != nil {
+		_ = file.Close()
+		return nil, err
+	}
 
 
 	t, err := newTunGeneric(c, l, file, vpnNetworks)
 	t, err := newTunGeneric(c, l, file, vpnNetworks)
 	if err != nil {
 	if err != nil {