in main_channel_push_agent_connected(), it used the convenience function
red_channel_test_remote_cap() to determine whether to send the
AGENT_CONNECTED_TOKENS message, or the AGENT_CONNECTED message. However,
this function returns false if *any* one client doesn't support the
capability. We should instead check each individual client separately to
see if they support the capability.
---
server/main-channel.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/server/main-channel.c b/server/main-channel.c
index be4f758..d018325 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -99,12 +99,16 @@ void main_channel_push_mouse_mode(MainChannel *main_chan,
int current_mode,
void main_channel_push_agent_connected(MainChannel *main_chan)
{
- if (red_channel_test_remote_cap(RED_CHANNEL(main_chan),
- SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS)) {
- red_channel_pipes_add_type(RED_CHANNEL(main_chan),
-
RED_PIPE_ITEM_TYPE_MAIN_AGENT_CONNECTED_TOKENS);
- } else {
- red_channel_pipes_add_empty_msg(RED_CHANNEL(main_chan),
SPICE_MSG_MAIN_AGENT_CONNECTED);
+ GListIter iter;
+ RedChannelClient *rcc;
+ FOREACH_CLIENT(RED_CHANNEL(main_chan), iter, rcc) {
+ if (red_channel_client_test_remote_cap(rcc,
+
SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS)) {
+ red_channel_client_pipe_add_type(rcc,
+
RED_PIPE_ITEM_TYPE_MAIN_AGENT_CONNECTED_TOKENS);
+ } else {
+ red_channel_client_pipe_add_empty_msg(rcc,
SPICE_MSG_MAIN_AGENT_CONNECTED);
+ }
}
}
--
2.9.3
_______________________________________________
Spice-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/spice-devel