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

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