diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-02-25 15:35:54 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2013-03-06 16:22:15 +0100 |
commit | 260cde2c88e0c25601953690b0814d141a637b63 (patch) | |
tree | 6173a88324c3b142c176211337b411189c6ebfe7 | |
parent | 99222bc472d3a42e948532425dcffb4caa72911b (diff) | |
download | vd_agent-260cde2c88e0c25601953690b0814d141a637b63.tar.gz vd_agent-260cde2c88e0c25601953690b0814d141a637b63.tar.xz vd_agent-260cde2c88e0c25601953690b0814d141a637b63.zip |
file-xfers: Report status to sender (the client) on xfer completion
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | src/vdagent-file-xfers.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/vdagent-file-xfers.c b/src/vdagent-file-xfers.c index 898b77f..faff743 100644 --- a/src/vdagent-file-xfers.c +++ b/src/vdagent-file-xfers.c @@ -255,7 +255,7 @@ void vdagent_file_xfers_data(struct vdagent_file_xfers *xfers, VDAgentFileXferDataMessage *msg) { AgentFileXferTask *task; - int len; + int len, status = -1; task = vdagent_file_xfers_get_task(xfers, msg->id); if (!task) @@ -277,8 +277,13 @@ void vdagent_file_xfers_data(struct vdagent_file_xfers *xfers, task->id, task->file_name); close(task->file_fd); task->file_fd = -1; - } else + status = VD_AGENT_FILE_XFER_STATUS_SUCCESS; + } else { syslog(LOG_ERR, "file-xfer: error received too much data"); + status = VD_AGENT_FILE_XFER_STATUS_ERROR; + } + udscs_write(xfers->vdagentd, VDAGENTD_FILE_XFER_STATUS, + msg->id, status, NULL, 0); g_hash_table_remove(xfers->xfers, GUINT_TO_POINTER(msg->id)); } } |