mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 21:55:25 +00:00
Make avahi startup more robust.
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@redhat.com>
This commit is contained in:
parent
ce380b8e6f
commit
8274993f29
@ -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)
|
||||
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);
|
||||
/* 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;
|
||||
}
|
||||
group = libvirtd_mdns_add_group(server->mdns, groupname);
|
||||
VIR_FREE(groupname);
|
||||
} else {
|
||||
group = libvirtd_mdns_add_group(server->mdns, mdns_name);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user