On 05/19/2017 11:33 PM, Jim Fehlig wrote: > If a VNC listen address is not specified in domXML, libxl > will default to 127.0.0.1, but this is never reflected in the domXML. > In the case of spice, a missing listen address resulted in listening > on all interfaces, i.e. '0.0.0.0'. If not specified, set the listen > address in virDomainGraphicsDef struct to the libxl default when > creating the frame buffer device. Additionally, set default spice > listen address to 127.0.0.1. > > Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> Reviewed-by: Joao Martins <joao.m.martins@xxxxxxxxxx> > --- > > V2: include setting the listen address for spice as well as VNC > > src/libxl/libxl_conf.c | 31 +++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) > > diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c > index 56bc09719..b04dffcfa 100644 > --- a/src/libxl/libxl_conf.c > +++ b/src/libxl/libxl_conf.c > @@ -1227,13 +1227,18 @@ libxlMakeVfb(virPortAllocatorPtr graphicsports, > } > x_vfb->vnc.display = l_vfb->data.vnc.port - LIBXL_VNC_PORT_MIN; > > - if ((glisten = virDomainGraphicsGetListen(l_vfb, 0)) && > - glisten->address) { > - /* libxl_device_vfb_init() does VIR_STRDUP("127.0.0.1") */ > - VIR_FREE(x_vfb->vnc.listen); > - if (VIR_STRDUP(x_vfb->vnc.listen, glisten->address) < 0) > - return -1; > + if ((glisten = virDomainGraphicsGetListen(l_vfb, 0))) { > + if (glisten->address) { > + /* libxl_device_vfb_init() does VIR_STRDUP("127.0.0.1") */ > + VIR_FREE(x_vfb->vnc.listen); > + if (VIR_STRDUP(x_vfb->vnc.listen, glisten->address) < 0) > + return -1; > + } else { > + if (VIR_STRDUP(glisten->address, VIR_LOOPBACK_IPV4_ADDR) < 0) > + return -1; > + } > } > + > if (VIR_STRDUP(x_vfb->vnc.passwd, l_vfb->data.vnc.auth.passwd) < 0) > return -1; > if (VIR_STRDUP(x_vfb->keymap, l_vfb->data.vnc.keymap) < 0) > @@ -1335,10 +1340,16 @@ libxlMakeBuildInfoVfb(virPortAllocatorPtr graphicsports, > } > b_info->u.hvm.spice.port = l_vfb->data.spice.port; > > - if ((glisten = virDomainGraphicsGetListen(l_vfb, 0)) && > - glisten->address && > - VIR_STRDUP(b_info->u.hvm.spice.host, glisten->address) < 0) > - return -1; > + if ((glisten = virDomainGraphicsGetListen(l_vfb, 0))) { > + if (glisten->address) { > + if (VIR_STRDUP(b_info->u.hvm.spice.host, glisten->address) < 0) > + return -1; > + } else { > + if (VIR_STRDUP(b_info->u.hvm.spice.host, VIR_LOOPBACK_IPV4_ADDR) < 0 || > + VIR_STRDUP(glisten->address, VIR_LOOPBACK_IPV4_ADDR) < 0) > + return -1; > + } > + } > > if (VIR_STRDUP(b_info->u.hvm.keymap, l_vfb->data.spice.keymap) < 0) > return -1; > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list