On Wed, Apr 21, 2010 at 03:22:41PM -0400, Chris Lalancette wrote: > If the hostname of the current virtualization machine > could not be resolved, then libvirtd would fail to > start. However, for disconnected operation (on a laptop, > for instance) the hostname may very legitimately not > be resolvable. This patch makes it so that if we can't > resolve the hostname, avahi doesn't fail, it just uses > a less useful MDNS string. > > Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx> > --- > daemon/libvirtd.c | 28 ++++++++++++++++++++-------- > 1 files changed, 20 insertions(+), 8 deletions(-) > > diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c > index 863bf21..4533f40 100644 > --- a/daemon/libvirtd.c > +++ b/daemon/libvirtd.c > @@ -998,22 +998,34 @@ static int qemudNetworkInit(struct qemud_server *server) { > struct libvirtd_mdns_group *group; > struct qemud_socket *sock; > int port = 0; > + int ret; > > server->mdns = libvirtd_mdns_new(); > > if (!mdns_name) { > - char groupname[64], *localhost, *tmp; > - /* Extract the host part of the potentially FQDN */ > + char *groupname, *localhost, *tmp; > + > localhost = virGetHostname(NULL); > if (localhost == NULL) > + /* we couldn't resolve the hostname; assume that we are > + * running in disconnected operation, and report a less > + * useful Avahi string > + */ > + ret = virAsprintf(&groupname, "Virtualization Host"); > + else { > + /* Extract the host part of the potentially FQDN */ > + if ((tmp = strchr(localhost, '.'))) > + *tmp = '\0'; > + ret = virAsprintf(&groupname, "Virtualization Host %s", > + localhost); > + } > + VIR_FREE(localhost); > + if (ret < 0) { > + virReportOOMError(); > goto cleanup; > - > - if ((tmp = strchr(localhost, '.'))) > - *tmp = '\0'; > - snprintf(groupname, sizeof(groupname)-1, "Virtualization Host %s", localhost); > - groupname[sizeof(groupname)-1] = '\0'; > + } > group = libvirtd_mdns_add_group(server->mdns, groupname); > - VIR_FREE(localhost); > + VIR_FREE(groupname); > } else { > group = libvirtd_mdns_add_group(server->mdns, mdns_name); > } Revised version of the patch I tested, ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list