Remove resources checking code for libvirtd to quit after timeout period. The way we support this is the same as the libvirtd signal handling, just set srv->quit to 1. --- daemon/libvirtd.c | 16 +--------------- daemon/libvirtd.pod.in | 5 +---- src/rpc/virnetserver.c | 18 +++--------------- src/rpc/virnetserver.h | 6 +----- 4 files changed, 6 insertions(+), 39 deletions(-) diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index ffbe067..d53f020 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -575,17 +575,6 @@ error: return -1; } - -static int daemonShutdownCheck(virNetServerPtr srv ATTRIBUTE_UNUSED, - void *opaque ATTRIBUTE_UNUSED) -{ - if (virStateActive()) - return 0; - - return 1; -} - - /* * Set up the logging environment * By default if daemonized all errors go to the logfile libvirtd.log, @@ -1242,10 +1231,7 @@ int main(int argc, char **argv) { if (timeout != -1) { VIR_DEBUG("Registering shutdown timeout %d", timeout); - virNetServerAutoShutdown(srv, - timeout, - daemonShutdownCheck, - NULL); + virNetServerAutoShutdown(srv, timeout); } if ((daemonSetupSignals(srv)) < 0) { diff --git a/daemon/libvirtd.pod.in b/daemon/libvirtd.pod.in index 57a3b27..6b77f21 100644 --- a/daemon/libvirtd.pod.in +++ b/daemon/libvirtd.pod.in @@ -54,10 +54,7 @@ Use this name for the PID file, overriding the default value. =item B<-t, --timeout> I<SECONDS> -Exit after timeout period (in seconds) elapse with no client connections -or registered resources. Be aware that resources such as autostart -networks will result in never reaching the timeout, even when there are -no client connections. +Exit after timeout period (in seconds) elapse with no client connections. =item B<-v, --verbose> diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 248ad9f..515ad79 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -105,8 +105,6 @@ struct _virNetServer { virNetTLSContextPtr tls; unsigned int autoShutdownTimeout; - virNetServerAutoShutdownFunc autoShutdownFunc; - void *autoShutdownOpaque; virNetServerClientInitHook clientInitHook; void *clientInitOpaque; @@ -433,16 +431,10 @@ bool virNetServerIsPrivileged(virNetServerPtr srv) void virNetServerAutoShutdown(virNetServerPtr srv, - unsigned int timeout, - virNetServerAutoShutdownFunc func, - void *opaque) + unsigned int timeout) { virNetServerLock(srv); - srv->autoShutdownTimeout = timeout; - srv->autoShutdownFunc = func; - srv->autoShutdownOpaque = opaque; - virNetServerUnlock(srv); } @@ -663,12 +655,8 @@ static void virNetServerAutoShutdownTimer(int timerid ATTRIBUTE_UNUSED, virNetServerPtr srv = opaque; virNetServerLock(srv); - - if (srv->autoShutdownFunc(srv, srv->autoShutdownOpaque)) { - VIR_DEBUG("Automatic shutdown triggered"); - srv->quit = 1; - } - + VIR_DEBUG("Automatic shutdown triggered"); + srv->quit = 1; virNetServerUnlock(srv); } diff --git a/src/rpc/virnetserver.h b/src/rpc/virnetserver.h index 92f741a..d0231e5 100644 --- a/src/rpc/virnetserver.h +++ b/src/rpc/virnetserver.h @@ -46,16 +46,12 @@ virNetServerPtr virNetServerNew(size_t min_workers, virNetServerClientInitHook clientInitHook, void *opaque); -typedef int (*virNetServerAutoShutdownFunc)(virNetServerPtr srv, void *opaque); - void virNetServerRef(virNetServerPtr srv); bool virNetServerIsPrivileged(virNetServerPtr srv); void virNetServerAutoShutdown(virNetServerPtr srv, - unsigned int timeout, - virNetServerAutoShutdownFunc func, - void *opaque); + unsigned int timeout); typedef void (*virNetServerSignalFunc)(virNetServerPtr srv, siginfo_t *info, void *opaque); -- 1.7.7.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list