[Spice-devel] [PATCH spice v3 1/2] agent-filter: Use enum as return value

Pavel Grunt pgrunt at redhat.com
Fri Sep 16 10:32:23 UTC 2016


Explicitely discard AGENT_MSG_FILTER_MONITORS_CONFIG messages
from the agent.

Also remove unused AGENT_MSG_FILTER_END
---
v3: discard AGENT_MSG_FILTER_MONITORS_CONFIG
---
 server/agent-msg-filter.c |  4 ++--
 server/agent-msg-filter.h | 11 +++++------
 server/reds.c             |  6 ++++--
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/server/agent-msg-filter.c b/server/agent-msg-filter.c
index a11f624..7921fe7 100644
--- a/server/agent-msg-filter.c
+++ b/server/agent-msg-filter.c
@@ -48,8 +48,8 @@ void agent_msg_filter_init(AgentMsgFilter *filter,
     filter->discard_all = discard_all;
 }
 
-int agent_msg_filter_process_data(AgentMsgFilter *filter,
-                                  const uint8_t *data, uint32_t len)
+AgentMsgFilterResult agent_msg_filter_process_data(AgentMsgFilter *filter,
+                                                   const uint8_t *data, uint32_t len)
 {
     struct VDAgentMessage msg_header;
 
diff --git a/server/agent-msg-filter.h b/server/agent-msg-filter.h
index d61f8d4..b4d8e72 100644
--- a/server/agent-msg-filter.h
+++ b/server/agent-msg-filter.h
@@ -25,17 +25,16 @@
 #include <glib.h>
 
 /* Possible return values for agent_msg_filter_process_data */
-enum {
+typedef enum {
     AGENT_MSG_FILTER_OK,
     AGENT_MSG_FILTER_DISCARD,
     AGENT_MSG_FILTER_PROTO_ERROR,
     AGENT_MSG_FILTER_MONITORS_CONFIG,
-    AGENT_MSG_FILTER_END
-};
+} AgentMsgFilterResult;
 
 typedef struct AgentMsgFilter {
     int msg_data_to_read;
-    int result;
+    AgentMsgFilterResult result;
     gboolean copy_paste_enabled;
     gboolean file_xfer_enabled;
     gboolean use_client_monitors_config;
@@ -49,7 +48,7 @@ void agent_msg_filter_init(AgentMsgFilter *filter,
 void agent_msg_filter_config(AgentMsgFilter *filter,
                              gboolean copy_paste, gboolean file_xfer,
                              gboolean use_client_monitors_config);
-int agent_msg_filter_process_data(AgentMsgFilter *filter,
-                                  const uint8_t *data, uint32_t len);
+AgentMsgFilterResult agent_msg_filter_process_data(AgentMsgFilter *filter,
+                                                   const uint8_t *data, uint32_t len);
 
 #endif
diff --git a/server/reds.c b/server/reds.c
index a387eeb..3addc1e 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -767,7 +767,7 @@ static void vdi_port_read_buf_release(uint8_t *data, void *opaque)
 static gboolean vdi_port_read_buf_process(RedCharDeviceVDIPort *dev,
                                           RedVDIReadBuf *buf, gboolean *error)
 {
-    int res;
+    AgentMsgFilterResult res;
 
     *error = FALSE;
 
@@ -778,6 +778,8 @@ static gboolean vdi_port_read_buf_process(RedCharDeviceVDIPort *dev,
         switch (res) {
         case AGENT_MSG_FILTER_OK:
             return TRUE;
+        case AGENT_MSG_FILTER_MONITORS_CONFIG:
+            /* fall through */
         case AGENT_MSG_FILTER_DISCARD:
             return FALSE;
         case AGENT_MSG_FILTER_PROTO_ERROR:
@@ -1199,7 +1201,7 @@ void reds_on_main_agent_data(RedsState *reds, MainChannelClient *mcc, void *mess
 {
     RedCharDeviceVDIPort *dev = reds->agent_dev;
     VDIChunkHeader *header;
-    int res;
+    AgentMsgFilterResult res;
 
     res = agent_msg_filter_process_data(&reds->agent_dev->priv->write_filter,
                                         message, size);
-- 
2.10.0



More information about the Spice-devel mailing list