mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-22 07:01:30 +00:00
[idd] clipboard: route file dataset records
This commit is contained in:
@@ -91,14 +91,16 @@ namespace
|
||||
|
||||
case KVMFR_CLIPBOARD_MESSAGE_REQUEST:
|
||||
return record.clipboardGeneration && record.transfer &&
|
||||
kvmfrClipboardFormatValid(record.format) && !record.offset &&
|
||||
kvmfrClipboardRepresentationFormatValid(record.format) &&
|
||||
!record.offset &&
|
||||
!record.size && !record.flags && !record.token &&
|
||||
!record.length && !record.sequence;
|
||||
|
||||
case KVMFR_CLIPBOARD_MESSAGE_DATA:
|
||||
{
|
||||
if (!record.clipboardGeneration || !record.transfer ||
|
||||
!kvmfrClipboardFormatValid(record.format) || record.token ||
|
||||
!kvmfrClipboardRepresentationFormatValid(record.format) ||
|
||||
record.token ||
|
||||
(record.flags & ~(KVMFR_CLIPBOARD_FLAG_BEGIN |
|
||||
KVMFR_CLIPBOARD_FLAG_END)) ||
|
||||
(!record.length && !(record.flags & KVMFR_CLIPBOARD_FLAG_END)) ||
|
||||
@@ -115,9 +117,18 @@ namespace
|
||||
|
||||
case KVMFR_CLIPBOARD_MESSAGE_CANCEL:
|
||||
return record.transfer && !record.offset && !record.size &&
|
||||
(!record.format || kvmfrClipboardFormatValid(record.format)) &&
|
||||
(!record.format ||
|
||||
kvmfrClipboardRepresentationFormatValid(record.format)) &&
|
||||
!record.flags && !record.length && !record.sequence;
|
||||
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_ACQUIRE:
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_ACQUIRED:
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_RELEASE:
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_REQUEST:
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_DATA:
|
||||
case KVMFR_CLIPBOARD_MESSAGE_FILE_CANCEL:
|
||||
return kvmfrClipboardFileMessageValid(&record);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -113,8 +113,9 @@ bool CClipboardRing::Valid(const ClipboardRingSlot& slot)
|
||||
{
|
||||
return slot.header.version == KVMFR_CLIPBOARD_VERSION &&
|
||||
slot.header.type >= KVMFR_CLIPBOARD_MESSAGE_CLAIM &&
|
||||
slot.header.type <= KVMFR_CLIPBOARD_MESSAGE_GRANT &&
|
||||
slot.header.type <= KVMFR_CLIPBOARD_MESSAGE_FILE_CANCEL &&
|
||||
slot.header.length <= KVMFR_CLIPBOARD_DATA_BYTES &&
|
||||
(slot.header.type == KVMFR_CLIPBOARD_MESSAGE_DATA ||
|
||||
slot.header.type == KVMFR_CLIPBOARD_MESSAGE_FILE_DATA ||
|
||||
!slot.header.length);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
static constexpr uint32_t LG_CLIPBOARD_MAPPING_MAGIC = 0x4c474342U;
|
||||
static constexpr uint32_t LG_CLIPBOARD_MAPPING_VERSION = 1U;
|
||||
static constexpr uint32_t LG_CLIPBOARD_MAPPING_VERSION = 2U;
|
||||
|
||||
struct ClipboardRingSlot
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user