From 7cc85f33be36eee3351618e53f9ba9fbc5ce7472 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 1 Apr 2011 10:16:29 +0200 Subject: server: Don't stop writing agent data to the guest when the client disconnects write_to_vdi_port() was checking for reds->agent_state.connected to determine wether it could write queued data. But agent_state.connected reflects if *both* ends are connected. If the client has disconnected, but the guest agent is still connected and some data is still pending (like a final clipboard release from the client), then this data should be written to the guest agent. --- server/reds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/reds.c b/server/reds.c index 1521bc52..b286809e 100644 --- a/server/reds.c +++ b/server/reds.c @@ -1170,12 +1170,12 @@ static int write_to_vdi_port() int total = 0; int n; - if (!reds->agent_state.connected || reds->mig_target) { + if (!vdagent || reds->mig_target) { return 0; } sif = SPICE_CONTAINEROF(vdagent->base.sif, SpiceCharDeviceInterface, base); - while (reds->agent_state.connected) { + while (vdagent) { if (!(ring_item = ring_get_tail(&state->write_queue))) { break; } -- cgit