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)))
openSUSE Build Service is sponsored by