}
func (bind *NativeBind) SetMark(mark uint32) error {
+ var operr error
if fwmarkIoctl == 0 {
return nil
}
return err
}
err = fd.Control(func(fd uintptr) {
- err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, fwmarkIoctl, int(mark))
+ operr = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, fwmarkIoctl, int(mark))
})
+ if err == nil {
+ err = operr
+ }
if err != nil {
return err
}
return err
}
err = fd.Control(func(fd uintptr) {
- err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, fwmarkIoctl, int(mark))
+ operr = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, fwmarkIoctl, int(mark))
})
+ if err == nil {
+ err = operr
+ }
if err != nil {
return err
}