in Sources/NIOTransportServices/TCPOptions+SocketChannelOption.swift [55:84]
func valueFor(socketOption option: ChannelOptions.Types.SocketOption) throws -> SocketOptionValue {
switch (option.level, option.name) {
case (IPPROTO_TCP, TCP_NODELAY):
return self.noDelay ? 1 : 0
case (IPPROTO_TCP, TCP_NOPUSH):
return self.noPush ? 1 : 0
case (IPPROTO_TCP, TCP_NOOPT):
return self.noOptions ? 1 : 0
case (IPPROTO_TCP, TCP_KEEPCNT):
return Int32(self.keepaliveCount)
case (IPPROTO_TCP, TCP_KEEPALIVE):
return Int32(self.keepaliveIdle)
case (IPPROTO_TCP, TCP_KEEPINTVL):
return Int32(self.keepaliveInterval)
case (IPPROTO_TCP, TCP_MAXSEG):
return Int32(self.maximumSegmentSize)
case (IPPROTO_TCP, TCP_CONNECTIONTIMEOUT):
return Int32(self.connectionTimeout)
case (IPPROTO_TCP, TCP_RXT_CONNDROPTIME):
return Int32(self.connectionDropTime)
case (IPPROTO_TCP, TCP_RXT_FINDROP):
return self.retransmitFinDrop ? 1 : 0
case (IPPROTO_TCP, TCP_SENDMOREACKS):
return self.disableAckStretching ? 1 : 0
case (SOL_SOCKET, SO_KEEPALIVE):
return self.enableKeepalive ? 1 : 0
default:
throw NIOTSErrors.UnsupportedSocketOption(optionValue: option)
}
}