diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2014-02-27 18:45:24 +0100 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2014-09-18 13:34:26 +0200 |
commit | 7fc4525dcedb280d22feabcd577ec84e5781960f (patch) | |
tree | b425d513f2d5586a46e83c265b023de18446a65e | |
parent | ec9f11064efee2ad3f0be0d36f5fdbbbe2d51ad9 (diff) | |
download | vd_agent-7fc4525dcedb280d22feabcd577ec84e5781960f.tar.gz vd_agent-7fc4525dcedb280d22feabcd577ec84e5781960f.tar.xz vd_agent-7fc4525dcedb280d22feabcd577ec84e5781960f.zip |
Make creation of 'vdagent_file_xfers' optional
This commit only adds if (vdagent_file_xfers != NULL) {} checks before
calling into the file transfer code. This allows to disable file transfer
handling by setting this variable to NULL.
-rw-r--r-- | src/vdagent.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/vdagent.c b/src/vdagent.c index 905ff5b..b9ad95d 100644 --- a/src/vdagent.c +++ b/src/vdagent.c @@ -90,25 +90,33 @@ void daemon_read_complete(struct udscs_connection **connp, } break; case VDAGENTD_FILE_XFER_START: - vdagent_file_xfers_start(vdagent_file_xfers, - (VDAgentFileXferStartMessage *)data); + if (vdagent_file_xfers != NULL) { + vdagent_file_xfers_start(vdagent_file_xfers, + (VDAgentFileXferStartMessage *)data); + } free(data); break; case VDAGENTD_FILE_XFER_STATUS: - vdagent_file_xfers_status(vdagent_file_xfers, - (VDAgentFileXferStatusMessage *)data); + if (vdagent_file_xfers != NULL) { + vdagent_file_xfers_status(vdagent_file_xfers, + (VDAgentFileXferStatusMessage *)data); + } free(data); break; case VDAGENTD_FILE_XFER_DATA: - vdagent_file_xfers_data(vdagent_file_xfers, - (VDAgentFileXferDataMessage *)data); + if (vdagent_file_xfers != NULL) { + vdagent_file_xfers_data(vdagent_file_xfers, + (VDAgentFileXferDataMessage *)data); + } free(data); break; case VDAGENTD_CLIENT_DISCONNECTED: vdagent_x11_client_disconnected(x11); - vdagent_file_xfers_destroy(vdagent_file_xfers); - vdagent_file_xfers = vdagent_file_xfers_create(client, fx_dir, - fx_open_dir, debug); + if (vdagent_file_xfers != NULL) { + vdagent_file_xfers_destroy(vdagent_file_xfers); + vdagent_file_xfers = vdagent_file_xfers_create(client, fx_dir, + fx_open_dir, debug); + } break; default: syslog(LOG_ERR, "Unknown message from vdagentd type: %d, ignoring", @@ -336,7 +344,9 @@ reconnect: udscs_client_handle_fds(&client, &readfds, &writefds); } - vdagent_file_xfers_destroy(vdagent_file_xfers); + if (vdagent_file_xfers != NULL) { + vdagent_file_xfers_destroy(vdagent_file_xfers); + } vdagent_x11_destroy(x11, client == NULL); udscs_destroy_connection(&client); if (!quit && do_daemonize) |