summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrediano Ziglio <freddy77@gmail.com>2020-05-15 14:19:55 +0100
committerFrediano Ziglio <freddy77@gmail.com>2020-05-15 15:22:52 +0100
commitfa2e3371c8a1cc3038039d08e13a289ae4fdb207 (patch)
treeab6e3d350ff8db0d5a179b0c03a23a1349e647b8
parent0fe97cc05aee4669b446ac85e19066c4771860ff (diff)
vdagent: Reset properly state of pending large messages upon disconnection
If the client closes the connection while having pending large messages (split into multiple chunks) the state is not correctly reset causing next client messages to be not correctly handled. This can occur for instance if the client is closed (or killed) while transferring a large file. This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1548419. Signed-off-by: Frediano Ziglio <freddy77@gmail.com> Acked-by: Victor Toso <victortoso@redhat.com>
-rw-r--r--vdagent/vdagent.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
index 35a7c95..da8b219 100644
--- a/vdagent/vdagent.cpp
+++ b/vdagent/vdagent.cpp
@@ -1348,6 +1348,7 @@ void VDAgent::dispatch_message(VDAgentMessage* msg, uint32_t port)
}
case VD_AGENT_CLIENT_DISCONNECTED:
vd_printf("Client disconnected, resetting agent state");
+ cleanup_in_msg();
set_control_event(CONTROL_RESET);
break;
case VD_AGENT_MAX_CLIPBOARD: