summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-02-25 15:35:54 +0100
committerHans de Goede <hdegoede@redhat.com>2013-03-06 16:22:15 +0100
commit260cde2c88e0c25601953690b0814d141a637b63 (patch)
tree6173a88324c3b142c176211337b411189c6ebfe7
parent99222bc472d3a42e948532425dcffb4caa72911b (diff)
downloadvd_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.c9
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));
}
}