OpenTerminal Method

Creates a pseudo-terminal to be used to help display data for a channel.

Syntax

int OpenTerminal(const QString& qsChannelId, const QString& qsTerminalType, int iWidth, int iHeight, bool bUsePixels, const QString& qsModes);

Remarks

OpenTerminal is used to establish a pseudo-terminal that will encode data sent over a "session" channel. ChannelId identifies the channel that will receive the terminal. TerminalType identifies the terminal protocol. Currently, only "vt100" is recognized by the SSH protocol specification, but other terminal types may be implemented by SSH server vendors.

Width and Height represent the size of the terminal display. If UsePixels is true, they represent the size in pixels, otherwise they represent the size in terms of fixed-width characters.

Modes is a list of encoded terminal modes. This value must be hex encoded. For instance "350000000000" is the hex encoded representation of the byte sequence 0x53, 0x00, 0x00, 0x00, 0x00, 0x00 (the terminal modes string to disable echo). The encoding of these modes is defined in Section 8 of the SSH Connection Specification (RFC 4254). The modes are encoded to a string as opcode-argument pairs. The opcode is always a single byte. For opcodes 1-159, the argument is a 32-bit integer. Opcodes 160-255 are currently undefined. Opcode '0' terminates the string. Note: a string containing a single NULL byte (ie the character literal '\0') represents an empty mode list.

The following opcodes are defined:

0TTY_OP_END Indicates end of options.
1VINTR Interrupt character; 255 if none. Similarly for the other characters. Not all of these characters are supported on all systems.
2VQUIT The quit character (sends SIGQUIT signal on POSIX systems).
3VERASE Erase the character to left of the cursor.
4VKILL Kill the current input line.
5VEOF End-of-file character (sends EOF from the terminal).
6VEOL End-of-line character in addition to carriage return and/or linefeed.
7VEOL2 Additional end-of-line character.
8VSTART Continues paused output (normally control-Q).
9VSTOP Pauses output (normally control-S).
10VSUSP Suspends the current program.
11VDSUSP Another suspend character.
12VREPRINT Reprints the current input line.
13VWERASE Erases a word left of cursor.
14VLNEXT Enter the next character typed literally, even if it is a special character
15VFLUSH Character to flush output.
16VSWTCH Switch to a different shell layer.
17VSTATUS Prints system status line (load, command, pid, etc).
18VDISCARD Toggles the flushing of terminal output.
30IGNPAR The ignore parity flag. The parameter SHOULD be 0 if this flag is FALSE, and 1 if it is TRUE.
31PARMRK Mark parity and framing errors.
32INPCK Enable checking of parity errors.
33ISTRIP Strip 8th bit off characters.
34INLCR Map NL into CR on input.
35IGNCR Ignore CR on input.
36ICRNL Map CR to NL on input.
37IUCLC Translate uppercase characters to lowercase.
38IXON Enable output flow control.
39IXANY Any char will restart after stop.
40IXOFF Enable input flow control.
41IMAXBEL Ring bell on input queue full.
50ISIG Enable signals INTR, QUIT, [D]SUSP.
51ICANON Canonicalize input lines.
52XCASE Enable input and output of uppercase characters by preceding their lowercase equivalents with "\".
53ECHO Enable echoing.
54ECHOE Visually erase chars.
55ECHOK Kill character discards current line.
56ECHONL Echo NL even if ECHO is off.
57NOFLSH Don't flush after interrupt.
58TOSTOP Stop background jobs from output.
59IEXTEN Enable extensions.
60ECHOCTL Echo control characters as ^(Char).
61ECHOKE Visual erase for line kill.
62PENDIN Retype pending input.
70OPOST Enable output processing.
71OLCUC Convert lowercase to uppercase.
72ONLCR Map NL to CR-NL.
73OCRNL Translate carriage return to newline (output).
74ONOCR Translate newline to carriage return-newline (output).
75ONLRET Newline performs a carriage return (output).
90CS7 7 bit mode.
91CS8 8 bit mode.
92PARENB Parity enable.
93PARODD Odd parity, else even.
128TTY_OP_ISPEED Specifies the input baud rate in bits per second.
129TTY_OP_OSPEED Specifies the output baud rate in bits per second.

Error Handling

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

Copyright (c) 2023 /n software inc. - All rights reserved.
IPWorks SSH 2020 Qt Edition - Version 20.0 [Build 8501]