Hi Tomáš, On 09/06/2017 03:52 AM, Tomáš Bohdálek wrote: > --- > enums.js | 12 ++++++++++-- > main.js | 16 +++++++++++++++- > spicemsg.js | 4 ++++ > 3 files changed, 29 insertions(+), 3 deletions(-) > > diff --git a/enums.js b/enums.js > index d5a9003..7154595 100644 > --- a/enums.js > +++ b/enums.js > @@ -369,12 +369,20 @@ var VD_AGENT_CAP_MOUSE_STATE = 0, > VD_AGENT_CAP_GUEST_LINEEND_LF = 8, > VD_AGENT_CAP_GUEST_LINEEND_CRLF = 9, > VD_AGENT_CAP_MAX_CLIPBOARD = 10, > - VD_AGENT_END_CAP = 11; > + VD_AGENT_CAP_AUDIO_VOLUME_SYNC = 11, > + VD_AGENT_CAP_MONITORS_CONFIG_POSITION = 12, > + VD_AGENT_CAP_FILE_XFER_DISABLED = 13, > + VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS = 14, > + VD_AGENT_END_CAP = 15; > > var VD_AGENT_FILE_XFER_STATUS_CAN_SEND_DATA = 0, > VD_AGENT_FILE_XFER_STATUS_CANCELLED = 1, > VD_AGENT_FILE_XFER_STATUS_ERROR = 2, > - VD_AGENT_FILE_XFER_STATUS_SUCCESS = 3; > + VD_AGENT_FILE_XFER_STATUS_SUCCESS = 3, > + VD_AGENT_FILE_XFER_STATUS_NOT_ENOUGH_SPACE = 4, > + VD_AGENT_FILE_XFER_STATUS_SESSION_LOCKED = 5, > + VD_AGENT_FILE_XFER_STATUS_AGENT_NOT_CONNECTED = 6, > + VD_AGENT_FILE_XFER_STATUS_DISABLED = 7; > > var SPICE_STREAM_FLAGS_TOP_DOWN = (1 << 0); This bit does not apply for me, as the master does appear to have that top down flag. > > diff --git a/main.js b/main.js > index 173ff97..0237f0e 100644 > --- a/main.js > +++ b/main.js > @@ -344,7 +344,8 @@ SpiceMainConn.prototype.announce_agent_capabilities = function(request) > { > var caps = new VDAgentAnnounceCapabilities(request, (1 << VD_AGENT_CAP_MOUSE_STATE) | > (1 << VD_AGENT_CAP_MONITORS_CONFIG) | > - (1 << VD_AGENT_CAP_REPLY)); > + (1 << VD_AGENT_CAP_REPLY) | > + (1 << VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS)); > this.send_agent_message(VD_AGENT_ANNOUNCE_CAPABILITIES, caps); > } > > @@ -387,11 +388,24 @@ SpiceMainConn.prototype.handle_file_xfer_status = function(file_xfer_status) > break; > case VD_AGENT_FILE_XFER_STATUS_SUCCESS: > break; > + case VD_AGENT_FILE_XFER_STATUS_NOT_ENOUGH_SPACE: > + xfer_error = "not enough space in the remote system"; > + break; > + case VD_AGENT_FILE_XFER_STATUS_SESSION_LOCKED: > + xfer_error = "remote system is locked"; > + break; > + case VD_AGENT_FILE_XFER_STATUS_AGENT_NOT_CONNECTED: > + xfer_error = "spice angent is not connected"; > + break; > + case VD_AGENT_FILE_XFER_STATUS_DISABLED: > + xfer_error = "file transfer is disabled on the remote system"; > + break; > default: > xfer_error = "unhandled status type: " + file_xfer_status.result; > break; > } > > + xfer_error = "File transfer: " + xfer_error; > this.file_xfer_completed(xfer_task, xfer_error) Question: What do we display on success? It seems like it might be an opportunity to put in a nicer message. > } > > diff --git a/spicemsg.js b/spicemsg.js > index 3619996..7ebc64b 100644 > --- a/spicemsg.js > +++ b/spicemsg.js > @@ -577,6 +577,10 @@ VDAgentFileXferStatusMessage.prototype = > var dv = new SpiceDataView(a); > this.id = dv.getUint32(at, true); at += 4; > this.result = dv.getUint32(at, true); at += 4; > + if (this.result >= VD_AGENT_FILE_XFER_STATUS_NOT_ENOUGH_SPACE) Shouldn't that be '==', not '>=' ? > + { > + this.data = dv.getUint64(at, true); at += 8; > + } Cheers, Jeremy _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel