summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2010-11-07 12:30:47 +0200
committerAlon Levy <alevy@redhat.com>2010-11-07 12:35:19 +0200
commit64d1deed403a39a684949ff604d563133e0cec3d (patch)
treed48920546294b8987169769721aae4f666c28b45
parent46dc081b555bab025519215a7e80ef0ecadbea7b (diff)
downloadspice-64d1deed403a39a684949ff604d563133e0cec3d.tar.gz
spice-64d1deed403a39a684949ff604d563133e0cec3d.tar.xz
spice-64d1deed403a39a684949ff604d563133e0cec3d.zip
server/red_channel: change sig of red_channel_handle_message for later usage with red_worker
-rw-r--r--server/red_channel.c11
-rw-r--r--server/red_channel.h4
-rw-r--r--server/red_tunnel_worker.c4
3 files changed, 11 insertions, 8 deletions
diff --git a/server/red_channel.c b/server/red_channel.c
index 0b4e6f18..82181d6d 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -385,15 +385,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) {
@@ -402,7 +403,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 16b3f2dd..e4b46554 100644
--- a/server/red_channel.h
+++ b/server/red_channel.h
@@ -199,7 +199,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 6092a76f..344188bc 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;
}