status-go/vendor/github.com/mikioh/tcpopt/sys.go

67 lines
1.0 KiB
Go

// Copyright 2016 Mikio Hara. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package tcpopt
import (
"encoding/binary"
"time"
"unsafe"
)
var nativeEndian binary.ByteOrder
func init() {
i := uint32(1)
b := (*[4]byte)(unsafe.Pointer(&i))
if b[0] == 1 {
nativeEndian = binary.LittleEndian
} else {
nativeEndian = binary.BigEndian
}
}
func boolint32(b bool) int32 {
if b {
return 1
}
return 0
}
func uint32bool(n uint32) bool {
if n != 0 {
return true
}
return false
}
const (
ianaProtocolIP = 0x0
ianaProtocolTCP = 0x6
ianaProtocolIPv6 = 0x29
)
const (
soNodelay = iota
soSndbuf
soRcvbuf
soKeepalive
soKeepidle
soKeepintvl
soKeepcnt
soCork
soNotsentLOWAT
soError
soECN
soMaxseg
soMax
)
// An option represents a binding for socket option.
type option struct {
level int // option level
name int // option name, must be equal or greater than 1
uot time.Duration // unit of time
}