daemon: Properly check for clients

virHashForEach() returns 0 if everything went nice, so our session
daemon was timing out even when there was a client connected.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1315606

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Martin Kletzander 2016-03-01 15:42:32 +01:00
parent cd0a980ee1
commit 6541a2b4ac

View File

@ -849,15 +849,23 @@ virNetDaemonClose(virNetDaemonPtr dmn)
static int
daemonServerHasClients(void *payload,
const void *key ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
void *opaque)
{
bool *clients = opaque;
virNetServerPtr srv = payload;
return virNetServerHasClients(srv);
if (virNetServerHasClients(srv))
*clients = true;
return 0;
}
bool
virNetDaemonHasClients(virNetDaemonPtr dmn)
{
return virHashForEach(dmn->servers, daemonServerHasClients, NULL) > 0;
bool ret = false;
virHashForEach(dmn->servers, daemonServerHasClients, &ret);
return ret;
}