Hi,
I'm playing a bit with how the filesystem internally works using
guacamole-common-js and I'm a bit uncertain how error handling should be
implemented for input stream.

Essentially, what I'm doing is following:

fs_obj.requestInputStream("/arbitrary/file", (stream, mime) =>
> console.log("handle the stream"));


where *fs_obj* is the object retrieved from onfilesystem callback. This
works fine, in case the file is actually accessible.

If I don't count non-existent files, the main "issue" I've found is with
non-accessible files - e.g. login using non-root account and file such as
*/tmp/noperms* created under root with chmod 600.
This file generates obvious error in guacd logs:

guacd[38763]: INFO: Unable to read file "/tmp/noperms"


 However, as *requestInputStream* doesn't have any error handlers,
presumably since it works in a way where you request the file via
*get* instruction
and you listen for *body* instruction with the filename as last argument:

> 3.get,1.0,8./tmp/new;
> 4.body,1.0,1.0,24.application/octet-stream,8./tmp/new;


However since there is no body instruction when the *get* fails and I can't
see any msg or other instructions that would correlate to this, I would
assume the only way to detect this is to look for absence of the callback
(in case the callback is not called within timely manner, treat it as
error), right?

Or is there any other way (current or planned), that would enhance this
behaviour? My thinking was to re-use *msg* instruction with arbitrary code
that would denote the file cannot be read (or any other possible errors
that might be currently handled the same way within filesystem handling in
guacd), since that wouldn't require change in the Guacamole protocol itself.



Thanks,
Lukas


-- 
Best Regards

Lukáš Raška

Reply via email to