summaryrefslogtreecommitdiffstats
path: root/server/red_dispatcher.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/red_dispatcher.c')
-rw-r--r--server/red_dispatcher.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/server/red_dispatcher.c b/server/red_dispatcher.c
index 17b469e1..321232b2 100644
--- a/server/red_dispatcher.c
+++ b/server/red_dispatcher.c
@@ -102,6 +102,14 @@ static void red_dispatcher_set_display_peer(RedChannel *channel, RedClient *clie
payload.client = client;
payload.stream = stream;
payload.migration = migration;
+ payload.num_common_caps = num_common_caps;
+ payload.common_caps = spice_malloc(sizeof(uint32_t)*num_common_caps);
+ payload.num_caps = num_caps;
+ payload.caps = spice_malloc(sizeof(uint32_t)*num_caps);
+
+ memcpy(payload.common_caps, common_caps, sizeof(uint32_t)*num_common_caps);
+ memcpy(payload.caps, caps, sizeof(uint32_t)*num_caps);
+
dispatcher_send_message(&dispatcher->dispatcher,
RED_WORKER_MESSAGE_DISPLAY_CONNECT,
&payload);
@@ -154,6 +162,14 @@ static void red_dispatcher_set_cursor_peer(RedChannel *channel, RedClient *clien
payload.client = client;
payload.stream = stream;
payload.migration = migration;
+ payload.num_common_caps = num_common_caps;
+ payload.common_caps = spice_malloc(sizeof(uint32_t)*num_common_caps);
+ payload.num_caps = num_caps;
+ payload.caps = spice_malloc(sizeof(uint32_t)*num_caps);
+
+ memcpy(payload.common_caps, common_caps, sizeof(uint32_t)*num_common_caps);
+ memcpy(payload.caps, caps, sizeof(uint32_t)*num_caps);
+
dispatcher_send_message(&dispatcher->dispatcher,
RED_WORKER_MESSAGE_CURSOR_CONNECT,
&payload);