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

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