This repository has been archived by the owner. It is now read-only.
Permalink
...
Comparing changes
Open a pull request
2
contributors
Unified
Split
Showing
with
552 additions
and 411 deletions.
- +3 −2 CMakeLists.txt
- +9 −14 ChangeLog
- +37 −39 ext/toolchain/commands1.py
- +1 −1 src/cmd/synergyc/MSWindowsClientTaskBarReceiver.cpp
- +1 −1 src/cmd/synergyp/MSWindowsPortableTaskBarReceiver.cpp
- +1 −1 src/cmd/synergys/MSWindowsServerTaskBarReceiver.cpp
- +6 −2 src/gui/gui.pro
- +16 −1 src/gui/res/SettingsDialogBase.ui
- +5 −10 src/gui/src/AppConfig.cpp
- +4 −4 src/gui/src/AppConfig.h
- +65 −78 src/gui/src/MainWindow.cpp
- +12 −6 src/gui/src/MainWindow.h
- +3 −0 src/gui/src/PluginManager.cpp
- +0 −2 src/gui/src/PluginWizardPage.cpp
- +2 −18 src/gui/src/SettingsDialog.cpp
- +0 −1 src/gui/src/SettingsDialog.h
- +2 −1 src/lib/arch/IArchPlugin.h
- +1 −1 src/lib/arch/unix/ArchLogUnix.cpp
- +64 −25 src/lib/arch/unix/ArchPluginUnix.cpp
- +4 −2 src/lib/arch/unix/ArchPluginUnix.h
- +14 −5 src/lib/arch/win32/ArchMiscWindows.cpp
- +67 −28 src/lib/arch/win32/ArchPluginWindows.cpp
- +3 −1 src/lib/arch/win32/ArchPluginWindows.h
- +9 −6 src/lib/arch/win32/ArchSystemWindows.cpp
- +1 −1 src/lib/base/ELevel.h
- +1 −1 src/lib/base/EventQueue.cpp
- +3 −1 src/lib/base/Log.cpp
- +1 −1 src/lib/base/Log.h
- +1 −1 src/lib/base/log_outputters.cpp
- +8 −11 src/lib/client/Client.cpp
- +8 −8 src/lib/client/ServerProxy.cpp
- +36 −0 src/lib/common/PluginVersion.cpp
- +31 −0 src/lib/common/PluginVersion.h
- +18 −8 src/lib/ipc/IpcLogOutputter.cpp
- +5 −1 src/lib/ipc/IpcLogOutputter.h
- +3 −8 src/lib/net/TCPSocketFactory.cpp
- +2 −2 src/lib/platform/MSWindowsDropTarget.cpp
- +4 −4 src/lib/platform/MSWindowsKeyState.cpp
- +2 −2 src/lib/platform/MSWindowsScreen.cpp
- +2 −2 src/lib/platform/XWindowsClipboard.cpp
- +1 −1 src/lib/platform/XWindowsEventQueueBuffer.cpp
- +0 −1 src/lib/platform/XWindowsScreen.cpp
- +10 −12 src/lib/plugin/ns/SecureSocket.cpp
- +0 −3 src/lib/plugin/ns/SecureSocket.h
- +3 −3 src/lib/plugin/ns/ns.cpp
- +1 −1 src/lib/plugin/winmmjoy/winmmjoy.cpp
- +7 −12 src/lib/server/ClientListener.cpp
- +2 −2 src/lib/server/ClientProxy1_0.cpp
- +1 −1 src/lib/server/ClientProxy1_5.cpp
- +7 −7 src/lib/server/ClientProxy1_6.cpp
- +3 −3 src/lib/server/ClientProxyUnknown.cpp
- +7 −7 src/lib/server/Server.cpp
- +1 −1 src/lib/synergy/ArgParser.cpp
- +4 −4 src/lib/synergy/ClientApp.cpp
- +1 −2 src/lib/synergy/ClipboardChunk.cpp
- +1 −1 src/lib/synergy/DaemonApp.cpp
- +1 −3 src/lib/synergy/DropHelper.cpp
- +0 −1 src/lib/synergy/FileChunk.cpp
- +4 −4 src/lib/synergy/ServerApp.cpp
- +5 −16 src/lib/synergy/StreamChunker.cpp
- +3 −3 src/lib/synwinhk/synwinhk.cpp
- +10 −0 src/test/mock/ipc/MockIpcServer.h
- +25 −23 src/test/unittests/ipc/IpcLogOutputterTests.cpp
View
5
CMakeLists.txt
| @@ -16,8 +16,9 @@ | ||
| # Version number for Synergy | ||
| set(VERSION_MAJOR 1) | ||
| -set(VERSION_MINOR 7) | ||
| -set(VERSION_REV 4) | ||
| +set(VERSION_MINOR 8) | ||
| +set(VERSION_REV 0) | ||
| +set(VERSION_STAGE alpha) | ||
| set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REV}") | ||
| cmake_minimum_required(VERSION 2.6) | ||
View
23
ChangeLog
| @@ -1,22 +1,17 @@ | ||
| v1.7.4-stable | ||
| ============= | ||
| -Bug #4809 - Intermittent freeze caused by mutex deadlock in logging code | ||
| -Bug #4721 - High CPU usage for Windows service on client | ||
| -Bug #4712 - Unable to send clipboard with size above 1KB when using SSL | ||
| +Bug #4721 - High CPU usage for Windows service | ||
| +Bug #4750 - SSL connect error 'passive ssl error limit' | ||
| Bug #4584 - Drag and drop with SSL causes crash | ||
| -Bug #3774 - Missing MinGW dependencies after install on Windows | ||
| Bug #4749 - Clipboard thread race condition causes assertion failure | ||
| -Bug #4723 - Waiting for active desktop result freezes Windows service | ||
| -Bug #4690 - Log line 'activeDesktop' does not use logging system | ||
| Bug #4720 - Plugin download shows 'Could not get Linux package type' error | ||
| -Bug #4737 - Using error log level does not show SSL fingerprint dialog | ||
| -Bug #451 - Fast cursor on any client with Mac server | ||
| -Bug #4810 - Non-existent file listed in Qt gui.pro file | ||
| -Enhancement #4696 - Include 'ns' plugin in installers instead of wizard download | ||
| -Enhancement #4796 - Improve secure socket intensive try operations | ||
| -Enhancement #4327 - GUI setting to disable drag and drop feature | ||
| -Enhancement #4745 - Tray icon notification for clipboard data transfer progress | ||
| -Enhancement #4793 - Additional logging to output OpenSSL version | ||
| +Bug #4712 - Unable to send clipboard with size above 1KB when using SSL | ||
| +Bug #4642 - Connecting causes SSL23_GET_SERVER_HELLO error | ||
| +Bug #4690 - Log line 'activeDesktop' does not use logging system | ||
| +Bug #4866 - Wrong ns plugin version can be loaded | ||
| +Enhancement #4901 - Auto restart when running from GUI in desktop mode | ||
| +Enhancement #4845 - Add timestamp to log output | ||
| +Enhancement #4898 - Move version stage name to build config | ||
| v1.7.3-stable | ||
| ============= | ||
View
76
ext/toolchain/commands1.py
| @@ -848,7 +848,7 @@ def signwin(self, pfx, pwdFile, dist): | ||
| pwd = lines[0] | ||
| if (dist): | ||
| - self.signFile(pfx, pwd, 'bin/Release', self.dist_name('win')) | ||
| + self.signFile(pfx, pwd, 'bin/Release', self.getDistFilename('win')) | ||
| else: | ||
| self.signFile(pfx, pwd, 'bin/Release', 'synergy.exe') | ||
| self.signFile(pfx, pwd, 'bin/Release', 'synergyc.exe') | ||
| @@ -1086,18 +1086,16 @@ def distRpm(self): | ||
| templateFile = open(self.cmake_dir + '/synergy.spec.in') | ||
| template = templateFile.read() | ||
| - template = template.replace('${in:version}', self.getVersionFromCmake()) | ||
| + template = template.replace('${in:version}', self.getVersionNumber()) | ||
| specPath = rpmDir + '/synergy.spec' | ||
| specFile = open(specPath, 'w') | ||
| specFile.write(template) | ||
| specFile.close() | ||
| - version = self.getVersionFromCmake() | ||
| target = '../../bin/synergy-%s-%s.rpm' % ( | ||
| - version, self.getLinuxPlatform()) | ||
| - | ||
| + self.getVersionForFilename(), self.getLinuxPlatform()) | ||
| try: | ||
| self.try_chdir(rpmDir) | ||
| @@ -1123,9 +1121,10 @@ def distDeb(self): | ||
| binDir = self.getGenerator().binDir | ||
| resDir = self.cmake_dir | ||
| - version = self.getVersionFromCmake() | ||
| package = '%s-%s-%s' % ( | ||
| - self.project, version, self.getLinuxPlatform()) | ||
| + self.project, | ||
| + self.getVersionForFilename(), | ||
| + self.getLinuxPlatform()) | ||
| debDir = '%s/deb' % buildDir | ||
| if os.path.exists(debDir): | ||
| @@ -1138,7 +1137,7 @@ def distDeb(self): | ||
| template = templateFile.read() | ||
| template = template.replace('${in:version}', | ||
| - self.getVersionFromCmake()) | ||
| + self.getVersionNumber()) | ||
| template = template.replace('${in:arch}', | ||
| self.getDebianArch()) | ||
| @@ -1226,8 +1225,11 @@ def distDeb(self): | ||
| self.restore_chdir() | ||
| def distSrc(self): | ||
| - version = self.getVersionFromCmake() | ||
| - name = (self.project + '-' + version + '-Source') | ||
| + name = '%s-%s-%s' % ( | ||
| + self.project, | ||
| + self.getVersionForFilename(), | ||
| + 'Source') | ||
| + | ||
| exportPath = self.getGenerator().buildDir + '/' + name | ||
| if os.path.exists(exportPath): | ||
| @@ -1280,7 +1282,7 @@ def distMac(self): | ||
| fileName = "%s-%s-%s.dmg" % ( | ||
| self.project, | ||
| - self.getVersionFromCmake(), | ||
| + self.getVersionForFilename(), | ||
| self.getMacPackageName()) | ||
| cmd = "hdiutil create " + fileName + " -srcfolder ./" + name + "/ -ov" | ||
| @@ -1296,7 +1298,7 @@ def distWix(self): | ||
| if generator.endswith('Win64'): | ||
| arch = 'x64' | ||
| - version = self.getVersionFromCmake() | ||
| + version = self.getVersionNumber() | ||
| args = "/p:DefineConstants=\"Version=%s\"" % version | ||
| self.run_vcbuild( | ||
| @@ -1305,7 +1307,7 @@ def distWix(self): | ||
| filename = "%s-%s-Windows-%s.msi" % ( | ||
| self.project, | ||
| - version, | ||
| + self.getVersionForFilename(), | ||
| arch) | ||
| old = "bin/Release/synergy.msi" | ||
| @@ -1340,7 +1342,7 @@ def distNsis(self, vcRedistDir, qtDir): | ||
| templateFile = open(self.cmake_dir + '\Installer.nsi.in') | ||
| template = templateFile.read() | ||
| - template = template.replace('${in:version}', self.getVersionFromCmake()) | ||
| + template = template.replace('${in:version}', self.getVersionNumber()) | ||
| template = template.replace('${in:arch}', arch) | ||
| template = template.replace('${in:vcRedistDir}', vcRedistDir) | ||
| template = template.replace('${in:qtDir}', qtDir) | ||
| @@ -1357,7 +1359,7 @@ def distNsis(self, vcRedistDir, qtDir): | ||
| if err != 0: | ||
| raise Exception('Package failed: ' + str(err)) | ||
| - def getVersionFromCmake(self): | ||
| + def getVersionNumber(self): | ||
| cmakeFile = open('CMakeLists.txt') | ||
| cmake = cmakeFile.read() | ||
| @@ -1370,7 +1372,20 @@ def getVersionFromCmake(self): | ||
| revRe = re.search('VERSION_REV (\d+)', cmake) | ||
| rev = revRe.group(1) | ||
| - return major + '.' + minor + '.' + rev | ||
| + return "%s.%s.%s" % (major, minor, rev) | ||
| + | ||
| + def getVersionStage(self): | ||
| + cmakeFile = open('CMakeLists.txt') | ||
| + cmake = cmakeFile.read() | ||
| + | ||
| + stageRe = re.search('VERSION_STAGE (\w+)', cmake) | ||
| + return stageRe.group(1) | ||
| + | ||
| + def getVersionForFilename(self): | ||
| + versionStage = self.getVersionStage() | ||
| + gitBranch = self.getGitBranchName() | ||
| + gitRevision = self.getGitRevision() | ||
| + return "%s-%s-%s" % (gitBranch, versionStage, gitRevision) | ||
| def distftp(self, type, ftp): | ||
| if not type: | ||
| @@ -1380,8 +1395,9 @@ def distftp(self, type, ftp): | ||
| binDir = self.getGenerator().getBinDir('Release') | ||
| - packageSource = binDir + '/' + self.dist_name(type) | ||
| - packageTarget = self.dist_name_rev(type) | ||
| + filename = self.getDistFilename(type) | ||
| + packageSource = binDir + '/' + filename | ||
| + packageTarget = filename | ||
| ftp.upload(packageSource, packageTarget) | ||
| if type != 'src': | ||
| @@ -1393,9 +1409,7 @@ def distftp(self, type, ftp): | ||
| def getLibraryDistFilename(self, type, dir, name): | ||
| (platform, packageExt, libraryExt) = self.getDistributePlatformInfo(type) | ||
| - branch = self.getGitBranchName() | ||
| - revision = self.getGitRevision() | ||
| - firstPart = '%s-%s-%s-%s' % (name, branch, revision, platform) | ||
| + firstPart = '%s-%s-%s' % (name, self.getVersionForFilename(), platform) | ||
| filename = '%s.%s' % (firstPart, libraryExt) | ||
| if type == 'rpm' or type == 'deb': | ||
| @@ -1453,30 +1467,14 @@ def getDistributePlatformInfo(self, type): | ||
| return (platform, ext, libraryExt) | ||
| - def dist_name(self, type): | ||
| - (platform, packageExt, libraryExt) = self.getDistributePlatformInfo(type) | ||
| - ext = packageExt | ||
| - | ||
| - pattern = ( | ||
| - re.escape(self.project + '-') + '\d+\.\d+\.\d+' + | ||
| - re.escape('-' + platform + '.' + ext)) | ||
| - | ||
| + def getDistFilename(self, type): | ||
| + pattern = self.getVersionForFilename() | ||
| for filename in os.listdir(self.getBinDir('Release')): | ||
| if re.search(pattern, filename): | ||
| return filename | ||
| - # still here? package probably not created yet. | ||
| raise Exception('Could not find package name with pattern: ' + pattern) | ||
| - def dist_name_rev(self, type): | ||
| - branch = self.getGitBranchName() | ||
| - revision = self.getGitRevision() | ||
| - | ||
| - # find the version number (we're puting the rev in after this) | ||
| - pattern = '(\d+\.\d+\.\d+)' | ||
| - replace = "%s-%s" % (branch, revision) | ||
| - return re.sub(pattern, replace, self.dist_name(type)) | ||
| - | ||
| def getDebianArch(self): | ||
| if os.uname()[4][:3] == 'arm': | ||
| return 'armhf' | ||
View
2
src/cmd/synergyc/MSWindowsClientTaskBarReceiver.cpp
| @@ -187,7 +187,7 @@ MSWindowsClientTaskBarReceiver::runMenu(int x, int y) | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_NOTE: | ||
| - CLOG->setFilter(kNOTIFY); | ||
| + CLOG->setFilter(kNOTE); | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_INFO: | ||
View
2
src/cmd/synergyp/MSWindowsPortableTaskBarReceiver.cpp
| @@ -204,7 +204,7 @@ MSWindowsPortableTaskBarReceiver::runMenu(int x, int y) | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_NOTE: | ||
| - CLOG->setFilter(kNOTIFY); | ||
| + CLOG->setFilter(kNOTE); | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_INFO: | ||
View
2
src/cmd/synergys/MSWindowsServerTaskBarReceiver.cpp
| @@ -218,7 +218,7 @@ MSWindowsServerTaskBarReceiver::runMenu(int x, int y) | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_NOTE: | ||
| - CLOG->setFilter(kNOTIFY); | ||
| + CLOG->setFilter(kNOTE); | ||
| break; | ||
| case IDC_TASKBAR_LOG_LEVEL_INFO: | ||
View
8
src/gui/gui.pro
| @@ -59,7 +59,9 @@ SOURCES += src/main.cpp \ | ||
| src/SslCertificate.cpp \ | ||
| src/FileSysClient.cpp \ | ||
| src/Plugin.cpp \ | ||
| - src/WebClient.cpp | ||
| + src/WebClient.cpp \ | ||
| + ../lib/common/PluginVersion.cpp | ||
| + | ||
| HEADERS += src/MainWindow.h \ | ||
| src/AboutDialog.h \ | ||
| src/ServerConfig.h \ | ||
| @@ -105,7 +107,9 @@ HEADERS += src/MainWindow.h \ | ||
| src/SslCertificate.h \ | ||
| src/FileSysClient.h \ | ||
| src/Plugin.h \ | ||
| - src/WebClient.h | ||
| + src/WebClient.h \ | ||
| + ../lib/common/PluginVersion.h | ||
| + | ||
| RESOURCES += res/Synergy.qrc | ||
| RC_FILE = res/win/Synergy.rc | ||
| macx { | ||
View
17
src/gui/res/SettingsDialogBase.ui
| @@ -7,7 +7,7 @@ | ||
| <x>0</x> | ||
| <y>0</y> | ||
| <width>368</width> | ||
| - <height>439</height> | ||
| + <height>377</height> | ||
| </rect> | ||
| </property> | ||
| <property name="windowTitle"> | ||
| @@ -208,6 +208,21 @@ | ||
| </item> | ||
| <item row="0" column="1" colspan="2"> | ||
| <widget class="QComboBox" name="m_pComboLogLevel"> | ||
| + <item> | ||
| + <property name="text"> | ||
| + <string>Error</string> | ||
| + </property> | ||
| + </item> | ||
| + <item> | ||
| + <property name="text"> | ||
| + <string>Warning</string> | ||
| + </property> | ||
| + </item> | ||
| + <item> | ||
| + <property name="text"> | ||
| + <string>Note</string> | ||
| + </property> | ||
| + </item> | ||
| <item> | ||
| <property name="text"> | ||
| <string>Info</string> | ||
View
15
src/gui/src/AppConfig.cpp
| @@ -37,6 +37,9 @@ const char AppConfig::m_SynergyLogDir[] = "/var/log/"; | ||
| static const char* logLevelNames[] = | ||
| { | ||
| + "ERROR", | ||
| + "WARNING", | ||
| + "NOTE", | ||
| "INFO", | ||
| "DEBUG", | ||
| "DEBUG1", | ||
| @@ -55,8 +58,7 @@ AppConfig::AppConfig(QSettings* settings) : | ||
| m_ElevateMode(false), | ||
| m_AutoConfigPrompted(false), | ||
| m_CryptoEnabled(false), | ||
| - m_AutoHide(false), | ||
| - m_ResetLogLevel(true) | ||
| + m_AutoHide(false) | ||
| { | ||
| Q_ASSERT(m_pSettings); | ||
| @@ -116,7 +118,7 @@ void AppConfig::loadSettings() | ||
| m_ScreenName = settings().value("screenName", QHostInfo::localHostName()).toString(); | ||
| m_Port = settings().value("port", 24800).toInt(); | ||
| m_Interface = settings().value("interface").toString(); | ||
| - m_LogLevel = settings().value("logLevel", 0).toInt(); // level 0: INFO | ||
| + m_LogLevel = settings().value("logLevel", 3).toInt(); // level 3: INFO | ||
| m_LogToFile = settings().value("logToFile", false).toBool(); | ||
| m_LogFilename = settings().value("logFilename", synergyLogDir() + "synergy.log").toString(); | ||
| m_WizardLastRun = settings().value("wizardLastRun", 0).toInt(); | ||
| @@ -130,12 +132,6 @@ void AppConfig::loadSettings() | ||
| m_UserToken = settings().value("userToken", "").toString(); | ||
| m_CryptoEnabled = settings().value("cryptoEnabled", false).toBool(); | ||
| m_AutoHide = settings().value("autoHide", false).toBool(); | ||
| - m_ResetLogLevel = settings().value("resetLogLevel", true).toBool(); | ||
| - | ||
| - if (m_ResetLogLevel) { | ||
| - m_LogLevel = 0; | ||
| - m_ResetLogLevel = false; | ||
| - } | ||
| } | ||
| void AppConfig::saveSettings() | ||
| @@ -157,7 +153,6 @@ void AppConfig::saveSettings() | ||
| settings().setValue("userToken", m_UserToken); | ||
| settings().setValue("cryptoEnabled", m_CryptoEnabled); | ||
| settings().setValue("autoHide", m_AutoHide); | ||
| - settings().setValue("resetLogLevel", m_ResetLogLevel); | ||
| } | ||
| void AppConfig::setAutoConfig(bool autoConfig) | ||
View
8
src/gui/src/AppConfig.h
| @@ -31,10 +31,11 @@ | ||
| // 1: first version | ||
| // 2: added language page | ||
| // 3: added premium page and removed | ||
| -// 4: ssl plugin 'ns' introduced | ||
| -// 5: ssl plugin 'ns' updated | ||
| +// 4: ssl plugin 'ns' v1.0 | ||
| +// 5: ssl plugin 'ns' v1.1 | ||
| +// 6: ssl plugin 'ns' v1.2 | ||
| // | ||
| -const int kWizardVersion = 5; | ||
| +const int kWizardVersion = 6; | ||
| class QSettings; | ||
| class SettingsDialog; | ||
| @@ -128,7 +129,6 @@ class AppConfig | ||
| QString m_UserToken; | ||
| bool m_CryptoEnabled; | ||
| bool m_AutoHide; | ||
| - bool m_ResetLogLevel; | ||
| static const char m_SynergysName[]; | ||
| static const char m_SynergycName[]; | ||
Oops, something went wrong.