[Spice-devel] [PATCH 06/24] server/red_channel (tunnel): change sig of red_channel_handle_message

Alon Levy alevy at redhat.com
Wed Jan 19 10:07:52 PST 2011


for later usage with red_worker
---
 server/red_channel.c       |   11 ++++++-----
 server/red_channel.h       |    4 +++-
 server/red_tunnel_worker.c |    4 ++--
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/server/red_channel.c b/server/red_channel.c
index 5220341..c13d972 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -387,15 +387,16 @@ void red_channel_init_outgoing_messages_window(RedChannel *channel)
     red_channel_push(channel);
 }
 
-int red_channel_handle_message(RedChannel *channel, SpiceDataHeader *header, uint8_t *msg)
+int red_channel_handle_message(RedChannel *channel, uint32_t size,
+                               uint16_t type, void *message)
 {
-    switch (header->type) {
+    switch (type) {
     case SPICE_MSGC_ACK_SYNC:
-        if (header->size != sizeof(uint32_t)) {
+        if (size != sizeof(uint32_t)) {
             red_printf("bad message size");
             return FALSE;
         }
-        channel->ack_data.client_generation = *(uint32_t *)(msg);
+        channel->ack_data.client_generation = *(uint32_t *)(message);
         break;
     case SPICE_MSGC_ACK:
         if (channel->ack_data.client_generation == channel->ack_data.generation) {
@@ -404,7 +405,7 @@ int red_channel_handle_message(RedChannel *channel, SpiceDataHeader *header, uin
         }
         break;
     default:
-        red_printf("invalid message type %u", header->type);
+        red_printf("invalid message type %u", type);
         return FALSE;
     }
     return TRUE;
diff --git a/server/red_channel.h b/server/red_channel.h
index 69b4cbf..0339559 100644
--- a/server/red_channel.h
+++ b/server/red_channel.h
@@ -196,7 +196,9 @@ void red_channel_shutdown(RedChannel *channel);
 void red_channel_init_outgoing_messages_window(RedChannel *channel);
 
 /* handles general channel msgs from the client */
-int red_channel_handle_message(RedChannel *channel, SpiceDataHeader *header, uint8_t *msg);
+int red_channel_handle_message(RedChannel *channel, uint32_t size,
+                               uint16_t type, void *message);
+
 
 /* when preparing send_data: should call reset, then init and then add_buf per buffer that is
    being sent */
diff --git a/server/red_tunnel_worker.c b/server/red_tunnel_worker.c
index 6d6cc7a..151ccd1 100644
--- a/server/red_tunnel_worker.c
+++ b/server/red_tunnel_worker.c
@@ -2247,7 +2247,7 @@ static int tunnel_channel_handle_message(RedChannel *channel, SpiceDataHeader *h
         }
         break;
     default:
-        return red_channel_handle_message(channel, header, msg);
+        return red_channel_handle_message(channel, header->size, header->type, msg);
     }
 
     switch (header->type) {
@@ -2325,7 +2325,7 @@ static int tunnel_channel_handle_message(RedChannel *channel, SpiceDataHeader *h
         }
         return tunnel_channel_handle_migrate_data(tunnel_channel, (TunnelMigrateData *)msg);
     default:
-        return red_channel_handle_message(channel, header, msg);
+        return red_channel_handle_message(channel, header->size, header->type, msg);
     }
     return TRUE;
 }
-- 
1.7.3.4



More information about the Spice-devel mailing list