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

38 lines
1.7 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 "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_KEEPALIVE, time.Second},
soKeepintvl: {ianaProtocolTCP, sysTCP_KEEPINTVL, time.Second},
soKeepcnt: {ianaProtocolTCP, sysTCP_KEEPCNT, 0},
soCork: {ianaProtocolTCP, sysTCP_NOPUSH, 0},
soNotsentLOWAT: {ianaProtocolTCP, sysTCP_NOTSENT_LOWAT, 0},
soError: {sysSOL_SOCKET, sysSO_ERROR, 0},
soECN: {ianaProtocolTCP, sysTCP_ENABLE_ECN, 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_KEEPALIVE: parseKeepAliveIdleInterval,
ianaProtocolTCP<<32 | sysTCP_KEEPINTVL: parseKeepAliveProbeInterval,
ianaProtocolTCP<<32 | sysTCP_KEEPCNT: parseKeepAliveProbeCount,
ianaProtocolTCP<<32 | sysTCP_NOPUSH: parseCork,
ianaProtocolTCP<<32 | sysTCP_NOTSENT_LOWAT: parseNotSentLowWMK,
sysSOL_SOCKET<<32 | sysSO_ERROR: parseError,
ianaProtocolTCP<<32 | sysTCP_ENABLE_ECN: parseECN,
}