diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 0854e9fa..d614f69e 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -2,53 +2,40 @@
name: Bug report
about: Create a report to help us improve
title: Client goes crazy when I mash the keyboard
-labels: bug
+labels: bug, triage
assignees: ''
---
### Operating Systems ###
-# README & DELETE #
-
---BEGIN HELP---
+Remember: Delete the help text (between `---BEGIN HELP---` and `---END HELP---`).
+Technical support: https://symless.com/contact/customer-support?help-option=GitHub
+
For example:
-Server: exampleOS 10.13
-Client: Foobar XP
+Server: niceOS 10.42
+Client: Awesome XP SP13
-Note: Please use this issue tracker only for raising bugs.
-
-- Feature requests: https://symless.com/forums/forum/18-feature-ideas/
-- Technical support: https://symless.com/contact/customer-support?help-option=GitHub
-
-It's very important that you distinguish which operating system is the client and which
-is the server. The server is the computer that the mouse and keyboard are shared from.
-
-Remember: Delete the `# README & DELETE #` sections (including `---BEGIN HELP---` and
-`---END HELP---`).
+Please distinguish which operating system is the client and which is the server. The server is the computer that the mouse and keyboard are shared from.
---END HELP---
### Synergy Version ###
-# README & DELETE #
-
---BEGIN HELP---
If you're not using the latest version of Synergy, please update first:
https://symless.com/synergy/downloads
-Please don't rely on Linux package manager versioning, they sometimes get it wrong.
-If using the command line, you can use the `--version` arg to get your installed
-Synergy version, like so:
+Please don't rely on Linux package manager versioning, they often get it wrong. If using the command line, you can use the `--version` arg to get your installed Synergy version, like so:
Synergy 1: `synergys --version`
Synergy 2: `synergy-core --server --version`
-If you're using the Synergy 1 config app (main Synergy app) then go to the Help
-menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
+If you're using the Synergy 1 config app (main Synergy app) then go to the Help menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
---END HELP---
@@ -56,8 +43,7 @@ menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
---BEGIN HELP---
-This is the most important part. Try to remember exactly what exact steps caused
-the bug. Please make sure the steps are numbered and concise, like so:
+This is the most important part. Try to remember exactly what exact steps caused the bug. Please make sure the steps are numbered and concise, like so:
1. Do a little dance
2. Make a little love
@@ -76,14 +62,12 @@ Before submitting, try to reproduce the bug based on the steps you provided.
---BEGIN HELP---
-Please do not paste entire logs here, it looks really silly. Instead, upload your logs,
-and share the URLs to the uploaded logs. Here's how you that:
+Please do not paste entire logs here, it looks really silly. Instead, upload your logs, and share the URLs to the uploaded logs. Here's how you that:
Synergy 1: https://symless.com/help/s1-troubleshooting/s1-sending-logs
Synergy 2: https://symless.com/help/s2-troubleshooting/s2-sending-logs
-Make sure you say which log is for which computer, and also which computer is the
-client and which one is the server. This helps to avoid any confusion.
+Make sure you say which log is for which computer, and also which computer is the client and which one is the server. This helps to avoid any confusion.
---END HELP---
@@ -93,7 +77,7 @@ client and which one is the server. This helps to avoid any confusion.
---BEGIN HELP---
-* Attach screenshots
+* Attach any screenshots
* What maybe causing it?
* Are there any workarounds?
* What other apps are you running?
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index a2c2daad..1cec5fd6 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: Make beep sound when moving from client to server
-labels: enhancement
+labels: enhancement, triage
assignees: ''
---
diff --git a/ChangeLog b/ChangeLog
index ba2df69c..046140c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+v1.10.3-stable
+==============
+
+Bug fixes:
+- #6546 Filtered out self assigned ip addresses from being displayed
+- #6541 Fixed connected info text to include without TLS encryption
+- #6527 Config app renders incorrectly on high DPI screens
+- #6526 New TLS/SSL socket handled when no socket
+- #6525 Race condition on disconnecting TLS/SSL socket
+- #6521 Access violation in TLS/SSL socket close
+- #6409 Server freezes when clipboard contains an image
+- #3705 Hotkeys not working on Mac server
+
+Enhancements:
+- #6535 Version URL and added stage check to version check
+- #6529 Cleaner redistributable use in Windows installer
+- #6528 More verbose message for Linux display errors
+- #6524 Minimize config app to system tray
+- #6523 Restore auto hide on startup for config app
+- #6522 Double click Windows tray icon to show and hide
+- #6520 Support for 32-bit Linux for legacy users
+- #6519 Support for Ubuntu 14.04 LTS for legacy users
+- #6390 Support for OpenSSL 1.1.1 for better security
+
+
v1.10.2-stable
==============
diff --git a/README.md b/README.md
index 18ead340..fd3f4d81 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,10 @@
This is the open source core component of Synergy, a keyboard and mouse sharing tool.
+**[We're hiring!](https://careers.symless.com/)** *Join the Synergy Team (Node.js, React, C++)*
+
+**News:** [We Are Putting UX First](https://symless.com/blog/putting-ux-first) (Symless Blog)
+
## Recommended
Things most people will need.
@@ -11,6 +15,7 @@ Things most people will need.
* [Help Guides](https://symless.com/synergy-help) - Self-help guides and information for when you don't want to talk to people.
* [Join us on Slack](http://bitly.com/synergy-slack) - Talk to other Synergy users in real time using instant messaging.
* [Symless Forums](https://symless.com/forums/forum/11-synergy/) - Discuss Synergy issues on the Symless Forums.
+* [Symless Blog](https://symless.com/blog/) - Find out what's happening with Synergy development.
## Advanced Users
diff --git a/cmake/Version.cmake b/cmake/Version.cmake
index a5093a0b..e4c0e35f 100644
--- a/cmake/Version.cmake
+++ b/cmake/Version.cmake
@@ -5,8 +5,8 @@ cmake_minimum_required (VERSION 3.4)
#
set (SYNERGY_VERSION_MAJOR 1)
-set (SYNERGY_VERSION_MINOR 10)
-set (SYNERGY_VERSION_PATCH 3)
+set (SYNERGY_VERSION_MINOR 11)
+set (SYNERGY_VERSION_PATCH 0)
set (SYNERGY_VERSION_STAGE "snapshot")
#
diff --git a/src/gui/src/AboutDialog.cpp b/src/gui/src/AboutDialog.cpp
index e86e707c..da6c6ba2 100644
--- a/src/gui/src/AboutDialog.cpp
+++ b/src/gui/src/AboutDialog.cpp
@@ -29,7 +29,6 @@ AboutDialog::AboutDialog(QWidget* parent, const QString& synergyApp) :
m_versionChecker.setApp(synergyApp);
QString version = m_versionChecker.getVersion();
- version = version + '-' + SYNERGY_VERSION_STAGE;
#ifdef SYNERGY_REVISION
version += '-';
version += SYNERGY_REVISION;
diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp
index 5fdcc142..499ca99b 100644
--- a/src/gui/src/MainWindow.cpp
+++ b/src/gui/src/MainWindow.cpp
@@ -975,7 +975,7 @@ void MainWindow::setSynergyState(qSynergyState state)
setStatus(tr("Synergy is connected (with %1)").arg(m_SecureSocketVersion));
}
else {
- setStatus(tr("Synergy is running (without %1)").arg(m_SecureSocketVersion));
+ setStatus(tr("Synergy is running (without TLS encryption)").arg(m_SecureSocketVersion));
}
break;
}
@@ -1034,8 +1034,10 @@ QString MainWindow::getIPAddresses()
hinted = true;
format = "%1, ";
}
-
- result += format.arg(address);
+ //Prevent self assigned IPs being displayed
+ if (!address.startsWith("169.254")) {
+ result += format.arg(address);
+ }
}
}
diff --git a/src/gui/src/VersionChecker.cpp b/src/gui/src/VersionChecker.cpp
index 214f2ec5..f46968d1 100644
--- a/src/gui/src/VersionChecker.cpp
+++ b/src/gui/src/VersionChecker.cpp
@@ -24,8 +24,11 @@
#include
#include
-#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+)"
-#define VERSION_URL "http://symless.com/version/"
+#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+-[a-z1-9]*)"
+#define VERSION_REGEX_SECTIONED "(\\d+)\\.(\\d+)\\.(\\d+)-([a-z1-9]*)"
+#define VERSION_SEGMENT_COUNT 4
+#define VERSION_URL "http://version.symless.com/synergy"
+
VersionChecker::VersionChecker()
{
@@ -58,31 +61,64 @@ void VersionChecker::replyFinished(QNetworkReply* reply)
}
}
+int VersionChecker::getStageVersion(QString stage)
+{
+ const int valueStable = INT_MAX; //Stable will always be considered the highest value
+ const int valueRC = 2;
+ const int valueSnapshot = 1;
+ const int valueOther = 0;
+
+ //Stable should always be considered highest, followed by rc[0-9] then snapshots with everything else at the end
+ //HACK There is probably a much better way of doing this
+ if (stage == "stable")
+ {
+ return valueStable;
+ }
+ else if (stage.startsWith("rc") || stage.startsWith("RC"))
+ {
+ QRegExp rx("\\d*", Qt::CaseInsensitive);
+ if (rx.indexIn(stage) != -1)
+ {
+ //Return the RC value plus the RC version as in int
+ return valueRC + rx.cap(1).toInt();
+ }
+ }
+ else if (stage == "snapshot")
+ {
+ return valueSnapshot;
+ }
+
+ return valueOther;
+}
+
int VersionChecker::compareVersions(const QString& left, const QString& right)
{
if (left.compare(right) == 0)
return 0; // versions are same.
- QStringList leftSplit = left.split(QRegExp("\\."));
- if (leftSplit.size() != 3)
+ QStringList leftSplit = left.split(QRegExp("[\\.-]"));
+ if (leftSplit.size() != VERSION_SEGMENT_COUNT)
return 1; // assume right wins.
- QStringList rightSplit = right.split(QRegExp("\\."));
- if (rightSplit.size() != 3)
+ QStringList rightSplit = right.split(QRegExp("[\\.-]"));
+ if (rightSplit.size() != VERSION_SEGMENT_COUNT)
return -1; // assume left wins.
- int leftMajor = leftSplit.at(0).toInt();
- int leftMinor = leftSplit.at(1).toInt();
- int leftRev = leftSplit.at(2).toInt();
+ const int leftMajor = leftSplit.at(0).toInt();
+ const int leftMinor = leftSplit.at(1).toInt();
+ const int leftRev = leftSplit.at(2).toInt();
+ const int leftStage = getStageVersion(leftSplit.at(3));
- int rightMajor = rightSplit.at(0).toInt();
- int rightMinor = rightSplit.at(1).toInt();
- int rightRev = rightSplit.at(2).toInt();
+ const int rightMajor = rightSplit.at(0).toInt();
+ const int rightMinor = rightSplit.at(1).toInt();
+ const int rightRev = rightSplit.at(2).toInt();
+ const int rightStage = getStageVersion(rightSplit.at(3));
- bool rightWins =
- (rightMajor > leftMajor) ||
+ const bool rightWins =
+ ( rightMajor > leftMajor) ||
((rightMajor >= leftMajor) && (rightMinor > leftMinor)) ||
- ((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev > leftRev));
+ ((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev > leftRev)) ||
+ ((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev >= leftRev) && (rightStage > leftStage));
return rightWins ? 1 : -1;
}
@@ -95,7 +131,7 @@ QString VersionChecker::getVersion()
process.setReadChannel(QProcess::StandardOutput);
if (process.waitForStarted() && process.waitForFinished())
{
- QRegExp rx(VERSION_REGEX);
+ QRegExp rx(VERSION_REGEX,Qt::CaseInsensitive);
QString text = process.readLine();
if (rx.indexIn(text) != -1)
{
diff --git a/src/gui/src/VersionChecker.h b/src/gui/src/VersionChecker.h
index 9f49cc37..2048d3d8 100644
--- a/src/gui/src/VersionChecker.h
+++ b/src/gui/src/VersionChecker.h
@@ -1,6 +1,6 @@
/*
* synergy -- mouse and keyboard sharing utility
- * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012-2019 Symless Ltd.
* Copyright (C) 2012 Nick Bolton
*
* This package is free software; you can redistribute it and/or
@@ -41,4 +41,11 @@ signals:
private:
QNetworkAccessManager* m_manager;
QString m_app;
+
+ /**
+ * \brief Converts a string stage to a integer value
+ * \param stage The string containing the stage version
+ * \return An integer representation of the stage, the higher the number the more recent the version
+ */
+ int getStageVersion(QString stage);
};
diff --git a/src/lib/common/Version.cpp b/src/lib/common/Version.cpp
index d6449067..442c05b8 100644
--- a/src/lib/common/Version.cpp
+++ b/src/lib/common/Version.cpp
@@ -19,10 +19,10 @@
#include "common/Version.h"
const char* kApplication = "Synergy";
-const char* kCopyright = "Copyright (C) 2012-2016 Symless Ltd.\n"
+const char* kCopyright = "Copyright (C) 2012-2019 Symless Ltd.\n"
"Copyright (C) 2008-2014 Nick Bolton\n"
"Copyright (C) 2002-2014 Chris Schoeneman";
const char* kContact = "Email: engineering@symless.com";
const char* kWebsite = "https://symless.com/";
-const char* kVersion = SYNERGY_VERSION;
+const char* kVersion = SYNERGY_VERSION_STRING;
const char* kAppVersion = "Synergy " SYNERGY_VERSION;