Merge branch 'master' into v1-dev #6564

This commit is contained in:
Jamie Newbon 2019-10-08 17:35:28 +01:00
commit 2810a5b6da
10 changed files with 113 additions and 55 deletions

View File

@ -2,53 +2,40 @@
name: Bug report name: Bug report
about: Create a report to help us improve about: Create a report to help us improve
title: Client goes crazy when I mash the keyboard title: Client goes crazy when I mash the keyboard
labels: bug labels: bug, triage
assignees: '' assignees: ''
--- ---
### Operating Systems ### ### Operating Systems ###
# README & DELETE #
---BEGIN HELP--- ---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: For example:
Server: exampleOS 10.13 Server: niceOS 10.42
Client: Foobar XP Client: Awesome XP SP13
Note: Please use this issue tracker only for raising bugs. 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.
- 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---`).
---END HELP--- ---END HELP---
### Synergy Version ### ### Synergy Version ###
# README & DELETE #
---BEGIN HELP--- ---BEGIN HELP---
If you're not using the latest version of Synergy, please update first: If you're not using the latest version of Synergy, please update first:
https://symless.com/synergy/downloads https://symless.com/synergy/downloads
Please don't rely on Linux package manager versioning, they sometimes get it wrong. 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:
If using the command line, you can use the `--version` arg to get your installed
Synergy version, like so:
Synergy 1: `synergys --version` Synergy 1: `synergys --version`
Synergy 2: `synergy-core --server --version` Synergy 2: `synergy-core --server --version`
If you're using the Synergy 1 config app (main Synergy app) then go to the Help 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.
menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
---END HELP--- ---END HELP---
@ -56,8 +43,7 @@ menu, and click About. In Synergy 2 Beta, the version is displayed at all times.
---BEGIN HELP--- ---BEGIN HELP---
This is the most important part. Try to remember exactly what exact steps caused 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:
the bug. Please make sure the steps are numbered and concise, like so:
1. Do a little dance 1. Do a little dance
2. Make a little love 2. Make a little love
@ -76,14 +62,12 @@ Before submitting, try to reproduce the bug based on the steps you provided.
---BEGIN HELP--- ---BEGIN HELP---
Please do not paste entire logs here, it looks really silly. Instead, upload your logs, 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:
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 1: https://symless.com/help/s1-troubleshooting/s1-sending-logs
Synergy 2: https://symless.com/help/s2-troubleshooting/s2-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 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.
client and which one is the server. This helps to avoid any confusion.
---END HELP--- ---END HELP---
@ -93,7 +77,7 @@ client and which one is the server. This helps to avoid any confusion.
---BEGIN HELP--- ---BEGIN HELP---
* Attach screenshots * Attach any screenshots
* What maybe causing it? * What maybe causing it?
* Are there any workarounds? * Are there any workarounds?
* What other apps are you running? * What other apps are you running?

View File

@ -2,7 +2,7 @@
name: Feature request name: Feature request
about: Suggest an idea for this project about: Suggest an idea for this project
title: Make beep sound when moving from client to server title: Make beep sound when moving from client to server
labels: enhancement labels: enhancement, triage
assignees: '' assignees: ''
--- ---

View File

@ -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 v1.10.2-stable
============== ==============

View File

@ -2,6 +2,10 @@
This is the open source core component of Synergy, a keyboard and mouse sharing tool. 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 ## Recommended
Things most people will need. 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. * [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. * [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 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 ## Advanced Users

View File

@ -5,8 +5,8 @@ cmake_minimum_required (VERSION 3.4)
# #
set (SYNERGY_VERSION_MAJOR 1) set (SYNERGY_VERSION_MAJOR 1)
set (SYNERGY_VERSION_MINOR 10) set (SYNERGY_VERSION_MINOR 11)
set (SYNERGY_VERSION_PATCH 3) set (SYNERGY_VERSION_PATCH 0)
set (SYNERGY_VERSION_STAGE "snapshot") set (SYNERGY_VERSION_STAGE "snapshot")
# #

View File

@ -29,7 +29,6 @@ AboutDialog::AboutDialog(QWidget* parent, const QString& synergyApp) :
m_versionChecker.setApp(synergyApp); m_versionChecker.setApp(synergyApp);
QString version = m_versionChecker.getVersion(); QString version = m_versionChecker.getVersion();
version = version + '-' + SYNERGY_VERSION_STAGE;
#ifdef SYNERGY_REVISION #ifdef SYNERGY_REVISION
version += '-'; version += '-';
version += SYNERGY_REVISION; version += SYNERGY_REVISION;

View File

@ -975,7 +975,7 @@ void MainWindow::setSynergyState(qSynergyState state)
setStatus(tr("Synergy is connected (with %1)").arg(m_SecureSocketVersion)); setStatus(tr("Synergy is connected (with %1)").arg(m_SecureSocketVersion));
} }
else { else {
setStatus(tr("Synergy is running (without %1)").arg(m_SecureSocketVersion)); setStatus(tr("Synergy is running (without TLS encryption)").arg(m_SecureSocketVersion));
} }
break; break;
} }
@ -1034,10 +1034,12 @@ QString MainWindow::getIPAddresses()
hinted = true; hinted = true;
format = "<b>%1</b>, "; format = "<b>%1</b>, ";
} }
//Prevent self assigned IPs being displayed
if (!address.startsWith("169.254")) {
result += format.arg(address); result += format.arg(address);
} }
} }
}
if (result == "") { if (result == "") {
return tr("Unknown"); return tr("Unknown");

View File

@ -24,8 +24,11 @@
#include <QProcess> #include <QProcess>
#include <QLocale> #include <QLocale>
#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+)" #define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+-[a-z1-9]*)"
#define VERSION_URL "http://symless.com/version/" #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() 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) int VersionChecker::compareVersions(const QString& left, const QString& right)
{ {
if (left.compare(right) == 0) if (left.compare(right) == 0)
return 0; // versions are same. return 0; // versions are same.
QStringList leftSplit = left.split(QRegExp("\\.")); QStringList leftSplit = left.split(QRegExp("[\\.-]"));
if (leftSplit.size() != 3) if (leftSplit.size() != VERSION_SEGMENT_COUNT)
return 1; // assume right wins. return 1; // assume right wins.
QStringList rightSplit = right.split(QRegExp("\\.")); QStringList rightSplit = right.split(QRegExp("[\\.-]"));
if (rightSplit.size() != 3) if (rightSplit.size() != VERSION_SEGMENT_COUNT)
return -1; // assume left wins. return -1; // assume left wins.
int leftMajor = leftSplit.at(0).toInt(); const int leftMajor = leftSplit.at(0).toInt();
int leftMinor = leftSplit.at(1).toInt(); const int leftMinor = leftSplit.at(1).toInt();
int leftRev = leftSplit.at(2).toInt(); const int leftRev = leftSplit.at(2).toInt();
const int leftStage = getStageVersion(leftSplit.at(3));
int rightMajor = rightSplit.at(0).toInt(); const int rightMajor = rightSplit.at(0).toInt();
int rightMinor = rightSplit.at(1).toInt(); const int rightMinor = rightSplit.at(1).toInt();
int rightRev = rightSplit.at(2).toInt(); const int rightRev = rightSplit.at(2).toInt();
const int rightStage = getStageVersion(rightSplit.at(3));
bool rightWins = const bool rightWins =
( rightMajor > leftMajor) || ( rightMajor > leftMajor) ||
((rightMajor >= leftMajor) && (rightMinor > leftMinor)) || ((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; return rightWins ? 1 : -1;
} }
@ -95,7 +131,7 @@ QString VersionChecker::getVersion()
process.setReadChannel(QProcess::StandardOutput); process.setReadChannel(QProcess::StandardOutput);
if (process.waitForStarted() && process.waitForFinished()) if (process.waitForStarted() && process.waitForFinished())
{ {
QRegExp rx(VERSION_REGEX); QRegExp rx(VERSION_REGEX,Qt::CaseInsensitive);
QString text = process.readLine(); QString text = process.readLine();
if (rx.indexIn(text) != -1) if (rx.indexIn(text) != -1)
{ {

View File

@ -1,6 +1,6 @@
/* /*
* synergy -- mouse and keyboard sharing utility * synergy -- mouse and keyboard sharing utility
* Copyright (C) 2012-2016 Symless Ltd. * Copyright (C) 2012-2019 Symless Ltd.
* Copyright (C) 2012 Nick Bolton * Copyright (C) 2012 Nick Bolton
* *
* This package is free software; you can redistribute it and/or * This package is free software; you can redistribute it and/or
@ -41,4 +41,11 @@ signals:
private: private:
QNetworkAccessManager* m_manager; QNetworkAccessManager* m_manager;
QString m_app; 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);
}; };

View File

@ -19,10 +19,10 @@
#include "common/Version.h" #include "common/Version.h"
const char* kApplication = "Synergy"; 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) 2008-2014 Nick Bolton\n"
"Copyright (C) 2002-2014 Chris Schoeneman"; "Copyright (C) 2002-2014 Chris Schoeneman";
const char* kContact = "Email: engineering@symless.com"; const char* kContact = "Email: engineering@symless.com";
const char* kWebsite = "https://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; const char* kAppVersion = "Synergy " SYNERGY_VERSION;