On Tue, Mar 18, 2014 at 12:19:47PM -0600, Jim Fehlig wrote: > libxl uses the libxl_vnc_info and libxl_sdl_info fields from the > hvm union in libxl_domain_build_info struct when generating QEMU > args for VNC or SDL. These fields were left unset by the libxl > driver, causing libxl to ignore any user settings. E.g. with > > <graphics type='vnc' port='5950'/> > > port would be ignored and QEMU would instead be invoked with > > -vnc 127.0.0.1:0,to=99 > > Unlike the libxl_domain_config struct, the libxl_domain_build_info > contains only a single libxl_vnc_info and libxl_sdl_info, so > populate these fields from the first vfb in > libxl_domain_config->vfbs. > > Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> > Signed-off-by: David Kiarie <davidkiarie4@xxxxxxxxx> > --- > src/libxl/libxl_conf.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c > index aa5d958..cfac847 100644 > --- a/src/libxl/libxl_conf.c > +++ b/src/libxl/libxl_conf.c > @@ -1022,6 +1022,20 @@ libxlMakeVfbList(libxlDriverPrivatePtr driver, > d_config->vkbs = x_vkbs; > d_config->num_vfbs = d_config->num_vkbs = nvfbs; > > + /* > + * VNC or SDL info must also be set in libxl_domain_build_info > + * for HVM domains. Use the first vfb device. > + */ > + if (STREQ(def->os.type, "hvm")) { > + libxl_domain_build_info *b_info = &d_config->b_info; > + libxl_device_vfb vfb = d_config->vfbs[0]; > + > + if (libxl_defbool_val(vfb.vnc.enable)) > + memcpy(&b_info->u.hvm.vnc, &vfb.vnc, sizeof(libxl_vnc_info)); > + else if (libxl_defbool_val(vfb.sdl.enable)) > + memcpy(&b_info->u.hvm.sdl, &vfb.sdl, sizeof(libxl_sdl_info)); > + } > + > return 0; > > error: ACK. It sure would be nice if there were some kind of API in libxl which took a 'libxl_domain_config*' and returned a char **argv string for the QEMU command line args that it would later invoke. That would let us create a test suite for the XML -> libxl_domain_config conversion to spot these kind of problems. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list