diff options
-rw-r--r-- | server/red_channel.c | 11 | ||||
-rw-r--r-- | server/red_channel.h | 4 | ||||
-rw-r--r-- | 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 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; } |