in Sources/NIOSSH/SSHMessages.swift [1375:1413]
mutating func writeChannelOpenMessage(_ message: SSHMessage.ChannelOpenMessage) -> Int {
var writtenBytes = 0
switch message.type {
case .session:
writtenBytes += self.writeSSHString("session".utf8)
case .forwardedTCPIP:
writtenBytes += self.writeSSHString("forwarded-tcpip".utf8)
case .directTCPIP:
writtenBytes += self.writeSSHString("direct-tcpip".utf8)
}
writtenBytes += self.writeInteger(message.senderChannel)
writtenBytes += self.writeInteger(message.initialWindowSize)
writtenBytes += self.writeInteger(message.maximumPacketSize)
switch message.type {
case .session:
break
case .forwardedTCPIP(let data):
// We'll write gibberish if we can't get IP addresses out
writtenBytes += self.writeSSHString(data.hostListening.utf8)
writtenBytes += self.writeInteger(UInt32(data.portListening))
writtenBytes += self.writeSSHString((data.originatorAddress.ipAddress ?? "<nio-error>").utf8)
writtenBytes += self.writeInteger(UInt32(data.originatorAddress.port ?? -1))
case .directTCPIP(let data):
// We'll write gibberish if we can't get IP addresses out
writtenBytes += self.writeSSHString(data.hostToConnectTo.utf8)
writtenBytes += self.writeInteger(UInt32(data.portToConnectTo))
writtenBytes += self.writeSSHString((data.originatorAddress.ipAddress ?? "<nio-error>").utf8)
writtenBytes += self.writeInteger(UInt32(data.originatorAddress.port ?? -1))
}
return writtenBytes
}