From 01109e04998638fba2d4656566b59190e52dbd08 Mon Sep 17 00:00:00 2001 From: Andrew Nelless Date: Tue, 24 Jan 2017 16:11:43 +0000 Subject: [PATCH] #6344 Make server recognise clipboard size limit --- src/lib/server/Server.cpp | 17 +++++++++++++---- src/lib/server/Server.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/lib/server/Server.cpp b/src/lib/server/Server.cpp index 6c17f937..6df69c57 100644 --- a/src/lib/server/Server.cpp +++ b/src/lib/server/Server.cpp @@ -94,6 +94,7 @@ Server::Server( m_ignoreFileTransfer(false), m_disableLockToScreen(false), m_enableClipboard(true), + m_maximumClipboardSize(INT32_MAX), m_sendDragInfoThread(NULL), m_waitDragInfoThread(true), m_args(args) @@ -1186,12 +1187,20 @@ Server::processOptions() m_disableLockToScreen = (value != 0); } else if (id == kOptionClipboardSharing) { - m_enableClipboard = (value != 0); - - if (m_enableClipboard == false) { + m_enableClipboard = value; + if (!m_enableClipboard) { LOG((CLOG_NOTE "clipboard sharing is disabled")); } } + else if (id == kOptionClipboardSharingSize) { + if (value <= 0) { + m_maximumClipboardSize = 0; + LOG((CLOG_NOTE "clipboard sharing is disabled because the " + "maximum shared clipboard size is set to 0")); + } else { + m_maximumClipboardSize = static_cast(value); + } + } } if (m_relativeMoves && !newRelativeMoves) { stopRelativeMoves(); @@ -1235,7 +1244,7 @@ Server::handleShapeChanged(const Event&, void* vclient) void Server::handleClipboardGrabbed(const Event& event, void* vclient) { - if (!m_enableClipboard) { + if (!m_enableClipboard || (m_maximumClipboardSize == 0)) { return; } diff --git a/src/lib/server/Server.h b/src/lib/server/Server.h index 8c522b22..50833702 100644 --- a/src/lib/server/Server.h +++ b/src/lib/server/Server.h @@ -475,6 +475,7 @@ private: bool m_ignoreFileTransfer; bool m_disableLockToScreen; bool m_enableClipboard; + size_t m_maximumClipboardSize; Thread* m_sendDragInfoThread; bool m_waitDragInfoThread;