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)
|
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert result to signed 32-bit int
|
return int(*(*int32)(unsafe.Pointer(&ifr[16]))), nil
|
||||||
|
|
||||||
val := binary.LittleEndian.Uint32(ifr[16:20])
|
|
||||||
if val >= (1 << 31) {
|
|
||||||
return int(val-(1<<31)) - (1 << 31), nil
|
|
||||||
}
|
|
||||||
return int(val), nil
|
|
||||||
}
|
}
|
||||||
|
@ -515,11 +515,5 @@ func (tun *NativeTun) MTU() (int, error) {
|
|||||||
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert result to signed 32-bit int
|
return int(*(*int32)(unsafe.Pointer(&ifr.MTU))), nil
|
||||||
mtu := ifr.MTU
|
|
||||||
if mtu >= (1 << 31) {
|
|
||||||
return int(mtu-(1<<31)) - (1 << 31), nil
|
|
||||||
}
|
|
||||||
return int(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))
|
return 0, errors.New("failed to get MTU of TUN device: " + strconv.FormatInt(int64(errno), 10))
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert result to signed 32-bit int
|
return int(*(*int32)(unsafe.Pointer(&ifr[16]))), nil
|
||||||
|
|
||||||
val := binary.LittleEndian.Uint32(ifr[16:20])
|
|
||||||
if val >= (1 << 31) {
|
|
||||||
return int(toInt32(val)), nil
|
|
||||||
}
|
|
||||||
return int(val), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tun *NativeTun) Name() (string, error) {
|
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)
|
return 0, fmt.Errorf("failed to get MTU on %s", tun.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert result to signed 32-bit int
|
return int(*(*int32)(unsafe.Pointer(&ifr.MTU))), nil
|
||||||
mtu := ifr.MTU
|
|
||||||
if mtu >= (1 << 31) {
|
|
||||||
return int(mtu-(1<<31)) - (1 << 31), nil
|
|
||||||
}
|
|
||||||
return int(mtu), nil
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -101,11 +102,13 @@ func UAPIListen(name string, file *os.File) (net.Listener, error) {
|
|||||||
|
|
||||||
go func(l *UAPIListener) {
|
go func(l *UAPIListener) {
|
||||||
event := unix.Kevent_t{
|
event := unix.Kevent_t{
|
||||||
Ident: uint64(uapi.keventFd),
|
|
||||||
Filter: unix.EVFILT_VNODE,
|
Filter: unix.EVFILT_VNODE,
|
||||||
Flags: unix.EV_ADD | unix.EV_ENABLE | unix.EV_ONESHOT,
|
Flags: unix.EV_ADD | unix.EV_ENABLE | unix.EV_ONESHOT,
|
||||||
Fflags: unix.NOTE_WRITE,
|
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)
|
events := make([]unix.Kevent_t, 1)
|
||||||
n := 1
|
n := 1
|
||||||
var kerr error
|
var kerr error
|
||||||
|
Loading…
Reference in New Issue
Block a user