
On Mon, Jun 29, 2015 at 14:22:47 +0100, Daniel Berrange wrote:
On Mon, Jun 29, 2015 at 03:17:50PM +0200, Peter Krempa wrote:
On Mon, Jun 29, 2015 at 13:47:50 +0100, Daniel Berrange wrote:
On Mon, Jun 29, 2015 at 02:42:50PM +0200, Peter Krempa wrote:
qemu's event has following format:
{ "timestamp": { "seconds": 1435580974, "microseconds": 82226 }, "event": "SPICE_INITIALIZED", "data": { "server": { "auth": "none", "port": "5900", "family": "ipv4", "host": "127.0.0.1" }, "client": { "port": "53224", "family": "ipv4", "channel-type": 3, "connection-id": 1113096064, "host": "127.0.0.1", "channel-id": 0, "tls": false } } }
Our code tried to extract the "service" field but qemu reports it as "port".
Hmm, that's somewhat odd - did you check back historical versions of QEMU where this event was first introduced to see if it has always had this name ? It smells like the kind of thing that could have been a regression at some point
Actually the regression would be on the VNC side, since VNC uses "service" and the function that I've modified handles both. I failed to notice that fact at first.
I'll post a V2 with dual handling.
Hmm, are you saying QEMU uses a different field name when it has VNC vs SPICE ? If so that's a bug in QEMU that needs adressing (though of course we'd have to workaround it in libvirt too now).
Well, qemu uses different fields but they also use them in different events (VNC_CONNECTED vs SPICE_CONNECTED) with different return structures since spice provides a lot more data. The issue is that libvirt tries to use the same handler for parsing the data. I'm now conflicted whether to duplicate it or do a dual handler for both. If we will ever want to parse more data from that we will need a new function for that. Peter