[Spice-devel] [PATCH spice-server] utils: Check we list all channel names

Frediano Ziglio fziglio at redhat.com
Wed Nov 8 16:33:24 UTC 2017


This prevent future problems supporting new channels.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/utils.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Christophe, is this addressing the problem you were thinking?

diff --git a/server/utils.c b/server/utils.c
index ff1fc2d1..746132e5 100644
--- a/server/utils.c
+++ b/server/utils.c
@@ -20,6 +20,8 @@
 
 #include <glib.h>
 #include <spice/enums.h>
+#include <common/macros.h>
+
 #include "utils.h"
 
 int rgb32_data_has_alpha(int width, int height, size_t stride,
@@ -65,6 +67,14 @@ static const char *const channel_names[] = {
     [ SPICE_CHANNEL_WEBDAV   ] = "webdav",
 };
 
+/* Make sure the last channel in the protocol has a name.
+ * We don't want to do this check in all cases as this would make code
+ * fail to compile if there are additional channels in the protocol so
+ * do this check only if ENABLE_EXTRA_CHECKS is enabled */
+#if ENABLE_EXTRA_CHECKS
+verify(G_N_ELEMENTS(channel_names) == SPICE_END_CHANNEL);
+#endif
+
 /**
  * red_channel_type_to_str:
  *
-- 
2.13.6



More information about the Spice-devel mailing list