summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/server/reds.c b/server/reds.c
index a8083905..1521bc52 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -751,7 +751,7 @@ static void reds_disconnect()
if (sif->state) {
sif->state(vdagent, reds->agent_state.connected);
}
- reds_reset_vdp();
+ reds->agent_state.client_agent_started = FALSE;
}
reds_shatdown_channels();
@@ -1099,13 +1099,16 @@ static void reds_agent_remove()
SpiceCharDeviceInstance *sin = vdagent;
SpiceCharDeviceInterface *sif;
+ if (!reds->mig_target) {
+ reds_reset_vdp();
+ }
+
if (!reds->agent_state.connected) {
return;
}
reds->agent_state.connected = 0;
vdagent = NULL;
reds_update_mouse_mode();
-
if (!reds->peer || !sin) {
return;
}
@@ -1117,7 +1120,6 @@ static void reds_agent_remove()
if (reds->mig_target) {
return;
}
- reds_reset_vdp();
reds_send_agent_disconnected();
}