summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 be66dfb3..6f3ed73c 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 f3c25d47..c97509c7 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 2553943f..f60894b1 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;
}