summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2010-11-11 12:13:53 +0200
committerAlon Levy <alevy@redhat.com>2011-03-02 17:27:52 +0200
commite9be6ca82c331f00097bc7f56ce2c804d42fbf5f (patch)
tree731d4a74ce0e5c2ea6be871d33ed01b60925d407
parent17d57613225fe3520b42aaddbab4b5252b9c8b3b (diff)
server/red_channel (all): add red_channel_get_header
This is useful during the channel specific channel_send_pipe_item_proc callback, it allows altering or reader the header being sent.
-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