This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goclient. from 17c6702 Continue development new 6371ab1 Fix crashes when syn reply arriving after the session is started, when using broker The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 4 ++++ src/onmainwindow.cpp | 33 +++++++++++++++++++++++++++++++++ src/onmainwindow.h | 2 ++ 3 files changed, 39 insertions(+) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git
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@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 a17d1f5..2b9cc33 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@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 33132f7..3d57759 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 322e331..9b4a0bd 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