summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2020-03-17 12:56:00 +0000
committerFrediano Ziglio <fziglio@redhat.com>2020-03-19 14:35:58 +0000
commitf224422c0d0e18ef6b1c3c70f923b6fb81d0e7f3 (patch)
treec16fe736bf8b4716fba4ca7ac203fc2488325410
parentf79ad62a6d73b5684bd375997f9885cb144b52e4 (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.h22
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];