diff options
author | Frediano Ziglio <fziglio@redhat.com> | 2020-03-17 12:56:00 +0000 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2020-03-19 14:35:58 +0000 |
commit | f224422c0d0e18ef6b1c3c70f923b6fb81d0e7f3 (patch) | |
tree | c16fe736bf8b4716fba4ca7ac203fc2488325410 | |
parent | f79ad62a6d73b5684bd375997f9885cb144b52e4 (diff) |
vd_agent: Add a new detail for VD_AGENT_FILE_XFER_STATUS_ERROR status
This will allow the agent to send back a more detailed error code.
More comments on header file.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
-rw-r--r-- | spice/vd_agent.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/spice/vd_agent.h b/spice/vd_agent.h index 51889fc..b0d6fde 100644 --- a/spice/vd_agent.h +++ b/spice/vd_agent.h @@ -126,6 +126,7 @@ typedef struct SPICE_ATTR_PACKED VDAgentFileXferStatusMessage { * to clients with VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS capability. * Type of data varies with the result: * result : data type (NULL if no data) + * VD_AGENT_FILE_XFER_STATUS_ERROR : VDAgentFileXferStatusError * VD_AGENT_FILE_XFER_STATUS_NOT_ENOUGH_SPACE : uint64_t * VD_AGENT_FILE_XFER_STATUS_SESSION_LOCKED : NULL * VD_AGENT_FILE_XFER_STATUS_VDAGENT_NOT_CONNECTED : NULL @@ -134,6 +135,27 @@ typedef struct SPICE_ATTR_PACKED VDAgentFileXferStatusMessage { uint8_t data[0]; } VDAgentFileXferStatusMessage; +enum { + /* Error number is a G_IO_ERROR_xxx defined in + * https://developer.gnome.org/gio/stable/gio-GIOError.html + */ + VD_AGENT_FILE_XFER_STATUS_ERROR_GLIB_IO, +}; + +/* Detailed error for VD_AGENT_FILE_XFER_STATUS_ERROR. + * Only present if VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS is + * negotiated and the size of the message can contain it. + * Otherwise a generic error should be assumed and reported. + */ +typedef struct SPICE_ATTR_PACKED VDAgentFileXferStatusError { + /* One of VD_AGENT_FILE_XFER_STATUS_ERROR_xxx enumeration + */ + uint8_t error_type; + /* An error code which enumeration depends on error_type + */ + uint32_t error_code; +} VDAgentFileXferStatusError; + typedef struct SPICE_ATTR_PACKED VDAgentFileXferStartMessage { uint32_t id; uint8_t data[0]; |