[X2Go-Commits] [x2goclient] 02/06: Fix crashes when syn reply arriving after the session is started, when using broker
git-admin at x2go.org
git-admin at x2go.org
Fri Dec 15 21:23:03 CET 2023
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2goclient.
commit 6371ab16d4a9f288d2d054799ed4e532064b57cb
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date: Mon Jul 10 12:10:57 2023 +0200
Fix crashes when syn reply arriving after the session is started, when using broker
---
debian/changelog | 4 ++++
src/onmainwindow.cpp | 33 +++++++++++++++++++++++++++++++++
src/onmainwindow.h | 2 ++
3 files changed, 39 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index a17d1f5f..2b9cc33b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,11 @@
x2goclient (4.1.2.4-0x2go1) UNRELEASED; urgency=medium
+ [ X2Go Release Manager ]
* Continue development
+ [ Oleksandr Shneyder ]
+ * Fix crashes when syn reply arriving after the session is started, when using broker
+
-- X2Go Release Manager <git-admin at x2go.org> Thu, 29 Jun 2023 20:54:03 +0200
x2goclient (4.1.2.3-0x2go1) unstable; urgency=medium
diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp
index 33132f77..3d577590 100644
--- a/src/onmainwindow.cpp
+++ b/src/onmainwindow.cpp
@@ -78,6 +78,7 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
setFocusPolicy ( Qt::NoFocus );
installTranslator();
+ ignoreBrokerSessions=false;
autoresume=true;
cleanAllFiles=false;
drawMenu=true;
@@ -2349,6 +2350,11 @@ void ONMainWindow::slotConfig()
void ONMainWindow::slotReadSessions()
{
+ if(brokerMode&&ignoreBrokerSessions)
+ {
+ x2goDebug<<"Looks like session is already started, not reading sessions";
+ return;
+ }
users->show();
ln->show();
@@ -3313,6 +3319,11 @@ void ONMainWindow::slotSshServerAuthError ( int error, QString sshMessage, SshMa
activateWindow();
raise();
}
+ if(brokerMode)
+ {
+ ignoreBrokerSessions=false;
+ }
+
if(brokerMode && config.brokerSyncTimeout && !(brokerSyncTimer->isActive()))
{
brokerSyncTimer->start();
@@ -3452,6 +3463,11 @@ void ONMainWindow::slotSshUserAuthError ( QString error )
pass->setFocus();
pass->selectAll();
passForm->setEnabled ( true );
+ if(brokerMode)
+ {
+ ignoreBrokerSessions=false;
+ }
+
if(brokerMode && config.brokerSyncTimeout && !(brokerSyncTimer->isActive()))
{
brokerSyncTimer->start();
@@ -3830,7 +3846,10 @@ bool ONMainWindow::startSession ( const QString& sid, CONTYPE conType )
bool proxyKrbLogin=false;
if(brokerMode)
+ {
brokerSyncTimer->stop();
+ ignoreBrokerSessions=true;
+ }
user=getCurrentUname();
runRemoteCommand=true;
@@ -3869,6 +3888,10 @@ bool ONMainWindow::startSession ( const QString& sid, CONTYPE conType )
setEnabled(true);
passForm->setEnabled(true);
+ if(brokerMode)
+ {
+ ignoreBrokerSessions=false;
+ }
if(config.brokerSyncTimeout && !(brokerSyncTimer->isActive()))
{
brokerSyncTimer->start();
@@ -5564,6 +5587,10 @@ void ONMainWindow::slotRetSuspSess ( bool result, QString output,
}
else
{
+ if(brokerMode)
+ {
+ ignoreBrokerSessions=false;
+ }
if(brokerMode && config.brokerSyncTimeout && !(brokerSyncTimer->isActive()))
{
brokerSyncTimer->start();
@@ -5665,6 +5692,11 @@ void ONMainWindow::slotRetTermSess ( bool result, QString output,
}
if ( selectSessionDlg->isVisible() )
selectSessionDlg->setEnabled ( true );
+ if(brokerMode)
+ {
+ ignoreBrokerSessions=false;
+ }
+
if(brokerMode && config.brokerSyncTimeout && !(brokerSyncTimer->isActive()))
{
brokerSyncTimer->start();
@@ -6713,6 +6745,7 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
{
if(brokerMode)
{
+ ignoreBrokerSessions=false;
sendEventToBroker(FINISHED);
}
#ifdef Q_OS_DARWIN
diff --git a/src/onmainwindow.h b/src/onmainwindow.h
index 322e331a..9b4a0bd3 100644
--- a/src/onmainwindow.h
+++ b/src/onmainwindow.h
@@ -594,6 +594,8 @@ private:
QStringList _transApplicationsNames;
QString portableDataPath;
QString proxyErrString;
+/* don't sync sessions from broker if the session already started */
+ bool ignoreBrokerSessions;
bool haveTerminal;
bool proxyRunning;
bool drawMenu;
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
More information about the x2go-commits
mailing list