File vnclisten.patch of Package libvirt
Index: libvirt-0.4.6/src/xend_internal.c
===================================================================
--- libvirt-0.4.6.orig/src/xend_internal.c
+++ libvirt-0.4.6/src/xend_internal.c
@@ -2136,7 +2136,7 @@ xenDaemonParseSxprGraphicsNew(virConnect
// Didn't find port entry in xenstore
port = sexpr_int(node, "device/vfb/vncdisplay");
}
- const char *listenAddr = sexpr_node(node, "device/vfb/vnclisten");
+ const char *listenAddr = sexpr_node(node, "device/vfb/location");
const char *vncPasswd = sexpr_node(node, "device/vfb/vncpasswd");;
const char *keymap = sexpr_node(node, "device/vfb/keymap");
const char *unused = sexpr_node(node, "device/vfb/vncunused");
@@ -2148,9 +2148,17 @@ xenDaemonParseSxprGraphicsNew(virConnect
port += 5900;
graphics->data.vnc.port = port;
- if (listenAddr &&
- !(graphics->data.vnc.listenAddr = strdup(listenAddr)))
- goto no_memory;
+ if (listenAddr) {
+ char *p;
+ if ((p = strrchr(listenAddr, ':'))) {
+ if (!(graphics->data.vnc.listenAddr =
+ strndup(listenAddr, p - listenAddr)))
+ goto no_memory;
+ } else {
+ if (!(graphics->data.vnc.listenAddr = strdup(listenAddr)))
+ goto no_memory;
+ }
+ }
if (vncPasswd &&
!(graphics->data.vnc.passwd = strdup(vncPasswd)))