diff options
author | Arnon Gilboa <agilboa@redhat.com> | 2013-06-27 14:23:49 +0300 |
---|---|---|
committer | Arnon Gilboa <agilboa@redhat.com> | 2013-06-27 14:23:49 +0300 |
commit | c751e8fda0b9dfc056d9e738d1ff32274a75f8dc (patch) | |
tree | a37bd391bbf4cf42b63a73d2057cb6446108e647 /vdagent/vdagent.cpp | |
parent | f7968d50350dd23ea9df2de807bad2cfbfb64844 (diff) |
vdagent: add support for client -> guest file transfers
rhbz#956146
Diffstat (limited to 'vdagent/vdagent.cpp')
-rw-r--r-- | vdagent/vdagent.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp index af99961..e5567f3 100644 --- a/vdagent/vdagent.cpp +++ b/vdagent/vdagent.cpp @@ -18,6 +18,7 @@ #include "vdcommon.h" #include "desktop_layout.h" #include "display_setting.h" +#include "file_xfer.h" #include "ximage.h" #undef max #undef min @@ -147,6 +148,7 @@ private: bool _desktop_switch; DesktopLayout* _desktop_layout; DisplaySetting _display_setting; + FileXfer _file_xfer; HANDLE _vio_serial; OVERLAPPED _read_overlapped; OVERLAPPED _write_overlapped; @@ -1237,6 +1239,15 @@ void VDAgent::dispatch_message(VDAgentMessage* msg, uint32_t port) case VD_AGENT_ANNOUNCE_CAPABILITIES: res = handle_announce_capabilities((VDAgentAnnounceCapabilities*)msg->data, msg->size); break; + case VD_AGENT_FILE_XFER_START: + case VD_AGENT_FILE_XFER_STATUS: + case VD_AGENT_FILE_XFER_DATA: { + VDAgentFileXferStatusMessage status; + if (_file_xfer.dispatch(msg, &status)) { + write_message(VD_AGENT_FILE_XFER_STATUS, sizeof(status), &status); + } + break; + } case VD_AGENT_CLIENT_DISCONNECTED: vd_printf("Client disconnected, agent to be restarted"); set_control_event(CONTROL_STOP); |