return -1;
}
close (fds[*nfds_r]);
- }
- else {
- if (listen (fds[*nfds_r], SOMAXCONN) == -1) {
- VIR_ERROR(_("listen: %s"),
- virStrerror (errno, ebuf, sizeof ebuf));
- return -1;
- }
+ } else {
++*nfds_r;
}
runp = runp->ai_next;
return server;
}
-static struct qemud_server *qemudNetworkInit(struct qemud_server *server) {
- struct qemud_socket *sock;
+static int qemudNetworkInit(struct qemud_server *server) {
char sockname[PATH_MAX];
char roSockname[PATH_MAX];
#if HAVE_SASL
#ifdef HAVE_AVAHI
if (server->privileged && mdns_adv) {
struct libvirtd_mdns_group *group;
+ struct qemud_socket *sock;
int port = 0;
server->mdns = libvirtd_mdns_new();
}
#endif
- return server;
+ return 0;
cleanup:
- if (server) {
- sock = server->sockets;
- while (sock) {
- close(sock->fd);
- sock = sock->next;
- }
-
-#if HAVE_POLKIT0
- if (server->sysbus)
- dbus_connection_unref(server->sysbus);
-#endif
- free(server);
- }
- return NULL;
+ return -1;
}
+
static gnutls_session_t
remoteInitializeTLSSession (void)
{
sock = server->sockets;
while (sock) {
struct qemud_socket *next = sock->next;
+ if (sock->watch)
+ virEventRemoveHandleImpl(sock->watch);
close(sock->fd);
free(sock);
sock = next;
}
#endif
+#if HAVE_POLKIT0
+ if (server->sysbus)
+ dbus_connection_unref(server->sysbus);
+#endif
+
virStateCleanup();
if (virCondDestroy(&server->job) < 0) {
goto error2;
}
- if (!(server = qemudNetworkInit(server))) {
+ if (qemudNetworkInit(server) < 0) {
ret = 2;
goto error2;
}