diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e009d94..1c478fc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ # Version number for Synergy set(VERSION_MAJOR 1) set(VERSION_MINOR 7) -set(VERSION_REV 3) +set(VERSION_REV 4) set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}") cmake_minimum_required(VERSION 2.6) diff --git a/src/lib/platform/MSWindowsWatchdog.cpp b/src/lib/platform/MSWindowsWatchdog.cpp index 8bbb0ab2..837db1de 100644 --- a/src/lib/platform/MSWindowsWatchdog.cpp +++ b/src/lib/platform/MSWindowsWatchdog.cpp @@ -37,6 +37,7 @@ #include #include +#define MAXIMUM_WAIT_TIME 3 enum { kOutputBufferSize = 4096 }; @@ -549,8 +550,14 @@ MSWindowsWatchdog::getActiveDesktop(LPSECURITY_ATTRIBUTES security) } ARCH->lockMutex(m_mutex); + int waitTime = 0; while (!m_ready) { + if (waitTime >= MAXIMUM_WAIT_TIME) { + break; + } + ARCH->waitCondVar(m_condVar, m_mutex, 1.0); + waitTime++; } m_ready = false; ARCH->unlockMutex(m_mutex); @@ -565,7 +572,7 @@ MSWindowsWatchdog::testOutput(String buffer) if (i != String::npos) { size_t s = sizeof(g_activeDesktop); String defaultDesktop("Default"); - String sub = buffer.substr(s - 1, defaultDesktop.size()); + String sub = buffer.substr(i + s - 1, defaultDesktop.size()); if (sub != defaultDesktop) { m_autoElevated = true; } diff --git a/src/lib/server/ClientListener.h b/src/lib/server/ClientListener.h index 70ecb2eb..c0b35ab3 100644 --- a/src/lib/server/ClientListener.h +++ b/src/lib/server/ClientListener.h @@ -64,9 +64,6 @@ public: //! Get server which owns this listener Server* getServer() { return m_server; } - //! Return true if using secure network connection - bool isSecure() { return m_useSecureNetwork; } - //@} private: diff --git a/src/lib/server/ClientProxy1_6.cpp b/src/lib/server/ClientProxy1_6.cpp index a27e8ce6..8b429cca 100644 --- a/src/lib/server/ClientProxy1_6.cpp +++ b/src/lib/server/ClientProxy1_6.cpp @@ -29,11 +29,6 @@ // ClientProxy1_6 // -enum -{ - kSslClipboardMaxSize = 1024 -}; - ClientProxy1_6::ClientProxy1_6(const String& name, synergy::IStream* stream, Server* server, IEventQueue* events) : ClientProxy1_5(name, stream, server, events), m_events(events) @@ -62,17 +57,9 @@ ClientProxy1_6::setClipboard(ClipboardID id, const IClipboard* clipboard) size_t size = data.size(); LOG((CLOG_DEBUG "sending clipboard %d to \"%s\"", id, getName().c_str())); - // HACK: if using SSL, don't send large clipboards (#4601) - bool send = true; - if (getServer()->isSecure() && (size > kSslClipboardMaxSize)) { - send = false; - LOG((CLOG_WARN "large clipboards not supported with ssl, size=%d", size)); - } + StreamChunker::sendClipboard(data, size, id, 0, m_events, this); - if (send) { - StreamChunker::sendClipboard(data, size, id, 0, m_events, this); - LOG((CLOG_DEBUG "sent clipboard size=%d", size)); - } + LOG((CLOG_DEBUG "sent clipboard size=%d", size)); } } diff --git a/src/lib/server/Server.cpp b/src/lib/server/Server.cpp index 8b7c4afd..832a03b0 100644 --- a/src/lib/server/Server.cpp +++ b/src/lib/server/Server.cpp @@ -2389,9 +2389,3 @@ Server::dragInfoReceived(UInt32 fileNum, String content) m_screen->startDraggingFiles(m_dragFileList); } - -bool -Server::isSecure() const -{ - return m_clientListener->isSecure(); -} diff --git a/src/lib/server/Server.h b/src/lib/server/Server.h index 63551efa..d85a113d 100644 --- a/src/lib/server/Server.h +++ b/src/lib/server/Server.h @@ -175,9 +175,6 @@ public: //! Return received file data String& getReceivedFileData() { return m_receivedFileData; } - //! Return true if using secure network connection - bool isSecure() const; - //@} private: diff --git a/src/lib/synergy/ToolApp.cpp b/src/lib/synergy/ToolApp.cpp index c9a2b5c7..aa82fc88 100644 --- a/src/lib/synergy/ToolApp.cpp +++ b/src/lib/synergy/ToolApp.cpp @@ -63,8 +63,8 @@ ToolApp::run(int argc, char** argv) return kExitFailed; } else { - // HACK: send to standard out so watchdog can parse. - std::cout << "activeDesktop:" << name.c_str() << std::endl; + String output = synergy::string::sprintf("activeDesktop:%s", name.c_str()); + LOG((CLOG_INFO "%s", output.c_str())); } #endif }