diff options
author | Hans de Goede <hdegoede@redhat.com> | 2011-04-01 10:16:29 +0200 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2011-04-04 11:23:05 +0200 |
commit | c652dfa5e635342672a66b9f4c7cbbfb1820341c (patch) | |
tree | 37e9d688971f5f1538d71b959760e79504545a8e /server/reds.c | |
parent | f8e6dc78c7e71a3744be380350a55ad98f75def7 (diff) | |
download | spice-c652dfa5e635342672a66b9f4c7cbbfb1820341c.tar.gz spice-c652dfa5e635342672a66b9f4c7cbbfb1820341c.tar.xz spice-c652dfa5e635342672a66b9f4c7cbbfb1820341c.zip |
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.
Diffstat (limited to 'server/reds.c')
-rw-r--r-- | server/reds.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/server/reds.c b/server/reds.c index 705316bb..ba159be7 100644 --- a/server/reds.c +++ b/server/reds.c @@ -765,12 +765,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; } |