Fix integer conversions
This commit is contained in:
parent
7038de95e1
commit
b4cef2524f
@ -380,11 +380,5 @@ func (tun *NativeTun) MTU() (int, error) {
|
||||
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||
}
|
||||
|
||||
// convert result to signed 32-bit int
|
||||
|
||||
val := binary.LittleEndian.Uint32(ifr[16:20])
|
||||
if val >= (1 << 31) {
|
||||
return int(val-(1<<31)) - (1 << 31), nil
|
||||
}
|
||||
return int(val), nil
|
||||
return int(*(*int32)(unsafe.Pointer(&ifr[16]))), nil
|
||||
}
|
||||
|
@ -515,11 +515,5 @@ func (tun *NativeTun) MTU() (int, error) {
|
||||
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||
}
|
||||
|
||||
// convert result to signed 32-bit int
|
||||
mtu := ifr.MTU
|
||||
if mtu >= (1 << 31) {
|
||||
return int(mtu-(1<<31)) - (1 << 31), nil
|
||||
}
|
||||
return int(mtu), nil
|
||||
|
||||
return int(*(*int32)(unsafe.Pointer(&ifr.MTU))), nil
|
||||
}
|
||||
|
@ -263,13 +263,7 @@ func (tun *NativeTun) MTU() (int, error) {
|
||||
return 0, errors.New("failed to get MTU of TUN device: " + strconv.FormatInt(int64(errno), 10))
|
||||
}
|
||||
|
||||
// convert result to signed 32-bit int
|
||||
|
||||
val := binary.LittleEndian.Uint32(ifr[16:20])
|
||||
if val >= (1 << 31) {
|
||||
return int(toInt32(val)), nil
|
||||
}
|
||||
return int(val), nil
|
||||
return int(*(*int32)(unsafe.Pointer(&ifr[16]))), nil
|
||||
}
|
||||
|
||||
func (tun *NativeTun) Name() (string, error) {
|
||||
|
@ -356,11 +356,5 @@ func (tun *NativeTun) MTU() (int, error) {
|
||||
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||
}
|
||||
|
||||
// convert result to signed 32-bit int
|
||||
mtu := ifr.MTU
|
||||
if mtu >= (1 << 31) {
|
||||
return int(mtu-(1<<31)) - (1 << 31), nil
|
||||
}
|
||||
return int(mtu), nil
|
||||
|
||||
return int(*(*int32)(unsafe.Pointer(&ifr.MTU))), nil
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import (
|
||||
"net"
|
||||
"os"
|
||||
"path"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -101,11 +102,13 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {
|
||||
|
||||
go func(l *UAPIListener) {
|
||||
event := unix.Kevent_t{
|
||||
Ident: uint64(uapi.keventFd),
|
||||
Filter: unix.EVFILT_VNODE,
|
||||
Flags: unix.EV_ADD | unix.EV_ENABLE | unix.EV_ONESHOT,
|
||||
Fflags: unix.NOTE_WRITE,
|
||||
}
|
||||
// Allow this assignment to work with both the 32-bit and 64-bit version
|
||||
// of the above struct. If you know another way, please submit a patch.
|
||||
*(*uintptr)(unsafe.Pointer(&event.Ident)) = uintptr(uapi.keventFd)
|
||||
events := make([]unix.Kevent_t, 1)
|
||||
n := 1
|
||||
var kerr error
|
||||
|
Loading…
Reference in New Issue
Block a user