mutating func writeChannelRequestMessage()

in Sources/NIOSSH/SSHMessages.swift [1479:1548]


    mutating func writeChannelRequestMessage(_ message: SSHMessage.ChannelRequestMessage) -> Int {
        var writtenBytes = 0

        writtenBytes += self.writeInteger(message.recipientChannel)
        switch message.type {
        case .env:
            writtenBytes += self.writeSSHString("env".utf8)
        case .exec:
            writtenBytes += self.writeSSHString("exec".utf8)
        case .exitStatus:
            writtenBytes += self.writeSSHString("exit-status".utf8)
        case .exitSignal:
            writtenBytes += self.writeSSHString("exit-signal".utf8)
        case .ptyReq:
            writtenBytes += self.writeSSHString("pty-req".utf8)
        case .shell:
            writtenBytes += self.writeSSHString("shell".utf8)
        case .subsystem:
            writtenBytes += self.writeSSHString("subsystem".utf8)
        case .windowChange:
            writtenBytes += self.writeSSHString("window-change".utf8)
        case .xonXoff:
            writtenBytes += self.writeSSHString("xon-xoff".utf8)
        case .signal:
            writtenBytes += self.writeSSHString("signal".utf8)
        case .unknown:
            preconditionFailure()
        }

        writtenBytes += self.writeSSHBoolean(message.wantReply)

        switch message.type {
        case .env(let name, let value):
            writtenBytes += self.writeSSHString(name.utf8)
            writtenBytes += self.writeSSHString(value.utf8)
        case .exec(let command):
            writtenBytes += self.writeSSHString(command.utf8)
        case .exitStatus(let status):
            writtenBytes += self.writeInteger(status)
        case .exitSignal(let name, let coreDumped, let errorMessage, let language):
            writtenBytes += self.writeSSHString(name.utf8)
            writtenBytes += self.writeSSHBoolean(coreDumped)
            writtenBytes += self.writeSSHString(errorMessage.utf8)
            writtenBytes += self.writeSSHString(language.utf8)
        case .ptyReq(let message):
            writtenBytes += self.writeSSHString(message.termVariable.utf8)
            writtenBytes += self.writeInteger(message.characterWidth)
            writtenBytes += self.writeInteger(message.rowHeight)
            writtenBytes += self.writeInteger(message.pixelWidth)
            writtenBytes += self.writeInteger(message.pixelHeight)
            writtenBytes += self.writeCompositeSSHString { $0.writeSSHTerminalModes(message.terminalModes) }
        case .shell:
            break
        case .subsystem(let name):
            writtenBytes += self.writeSSHString(name.utf8)
        case .windowChange(let message):
            writtenBytes += self.writeInteger(message.characterWidth)
            writtenBytes += self.writeInteger(message.rowHeight)
            writtenBytes += self.writeInteger(message.pixelWidth)
            writtenBytes += self.writeInteger(message.pixelHeight)
        case .xonXoff(let clientCanDo):
            writtenBytes += self.writeSSHBoolean(clientCanDo)
        case .signal(let name):
            writtenBytes += self.writeSSHString(name.utf8)
        case .unknown:
            preconditionFailure()
        }

        return writtenBytes
    }