summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-04-01 14:08:56 +0200
committerHans de Goede <hdegoede@redhat.com>2011-04-04 11:24:47 +0200
commit326fdf34f28b397914660f00ee9594316d82e516 (patch)
treefc5619a83eae975ec284f9b6088b163646381e58 /server/reds.c
parentd5906664080b73338bd2766565a94330fd3fd5d2 (diff)
downloadspice-326fdf34f28b397914660f00ee9594316d82e516.tar.gz
spice-326fdf34f28b397914660f00ee9594316d82e516.tar.xz
spice-326fdf34f28b397914660f00ee9594316d82e516.zip
server: reset read/write filter on agent/client disconnect
The agent message filter keeps track of messages as they are being send reset the relevant filter to its initial state when one of the 2 ends of the agent<->client "tunnel" disconnects.
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/server/reds.c b/server/reds.c
index c55f0d32..20184fa5 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -576,6 +576,7 @@ static void reds_reset_vdp()
ring_add(&state->read_bufs, &state->current_read_buf->link);
state->current_read_buf = NULL;
}
+ agent_msg_filter_init(&state->read_filter, agent_copypaste);
state->client_agent_started = FALSE;
}
@@ -594,6 +595,7 @@ void reds_disconnect()
reds->disconnecting = TRUE;
reds->link_id = 0;
+ agent_msg_filter_init(&reds->agent_state.write_filter, agent_copypaste);
if (reds->agent_state.connected) {
SpiceCharDeviceInterface *sif;
sif = SPICE_CONTAINEROF(vdagent->base.sif, SpiceCharDeviceInterface, base);