ce7b23
From b7ea58c262194037042284a14fb1608c9cf31884 Mon Sep 17 00:00:00 2001
ce7b23
From: Martin Kletzander <mkletzan@redhat.com>
ce7b23
Date: Fri, 10 Jul 2015 10:35:31 +0200
ce7b23
Subject: [PATCH] rpc: Rework timerActive logic in daemon
ce7b23
ce7b23
Daemon used false logic for determining whether there were any clients.
ce7b23
When the timer was inactive, it was activated if at least one of the
ce7b23
servers did not have clients.  So the bool was being flipped there and
ce7b23
back all the time in case there was one client, for example.
ce7b23
ce7b23
Initially introduced by fa1420736882.
ce7b23
ce7b23
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1240283
ce7b23
ce7b23
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
ce7b23
---
ce7b23
 src/rpc/virnetdaemon.c | 24 +++++++++---------------
ce7b23
 1 file changed, 9 insertions(+), 15 deletions(-)
ce7b23
ce7b23
diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
ce7b23
index 6b13282..910f266 100644
ce7b23
--- a/src/rpc/virnetdaemon.c
ce7b23
+++ b/src/rpc/virnetdaemon.c
ce7b23
@@ -682,23 +682,17 @@ virNetDaemonRun(virNetDaemonPtr dmn)
ce7b23
          */
ce7b23
         if (dmn->autoShutdownTimeout) {
ce7b23
             if (timerActive) {
ce7b23
-                for (i = 0; i < dmn->nservers; i++) {
ce7b23
-                    if (virNetServerHasClients(dmn->servers[i])) {
ce7b23
-                        VIR_DEBUG("Deactivating shutdown timer %d", timerid);
ce7b23
-                        virEventUpdateTimeout(timerid, -1);
ce7b23
-                        timerActive = false;
ce7b23
-                        break;
ce7b23
-                    }
ce7b23
+                if (virNetDaemonHasClients(dmn)) {
ce7b23
+                    VIR_DEBUG("Deactivating shutdown timer %d", timerid);
ce7b23
+                    virEventUpdateTimeout(timerid, -1);
ce7b23
+                    timerActive = false;
ce7b23
                 }
ce7b23
             } else {
ce7b23
-                for (i = 0; i < dmn->nservers; i++) {
ce7b23
-                    if (!virNetServerHasClients(dmn->servers[i])) {
ce7b23
-                        VIR_DEBUG("Activating shutdown timer %d", timerid);
ce7b23
-                        virEventUpdateTimeout(timerid,
ce7b23
-                                              dmn->autoShutdownTimeout * 1000);
ce7b23
-                        timerActive = true;
ce7b23
-                        break;
ce7b23
-                    }
ce7b23
+                if (!virNetDaemonHasClients(dmn)) {
ce7b23
+                    VIR_DEBUG("Activating shutdown timer %d", timerid);
ce7b23
+                    virEventUpdateTimeout(timerid,
ce7b23
+                                          dmn->autoShutdownTimeout * 1000);
ce7b23
+                    timerActive = true;
ce7b23
                 }
ce7b23
             }
ce7b23
         }
ce7b23
-- 
ce7b23
2.4.3
ce7b23