
On 02/11/2015 04:40 AM, Laine Stump wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1191016
We try to get the IP address in /domain/devices/graphics/@listen, howerver for the network type listen address donnot have this parameter, it will show the address in the /domain/devices/graphics/listen/@address, running XML like this:
<graphics type='spice' port='5901' autoport='yes' keymap='en-us'> <listen type='network' address='192.168.122.1' network='default'/> </graphics>
This patch will try to get the IP address in this path /domain/devices/graphics/listen/@address That will work when the libvirtd being connected to is 0.9.4 or later, but earlier versions of libvirt don't have the <listen> subelement; instead they just have a 'listen' attribute directly inside <graphics>
On 02/10/2015 04:35 AM, Luyao Huang wrote: that contains the address. All newer versions of libvirt are supposed to populate that from <listen>[0] for backward compatibility.
The real bug here is that the listen attribute in <graphics> isn't being filled in in the case of type='network' when the domain is active. On the other hand, fixing the problem there would leave it unfixed for cases where the client is a new libvirt but the server is running libvirt between 0.9.4 and 1.2.12. So I think what is needed is for your patch to check @listen, and if nothing is found there, *then* check listen/@address. I attached a patch to this mail that I propose squashing into your patch before pushing. Let me know if it behaves properly and looks correct.
Beyond that, the server side should still be fixed. I just sent a patch that does that:
https://www.redhat.com/archives/libvir-list/2015-February/msg00332.html
Between the two patches, we will have fixed the problem for all versions of server, as long as the client is new enough.
Oh, i forgot the vncdisplay, it should also be fixed, i attached patch to this mail. Luyao