Yes, onpipe should be firing for pipe streams created in this way. To
demonstrate general usage and expectations here, I've created a quick topic
branch to act as a temporary POC which adds handling for "text/plain" pipe
streams, logging their creation, closure, and any data received along the
stream:

https://github.com/mike-jumper/guacamole-client/commit/58537771afcbaa5619e11cdf3e6ad52aa9f6584d

After establishing an SSH connection via a Guacamole server having the
above commit, I ran the following one-liner to open a new pipe stream
called "test-pipe", print "hello world" while output is redirected to that
pipe stream, and finally close the stream:

    $ ./guacctl -o "test-pipe"; echo -n "hello world"; ./guacctl -c

The log within the browser displayed:

    pipe: test-pipe: stream begins
    pipe: test-pipe: "hello world"
    pipe: test-pipe: stream ends

and withing guacd:

    ...
    guacd[3374]: DEBUG: Terminal output now redirected to pipe 'test-pipe'.
    guacd[3374]: DEBUG: Terminal output now redirected to display.
    ...

- Mike


On Wed, Feb 21, 2018 at 6:48 AM, McRoy, Jeffrey (GE Healthcare) <
jeffrey.mc...@ge.com> wrote:

> If the Guac server is opening a pipe stream and redirecting output to it,
> wouldn’t the onpipe event fire in the Guac client?
>
>
>
> guacClient.onpipe = function(input_stream, mimetype, name) {
>
>                 reader = new Guacamole.StringReader(input_stream);
>
>                 reader.ontext = function receiveText(text) {
>
>                                 console.log(text);
>
>                 };
>
> }
>
>
>
> -Jeff
>
>
>
>
>
> *From: *Mike Jumper <mike.jum...@guac-dev.org>
> *Reply-To: *"user@guacamole.apache.org" <user@guacamole.apache.org>
> *Date: *Tuesday, February 20, 2018 at 9:33 PM
> *To: *"user@guacamole.apache.org" <user@guacamole.apache.org>
> *Subject: *EXT: Re: Working with pipes
>
>
>
> On Tue, Feb 20, 2018 at 7:23 PM, Nick Couchman <vn...@apache.org> wrote:
>
> Is it possible for the client to access the terminal output at either the
> javascript or java layer?
>
>
>
>
>
> So, one thing to keep in mind, here, is that the terminal output from SSH
> and Telnet is transmitted from guacd to the Guacamole Client as an image,
> not as text.  I know it doesn't *seem* like it, particularly since the
> client allows you to select text and copy it to the clipboard (and
> vice-versa), but if you look at the actual data going back and forth, all
> of the screen output, include "text" from the terminal, is image data.  So,
> doing anything with it (parsing, etc.) at the JavaScript layer is probably
> impractical, if not impossible.
>
>
>
> Waaaaaait! Guacamole does send images, yes, but there is also an OSC which
> temporarily redirects output to a pipe stream:
>
>
>
> https://github.com/apache/guacamole-server/blob/
> 99e6f89eba56b6effc189d1c2c160686ed880beb/src/terminal/
> terminal_handlers.c#L1314-L1320
>
>
>
> There is an example of this within guacctl:
>
>
>
> https://github.com/apache/guacamole-server/blob/
> 99e6f89eba56b6effc189d1c2c160686ed880beb/bin/guacctl#L285-L301
>
>
>
> - Mike
>
>
>

Reply via email to