mirror of
https://git.zx2c4.com/wireguard-go
synced 2024-11-15 01:05:15 +01:00
A bit more messing with tun_dragonfly
This commit is contained in:
parent
de4c43207b
commit
e3eae3bc01
@ -23,6 +23,8 @@ import (
|
||||
const _TUNSIFHEAD = 0x80047460
|
||||
const _TUNSIFMODE = 0x8004745e
|
||||
const _TUNSIFPID = 0x2000745f
|
||||
const _FIONBIO = 0x8004667e
|
||||
const _FIOASYNC = 0x8004667d
|
||||
|
||||
// Iface status string max len
|
||||
const _IFSTATMAX = 800
|
||||
@ -269,9 +271,19 @@ func CreateTUN(name string, mtu int) (TUNDevice, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var errno syscall.Errno;
|
||||
|
||||
ifbiomode := 1
|
||||
_, _, errno = unix.Syscall(
|
||||
unix.SYS_IOCTL,
|
||||
uintptr(tunfd),
|
||||
uintptr(_FIOASYNC),
|
||||
uintptr(unsafe.Pointer(&ifbiomode)),
|
||||
)
|
||||
|
||||
// Enable ifhead mode, otherwise tun will complain if it gets a non-AF_INET packet
|
||||
ifheadmode := 1
|
||||
_, _, errno := unix.Syscall(
|
||||
_, _, errno = unix.Syscall(
|
||||
unix.SYS_IOCTL,
|
||||
uintptr(tunfd),
|
||||
uintptr(_TUNSIFHEAD),
|
||||
@ -390,7 +402,7 @@ func (tun *nativeTun) doRead(buff []byte, offset int) (int, error) {
|
||||
default:
|
||||
buff := buff[offset-4:]
|
||||
n, err := tun.fd.Read(buff[:])
|
||||
if n < 4 {
|
||||
if n < 4 && n > 0{
|
||||
return 0, err
|
||||
}
|
||||
return n - 4, err
|
||||
|
Loading…
Reference in New Issue
Block a user