summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/red_channel.c5
-rw-r--r--server/red_channel.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/server/red_channel.c b/server/red_channel.c
index a1bce119..22a4cc08 100644
--- a/server/red_channel.c
+++ b/server/red_channel.c
@@ -719,3 +719,8 @@ int red_channel_get_first_socket(RedChannel *channel)
}
return channel->stream->socket;
}
+
+SpiceDataHeader *red_channel_get_header(RedChannel *channel)
+{
+ return channel->send_data.header;
+}
diff --git a/server/red_channel.h b/server/red_channel.h
index 9d13dd73..61aa788c 100644
--- a/server/red_channel.h
+++ b/server/red_channel.h
@@ -275,4 +275,11 @@ void red_channel_send(RedChannel *channel);
SpiceMarshaller *red_channel_get_marshaller(RedChannel *channel);
RedsStream *red_channel_get_stream(RedChannel *channel);
+/* this is a convenience function for sending messages, sometimes (migration only?)
+ * the serial from the header needs to be available for sending. Note that the header
+ * pointer retrieved is not valid except between red_channel_reset_send_data and
+ * red_channel_begin_send_message. red_channel_init_send_data changes the header (sets
+ * the type in it) as a convenience function. It is preffered to do that through it and
+ * not via the below accessor and direct header manipulation. */
+SpiceDataHeader *red_channel_get_header(RedChannel *channel);
#endif