Restarted process from GUI in desktop mode #4901
This commit is contained in:
parent
86d5567e74
commit
fc600efdfe
|
@ -0,0 +1,96 @@
|
|||
diff --git a/src/lib/plugin/ns/SecureSocket.cpp b/src/lib/plugin/ns/SecureSocket.cpp
|
||||
index 40c3f21..e02ba9d 100644
|
||||
--- a/src/lib/plugin/ns/SecureSocket.cpp
|
||||
+++ b/src/lib/plugin/ns/SecureSocket.cpp
|
||||
@@ -35,12 +35,9 @@
|
||||
//
|
||||
|
||||
#define MAX_ERROR_SIZE 65535
|
||||
-
|
||||
-enum {
|
||||
- // this limit seems extremely high, but mac client seem to generate around
|
||||
- // 50,000 errors before they establish a connection (wtf?)
|
||||
- kMaxRetryCount = 100000
|
||||
-};
|
||||
+// RETRY_DELAY * MAX_RETRY = 10s
|
||||
+#define MAX_RETRY 1000
|
||||
+#define RETRY_DELAY 0.01f
|
||||
|
||||
enum {
|
||||
kMsgSize = 128
|
||||
@@ -61,8 +58,7 @@ SecureSocket::SecureSocket(
|
||||
SocketMultiplexer* socketMultiplexer) :
|
||||
TCPSocket(events, socketMultiplexer),
|
||||
m_secureReady(false),
|
||||
- m_fatal(false),
|
||||
- m_maxRetry(kMaxRetryCount)
|
||||
+ m_fatal(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -72,8 +68,7 @@ SecureSocket::SecureSocket(
|
||||
ArchSocket socket) :
|
||||
TCPSocket(events, socketMultiplexer, socket),
|
||||
m_secureReady(false),
|
||||
- m_fatal(false),
|
||||
- m_maxRetry(kMaxRetryCount)
|
||||
+ m_fatal(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -295,8 +290,7 @@ SecureSocket::secureAccept(int socket)
|
||||
|
||||
if (isFatal()) {
|
||||
// tell user and sleep so the socket isn't hammered.
|
||||
- LOG((CLOG_ERR "failed to accept secure socket"));
|
||||
- LOG((CLOG_INFO "client connection may not be secure"));
|
||||
+ LOG((CLOG_WARN "failed to accept secure socket"));
|
||||
m_secureReady = false;
|
||||
ARCH->sleep(1);
|
||||
retry = 0;
|
||||
@@ -318,6 +312,7 @@ SecureSocket::secureAccept(int socket)
|
||||
if (retry > 0) {
|
||||
LOG((CLOG_DEBUG2 "retry accepting secure socket"));
|
||||
m_secureReady = false;
|
||||
+ ARCH->sleep(RETRY_DELAY);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -351,6 +346,7 @@ SecureSocket::secureConnect(int socket)
|
||||
if (retry > 0) {
|
||||
LOG((CLOG_DEBUG2 "retry connect secure socket"));
|
||||
m_secureReady = false;
|
||||
+ ARCH->sleep(RETRY_DELAY);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -475,8 +471,8 @@ SecureSocket::checkResult(int status, int& retry)
|
||||
}
|
||||
|
||||
// If the retry max would exceed the allowed, treat it as a fatal error
|
||||
- if (retry > maxRetry()) {
|
||||
- LOG((CLOG_ERR "passive ssl error limit exceeded: %d", retry));
|
||||
+ if (retry > MAX_RETRY) {
|
||||
+ LOG((CLOG_DEBUG "retry exceeded %d sec", RETRY_DELAY * MAX_RETRY));
|
||||
isFatal(true);
|
||||
}
|
||||
|
||||
diff --git a/src/lib/plugin/ns/SecureSocket.h b/src/lib/plugin/ns/SecureSocket.h
|
||||
index 0c0f3b1..871e1e4 100644
|
||||
--- a/src/lib/plugin/ns/SecureSocket.h
|
||||
+++ b/src/lib/plugin/ns/SecureSocket.h
|
||||
@@ -52,8 +52,6 @@ public:
|
||||
int secureWrite(const void* buffer, int size, int& wrote);
|
||||
void initSsl(bool server);
|
||||
bool loadCertificates(String& CertFile);
|
||||
- void maxRetry(int limit) { m_maxRetry = limit; };
|
||||
- int maxRetry() const { return m_maxRetry; };
|
||||
|
||||
private:
|
||||
// SSL
|
||||
@@ -87,5 +85,4 @@ private:
|
||||
Ssl* m_ssl;
|
||||
bool m_secureReady;
|
||||
bool m_fatal;
|
||||
- int m_maxRetry;
|
||||
};
|
|
@ -96,7 +96,8 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig) :
|
|||
m_pCancelButton(NULL),
|
||||
m_SuppressAutoConfigWarning(false),
|
||||
m_BonjourInstall(NULL),
|
||||
m_SuppressEmptyServerWarning(false)
|
||||
m_SuppressEmptyServerWarning(false),
|
||||
m_ExpectedRunningState(kStopped)
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
|
@ -142,6 +143,7 @@ MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig) :
|
|||
MainWindow::~MainWindow()
|
||||
{
|
||||
if (appConfig().processMode() == Desktop) {
|
||||
m_ExpectedRunningState = kStopped;
|
||||
stopDesktop();
|
||||
}
|
||||
|
||||
|
@ -777,6 +779,15 @@ void MainWindow::synergyFinished(int exitCode, QProcess::ExitStatus)
|
|||
QMessageBox::critical(this, tr("Synergy terminated with an error"), QString(tr("Synergy terminated unexpectedly with an exit code of %1.<br><br>Please see the log output for details.")).arg(exitCode));
|
||||
stopSynergy();
|
||||
}
|
||||
|
||||
if (appConfig().processMode() == Desktop) {
|
||||
if (m_ExpectedRunningState == kStarted) {
|
||||
stopSynergy();
|
||||
delay(1);
|
||||
startSynergy();
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
Q_UNUSED(exitCode);
|
||||
#endif
|
||||
|
@ -823,6 +834,7 @@ void MainWindow::setSynergyState(qSynergyState state)
|
|||
}
|
||||
|
||||
setStatus(tr("Synergy is running."));
|
||||
m_ExpectedRunningState = kStarted;
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -1338,3 +1350,14 @@ void MainWindow::delay(unsigned int s)
|
|||
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_m_pButtonToggleStart_clicked()
|
||||
{
|
||||
if (m_SynergyState != synergyConnected) {
|
||||
m_ExpectedRunningState = kStarted;
|
||||
}
|
||||
else {
|
||||
m_ExpectedRunningState = kStopped;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -85,6 +85,11 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
|||
Info
|
||||
};
|
||||
|
||||
enum qRuningState {
|
||||
kStarted,
|
||||
kStopped
|
||||
};
|
||||
|
||||
public:
|
||||
MainWindow(QSettings& settings, AppConfig& appConfig);
|
||||
~MainWindow();
|
||||
|
@ -138,7 +143,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
|||
protected:
|
||||
QSettings& settings() { return m_Settings; }
|
||||
AppConfig& appConfig() { return m_AppConfig; }
|
||||
QProcess*& synergyProcess() { return m_pSynergy; }
|
||||
QProcess* synergyProcess() { return m_pSynergy; }
|
||||
void setSynergyProcess(QProcess* p) { m_pSynergy = p; }
|
||||
void initConnections();
|
||||
void createMenuBar();
|
||||
|
@ -200,12 +205,14 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase
|
|||
bool m_SuppressAutoConfigWarning;
|
||||
CommandProcess* m_BonjourInstall;
|
||||
bool m_SuppressEmptyServerWarning;
|
||||
qRuningState m_ExpectedRunningState;
|
||||
|
||||
private slots:
|
||||
void on_m_pCheckBoxAutoConfig_toggled(bool checked);
|
||||
void on_m_pComboServerList_currentIndexChanged(QString );
|
||||
void on_m_pButtonApply_clicked();
|
||||
void installBonjour();
|
||||
void on_m_pButtonToggleStart_clicked();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue