summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/cursor-channel.c4
-rw-r--r--server/cursor-channel.h2
-rw-r--r--server/red_worker.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/server/cursor-channel.c b/server/cursor-channel.c
index 7ab92857..b9842259 100644
--- a/server/cursor-channel.c
+++ b/server/cursor-channel.c
@@ -135,8 +135,10 @@ static void red_reset_cursor_cache(RedChannelClient *rcc)
red_cursor_cache_reset(RCC_TO_CCC(rcc), CLIENT_CURSOR_CACHE_SIZE);
}
-void cursor_channel_disconnect(RedChannel *channel)
+void cursor_channel_disconnect(CursorChannel *cursor_channel)
{
+ RedChannel *channel = (RedChannel *)cursor_channel;
+
if (!channel || !red_channel_is_connected(channel)) {
return;
}
diff --git a/server/cursor-channel.h b/server/cursor-channel.h
index 19142269..293cfc18 100644
--- a/server/cursor-channel.h
+++ b/server/cursor-channel.h
@@ -78,7 +78,7 @@ typedef struct CursorChannel {
G_STATIC_ASSERT(sizeof(CursorItem) <= QXL_CURSUR_DEVICE_DATA_SIZE);
CursorChannel* cursor_channel_new (RedWorker *worker);
-void cursor_channel_disconnect (RedChannel *channel);
+void cursor_channel_disconnect (CursorChannel *cursor_channel);
void cursor_channel_reset (CursorChannel *cursor);
void cursor_channel_process_cmd (CursorChannel *cursor, RedCursorCmd *cursor_cmd,
uint32_t group_id);
diff --git a/server/red_worker.c b/server/red_worker.c
index 2edfef50..574414c1 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -8828,7 +8828,7 @@ static inline void flush_cursor_commands(RedWorker *worker)
red_channel_send(channel);
if (red_get_monotonic_time() >= end_time) {
spice_warning("flush cursor timeout");
- cursor_channel_disconnect(channel);
+ cursor_channel_disconnect(worker->cursor_channel);
worker->cursor_channel = NULL;
} else {
sleep_count++;