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

36 lines
1.6 KiB
Go
Raw Permalink Normal View History

2021-10-19 13:43:41 +00:00
// 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 "time"
var options = [soMax]option{
soNodelay: {ianaProtocolTCP, sysTCP_NODELAY, 0},
soMaxseg: {ianaProtocolTCP, sysTCP_MAXSEG, 0},
soSndbuf: {sysSOL_SOCKET, sysSO_SNDBUF, 0},
soRcvbuf: {sysSOL_SOCKET, sysSO_RCVBUF, 0},
soKeepalive: {sysSOL_SOCKET, sysSO_KEEPALIVE, 0},
soKeepidle: {ianaProtocolTCP, sysTCP_KEEPIDLE, time.Second},
soKeepintvl: {ianaProtocolTCP, sysTCP_KEEPINTVL, time.Second},
soKeepcnt: {ianaProtocolTCP, sysTCP_KEEPCNT, 0},
soCork: {ianaProtocolTCP, sysTCP_CORK, 0},
soNotsentLOWAT: {ianaProtocolTCP, sysTCP_NOTSENT_LOWAT, 0},
soError: {sysSOL_SOCKET, sysSO_ERROR, 0},
}
var parsers = map[int64]func([]byte) (Option, error){
ianaProtocolTCP<<32 | sysTCP_NODELAY: parseNoDelay,
ianaProtocolTCP<<32 | sysTCP_MAXSEG: parseMSS,
sysSOL_SOCKET<<32 | sysSO_SNDBUF: parseSendBuffer,
sysSOL_SOCKET<<32 | sysSO_RCVBUF: parseReceiveBuffer,
sysSOL_SOCKET<<32 | sysSO_KEEPALIVE: parseKeepAlive,
ianaProtocolTCP<<32 | sysTCP_KEEPIDLE: parseKeepAliveIdleInterval,
ianaProtocolTCP<<32 | sysTCP_KEEPINTVL: parseKeepAliveProbeInterval,
ianaProtocolTCP<<32 | sysTCP_KEEPCNT: parseKeepAliveProbeCount,
ianaProtocolTCP<<32 | sysTCP_CORK: parseCork,
ianaProtocolTCP<<32 | sysTCP_NOTSENT_LOWAT: parseNotSentLowWMK,
sysSOL_SOCKET<<32 | sysSO_ERROR: parseError,
}