mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/win32-vd_agent
synced 2025-12-30 10:03:43 +00:00
Reduce indentation returning earlier
Also add some comments. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
bc3384f359
commit
873464cecc
@ -1 +1 @@
|
||||
Subproject commit 666b5c5780acf3176a9cff61ad549d30bb1b9824
|
||||
Subproject commit dca5931a3ac405139b8d05da68544cc43ae56d83
|
||||
@ -1393,6 +1393,7 @@ void VDAgent::handle_chunk(VDIChunk* chunk)
|
||||
{
|
||||
//FIXME: currently assumes that multi-part msg arrives only from client port
|
||||
if (_in_msg_pos == 0 || chunk->hdr.port == VDP_SERVER_PORT) {
|
||||
// ignore the chunk if too short
|
||||
if (chunk->hdr.size < sizeof(VDAgentMessage)) {
|
||||
return;
|
||||
}
|
||||
@ -1404,28 +1405,34 @@ void VDAgent::handle_chunk(VDIChunk* chunk)
|
||||
}
|
||||
uint32_t msg_size = sizeof(VDAgentMessage) + msg->size;
|
||||
if (chunk->hdr.size == msg_size) {
|
||||
// we got an entire message, handle it
|
||||
dispatch_message(msg, chunk->hdr.port);
|
||||
return;
|
||||
}
|
||||
|
||||
// got just the start, start to collapse all chunks into a
|
||||
// single buffer
|
||||
ASSERT(chunk->hdr.size < msg_size);
|
||||
_in_msg = (VDAgentMessage*)new uint8_t[msg_size];
|
||||
memcpy(_in_msg, chunk->data, chunk->hdr.size);
|
||||
_in_msg_pos = chunk->hdr.size;
|
||||
return;
|
||||
}
|
||||
|
||||
// the previous chunk was a partial message, so append this chunk to the previous chunk
|
||||
memcpy((uint8_t*)_in_msg + _in_msg_pos, chunk->data, chunk->hdr.size);
|
||||
_in_msg_pos += chunk->hdr.size;
|
||||
// update clipboard tick on each clipboard chunk for timeout setting
|
||||
if (_in_msg->type == VD_AGENT_CLIPBOARD && _clipboard_tick) {
|
||||
_clipboard_tick = GetTickCount();
|
||||
}
|
||||
if (_in_msg_pos == sizeof(VDAgentMessage) + _in_msg->size) {
|
||||
if (_in_msg->type == VD_AGENT_CLIPBOARD && !_clipboard_tick) {
|
||||
vd_printf("Clipboard received but dropped due to timeout");
|
||||
} else {
|
||||
ASSERT(chunk->hdr.size < msg_size);
|
||||
_in_msg = (VDAgentMessage*)new uint8_t[msg_size];
|
||||
memcpy(_in_msg, chunk->data, chunk->hdr.size);
|
||||
_in_msg_pos = chunk->hdr.size;
|
||||
}
|
||||
} else {
|
||||
memcpy((uint8_t*)_in_msg + _in_msg_pos, chunk->data, chunk->hdr.size);
|
||||
_in_msg_pos += chunk->hdr.size;
|
||||
// update clipboard tick on each clipboard chunk for timeout setting
|
||||
if (_in_msg->type == VD_AGENT_CLIPBOARD && _clipboard_tick) {
|
||||
_clipboard_tick = GetTickCount();
|
||||
}
|
||||
if (_in_msg_pos == sizeof(VDAgentMessage) + _in_msg->size) {
|
||||
if (_in_msg->type == VD_AGENT_CLIPBOARD && !_clipboard_tick) {
|
||||
vd_printf("Clipboard received but dropped due to timeout");
|
||||
} else {
|
||||
dispatch_message(_in_msg, 0);
|
||||
}
|
||||
cleanup_in_msg();
|
||||
dispatch_message(_in_msg, 0);
|
||||
}
|
||||
cleanup_in_msg();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user