From: Søren Sandmann Pedersen <ssp@xxxxxxxxxx> When a new client connects, there may be commands in the ring that it can't understand, so we need to process these before forwarding new commands to the client. By doing this after changing the capability bits we ensure that the new client will never see a command that it doesn't understand (under the assumption that the guest will read and obey the capability bits). --- server/red_worker.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/server/red_worker.c b/server/red_worker.c index 60b5471..f87967c 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -9493,6 +9493,11 @@ static void on_new_display_channel_client(DisplayChannelClient *dcc) } red_channel_client_ack_zero_messages_window(&dcc->common.base); if (worker->surfaces[0].context.canvas) { + int ring_is_empty; + + while (red_process_commands(worker, MAX_PIPE_SIZE, &ring_is_empty)) { + } + red_current_flush(worker, 0); push_new_primary_surface(dcc); red_push_surface_image(dcc, 0); -- 1.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel