We recently added the '<graphics>' tag to the XML description for HVM machines. Any apps using this info though would have to hardcode the assumption that Xen's QEMU listens on Domain-ID + 5900. Hardcoding the port numbers in the first place is already a really questionable decision, so we should avoid that propagating out to application code. Thus, the attached patch changes: <graphics type="vnc"/> So that it now looks like <graphics type="vnc" port="5905"/> The hardcoded 'Domain-ID + 5900' craziness is now at least isolated in libvirt, so provided apps take the port number from the XML they will be immune from changes in port numbering scheme. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
? COPYING Index: ChangeLog =================================================================== RCS file: /data/cvs/libvirt/ChangeLog,v retrieving revision 1.201 diff -c -r1.201 ChangeLog *** ChangeLog 7 Aug 2006 14:35:20 -0000 1.201 --- ChangeLog 7 Aug 2006 16:07:02 -0000 *************** *** 1,3 **** --- 1,9 ---- + Mon Aug 7 11:06:20 EDT 2006 Daniel Berrange <berrange@xxxxxxxxxx> + + * src/xend_internal.c: Added a 'port' attribute to the '<graphics>' + tag when display type is VNC, providing the port number on which + the VNC server is listening. + Fri Aug 4 20:19:23 EDT 2006 Daniel Berrange <berrange@xxxxxxxxxx> * src/libvirt.c: Fix off-by-one in validated VCPU number (it is Index: src/xend_internal.c =================================================================== RCS file: /data/cvs/libvirt/src/xend_internal.c,v retrieving revision 1.47 diff -c -r1.47 xend_internal.c *** src/xend_internal.c 4 Aug 2006 10:41:05 -0000 1.47 --- src/xend_internal.c 7 Aug 2006 16:07:03 -0000 *************** *** 1598,1610 **** if (hvm) { /* Graphics device */ - /* TODO: - * Support for some additional attributes for graphics device? - */ tmp = sexpr_node(root, "domain/image/hvm/vnc"); if (tmp != NULL) { if (tmp[0] == '1') ! virBufferAdd(&buf, " <graphics type='vnc'/>\n", 27 ); } tmp = sexpr_node(root, "domain/image/hvm/sdl"); --- 1598,1608 ---- if (hvm) { /* Graphics device */ tmp = sexpr_node(root, "domain/image/hvm/vnc"); if (tmp != NULL) { if (tmp[0] == '1') ! virBufferVSprintf(&buf, " <graphics type='vnc' port='%d'/>\n", ! 5900 + sexpr_int(root, "domain/domid")); } tmp = sexpr_node(root, "domain/image/hvm/sdl");