[Spice-devel] [PATCH vd_agent_linux v2] vdagent: Stop trying to connect to the daemon after a while

Frediano Ziglio fziglio at redhat.com
Mon Nov 19 10:23:22 UTC 2018


Do not try  indefinitely to connect to the daemon, should not
take long to activate.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 src/vdagent/vdagent.c | 6 ++++++
 1 file changed, 6 insertions(+)

Changes since v1:
- log error when we reach the limit

diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
index f7c8b72..7a58150 100644
--- a/src/vdagent/vdagent.c
+++ b/src/vdagent/vdagent.c
@@ -53,6 +53,7 @@ typedef struct VDAgent {
     struct vdagent_file_xfers *xfers;
     struct udscs_connection *conn;
     GIOChannel *x11_channel;
+    guint connection_attempts;
 
     GMainLoop *loop;
 } VDAgent;
@@ -370,6 +371,11 @@ static gboolean vdagent_init_async_cb(gpointer user_data)
                                 daemon_read_complete, daemon_disconnect_cb,
                                 debug);
     if (agent->conn == NULL) {
+        // limit connection attempts, this will try for 5 minutes
+        if (++agent->connection_attempts > 5 * 60) {
+            syslog(LOG_ERR, "Attempted to contact daemon for 5 minutes, giving up");
+            goto err_init;
+        }
         g_timeout_add_seconds(1, vdagent_init_async_cb, agent);
         return G_SOURCE_REMOVE;
     }
-- 
2.17.2



More information about the Spice-devel mailing list