On Sun, Jul 7, 2019 at 4:46 PM Nick Couchman <[email protected]>
wrote:
> Getting back to this after a while...
>
>
>> Right. You cannot have two parsers reading from the same socket, nor
>> should
>> protocol support be attempting to parse the Guacamole protocol manually.
>> To
>> handle argv, you need to provide an argv_handler to the guac_user struct.
>> That handler will be called when argv is received.
>>
>
> So, I've taken care of the issue of two parsers and am now correctly (I
> think) using the argv handler to process received argv instructions. I see
> the argv handler getting called, and it seems to process the correct
> setting name, but the data (argument value) doesn't actually seem to be
> there (empty or null). Not sure if I'm doing this incorrectly, but on the
> client side I'm doing the following:
>
> $log.debug('Sending response for parameter ' + parameter + ': ' +
> JSON.stringify(data[parameter]));
> var stream = client.createArgumentValueStream("string", parameter);
> var writer = new Guacamole.StringWriter(stream);
> writer.sendText(data[parameter]);
> writer.sendEnd();
> $log.debug('Finished sending response.');
>
> on the server side, like I said, I see the call to the argv handler that
> I've written, and it correctly choose the setting, but if I process the
> argv->buffer, it's empty??
>
So, another update on this - first, I've done a packet capture on the
system running guacd, and I see the Base64-encoded value that I entered go
across the wire. However, adding some debugging to my
guac_rdp_argv_blob_handler method, and I'm not seeing any data actually
come into the handler - always seems to be empty? As usual, I'm sure I'm
missing something obvious...
-Nick
>