Repository navigation
GUACAMOLE-2301: Add serial console protocol support (web client) - #1230
ciroiriarte wants to merge 7 commits into
Conversation
Add the serial connection-parameter form (serial.json) and English translations (PROTOCOL_SERIAL) for the new guacd serial protocol, mirroring the telnet/ssh forms and the IPMI feature branch's translation conventions. Also add a minimal "Send Break" menu control, surfaced only for serial connections, that opens the server's "serial-control" pipe stream and writes the literal command "break", mirroring the pipe- stream idiom already used by ManagedClient.setClipboard/sendArguments.
… controls Adds the auto-reconnect, line-ending, local-echo, and hangup-on-close connection parameters, and DTR/RTS control-line buttons in the serial console menu (writing dtr-on/dtr-off/rts-on/rts-off to the serial-control pipe, reusing the Send Break mechanism).
…ROTOCOLS The serial protocol descriptor (serial.json) and translations were present, but Guacamole enumerates available protocols from the hardcoded KNOWN_PROTOCOLS list in LocalEnvironment, not from the descriptors on the classpath. Without a "serial" entry there, serial.json was never loaded, so the protocol was absent from the connection-editor's protocol dropdown and the admin form could not be used to create serial connections (runtime connections via user-mapping were unaffected). Add "serial" to KNOWN_PROTOCOLS so the connection form renders.
Expose the reverse (listen) mode parameters in the serial connection form and English translation: reverse-connect, bind-address, and listen-timeout, grouped under the Network section.
Add the telnet transport to the network-protocol choices in the serial connection form and English translation.
061c92a to
235e3e7
Compare
guacd's serial plugin accepts "terminal-type" (default "linux"), which selects the key sequences emitted by the terminal emulator, but the connection form did not offer it. Add it to the display section with the same options as SSH and telnet.
|
Pushed bcf9045: the serial connection form now offers |
necouchman
left a comment
There was a problem hiding this comment.
Just a few minor changes.
@mike-jumper Are we good with protocol-specific items like this being added to the client controller, etc.? I suppose we already have it for the terminal options, but just want to make sure there isn't some other, more preferred way, to go about it?
…d translations ManagedClient.sendSerialControl() now does nothing unless the connection uses the serial protocol and is established. Before, it only checked for a Guacamole.Client, which always exists, so it never actually stopped a send. Rewrite CLIENT.HELP_SERIAL so it covers the whole Serial Console menu section (break and DTR/RTS) rather than just Send Break, and line up SECTION_HEADER_SERIAL with the neighbouring entries. Reformat the PROTOCOL_SERIAL translations to match the other protocols: line up the colons, put a blank line between groups, and list numeric options in ascending order. The strings themselves are unchanged.
|
@necouchman The review comments are addressed in f07be98. Ready for another look when you have time. |
Summary
Web-client support for the new
serialconsole protocol (GUACAMOLE-2301), the companion to the guacamole-server PR. Adds the connection form, translations, and protocol registration so serial connections can be created and used from the Guacamole web interface.Changes
serial.json) covering connection type and network protocol (raw/rfc2217/telnet), local device, network host/port, reverse-mode (reverse-connect,bind-address,listen-timeout), serial line settings (baud, data/stop bits, parity, flow control, line ending), features (break duration, paste delay, local echo, hangup-on-close), display, clipboard, recording, and typescript sections.serialinLocalEnvironment's known protocols so the connection editor lists it.Testing
The serial connection form was exercised in the administration interface (all sections render; the network-protocol list includes Raw/RFC 2217/Telnet; the reverse-mode fields appear), and connections were driven end-to-end through the browser against real hardware and a QEMU virtual serial console. Evidence is attached to GUACAMOLE-2301.
Coordinated PRs