Blame SOURCES/0021-Make-creation-of-vdagent_file_xfers-optional.patch

ad7ee3
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
ad7ee3
From: Christophe Fergeau <cfergeau@redhat.com>
ad7ee3
Date: Thu, 27 Feb 2014 18:45:24 +0100
ad7ee3
Subject: [PATCH] Make creation of 'vdagent_file_xfers' optional
ad7ee3
ad7ee3
This commit only adds if (vdagent_file_xfers != NULL) {} checks before
ad7ee3
calling into the file transfer code. This allows to disable file transfer
ad7ee3
handling by setting this variable to NULL.
ad7ee3
ad7ee3
(cherry picked from commit 7fc4525dcedb280d22feabcd577ec84e5781960f)
ad7ee3
---
ad7ee3
 src/vdagent.c | 30 ++++++++++++++++++++----------
ad7ee3
 1 file changed, 20 insertions(+), 10 deletions(-)
ad7ee3
ad7ee3
diff --git a/src/vdagent.c b/src/vdagent.c
ad7ee3
index 1336faa..9586432 100644
ad7ee3
--- a/src/vdagent.c
ad7ee3
+++ b/src/vdagent.c
ad7ee3
@@ -89,13 +89,17 @@ void daemon_read_complete(struct udscs_connection **connp,
ad7ee3
         }
ad7ee3
         break;
ad7ee3
     case VDAGENTD_FILE_XFER_START:
ad7ee3
-        vdagent_file_xfers_start(vdagent_file_xfers,
ad7ee3
-                                 (VDAgentFileXferStartMessage *)data);
ad7ee3
+        if (vdagent_file_xfers != NULL) {
ad7ee3
+            vdagent_file_xfers_start(vdagent_file_xfers,
ad7ee3
+                                     (VDAgentFileXferStartMessage *)data);
ad7ee3
+        }
ad7ee3
         free(data);
ad7ee3
         break;
ad7ee3
     case VDAGENTD_FILE_XFER_STATUS:
ad7ee3
-        vdagent_file_xfers_status(vdagent_file_xfers,
ad7ee3
-                                  (VDAgentFileXferStatusMessage *)data);
ad7ee3
+        if (vdagent_file_xfers != NULL) {
ad7ee3
+            vdagent_file_xfers_status(vdagent_file_xfers,
ad7ee3
+                                      (VDAgentFileXferStatusMessage *)data);
ad7ee3
+        }
ad7ee3
         free(data);
ad7ee3
         break;
ad7ee3
     case VDAGENTD_AUDIO_VOLUME_SYNC: {
ad7ee3
@@ -109,15 +113,19 @@ void daemon_read_complete(struct udscs_connection **connp,
ad7ee3
         break;
ad7ee3
     }
ad7ee3
     case VDAGENTD_FILE_XFER_DATA:
ad7ee3
-        vdagent_file_xfers_data(vdagent_file_xfers,
ad7ee3
-                                (VDAgentFileXferDataMessage *)data);
ad7ee3
+        if (vdagent_file_xfers != NULL) {
ad7ee3
+            vdagent_file_xfers_data(vdagent_file_xfers,
ad7ee3
+                                    (VDAgentFileXferDataMessage *)data);
ad7ee3
+        }
ad7ee3
         free(data);
ad7ee3
         break;
ad7ee3
     case VDAGENTD_CLIENT_DISCONNECTED:
ad7ee3
         vdagent_x11_client_disconnected(x11);
ad7ee3
-        vdagent_file_xfers_destroy(vdagent_file_xfers);
ad7ee3
-        vdagent_file_xfers = vdagent_file_xfers_create(client, fx_dir,
ad7ee3
-                                                       fx_open_dir, debug);
ad7ee3
+        if (vdagent_file_xfers != NULL) {
ad7ee3
+            vdagent_file_xfers_destroy(vdagent_file_xfers);
ad7ee3
+            vdagent_file_xfers = vdagent_file_xfers_create(client, fx_dir,
ad7ee3
+                                                           fx_open_dir, debug);
ad7ee3
+        }
ad7ee3
         break;
ad7ee3
     default:
ad7ee3
         syslog(LOG_ERR, "Unknown message from vdagentd type: %d, ignoring",
ad7ee3
@@ -305,7 +313,9 @@ reconnect:
ad7ee3
         udscs_client_handle_fds(&client, &readfds, &writefds);
ad7ee3
     }
ad7ee3
 
ad7ee3
-    vdagent_file_xfers_destroy(vdagent_file_xfers);
ad7ee3
+    if (vdagent_file_xfers != NULL) {
ad7ee3
+        vdagent_file_xfers_destroy(vdagent_file_xfers);
ad7ee3
+    }
ad7ee3
     vdagent_x11_destroy(x11, client == NULL);
ad7ee3
     udscs_destroy_connection(&client);
ad7ee3
     if (!quit && do_daemonize)