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

Pavel Grunt pgrunt at redhat.com
Tue Sep 13 21:29:16 UTC 2016


Also remove unused AGENT_MSG_FILTER_END
---
v2 per Christophe's comments:
 - removed AGENT_MSG_FILTER_END
 - avoid 'default' and explicitly check for the enum value
---
 server/agent-msg-filter.c |  4 ++--
 server/agent-msg-filter.h | 11 +++++------
 server/reds.c             |  7 +++++--
 3 files changed, 12 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 800107b..5ff50cd 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;
 
@@ -780,6 +780,9 @@ static gboolean vdi_port_read_buf_process(RedCharDeviceVDIPort *dev,
             return TRUE;
         case AGENT_MSG_FILTER_DISCARD:
             return FALSE;
+        case AGENT_MSG_FILTER_MONITORS_CONFIG:
+            g_warn_if_reached();
+            /* fall through */
         case AGENT_MSG_FILTER_PROTO_ERROR:
             *error = TRUE;
             return FALSE;
@@ -1199,7 +1202,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