提交 8274993f 编写于 作者: C Chris Lalancette

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: NChris Lalancette <clalance@redhat.com>
上级 ce380b8e
......@@ -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);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册