This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goclient. from 539e0a4 Add new brocker feature. Broker can send to client some configuration in the section START_CLIENT_CONFIG - END_CLIENT_CONFIG. For the moment is supported option events=bool. If true, client sending to broker events: CONNECTING, CONNECTED, SUSPENDING, TERMINATING, FINISHED. It's not a real session state, but rather the state of X2Go Client. new dac87fe Save session command in resumingSession.command. new 934d0c5 Send in broker event the duration of session on client. new 6ec9047 If client is configured to send events, the broker can ask client to send ALIVE events. To do this, broker should send config option "liveevent" (int). It means, if liveevent=10, client will send ALIVE event to broker every 10 seconds when the client connected to X2Go Session. new a775155 Broker can send to client command to suspend or terminate the session as an answer to the client event message. For this broker should send to client SUSPEND ID or TERMINATE ID. The 4 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 | 9 ++++ src/httpbrokerclient.cpp | 26 +++++++++-- src/httpbrokerclient.h | 2 +- src/onmainwindow.cpp | 112 ++++++++++++++++++++++++++++++++++++----------- src/onmainwindow.h | 14 +++--- 5 files changed, 128 insertions(+), 35 deletions(-) -- 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 dac87fe3be75ec15f879ff37b4d23e4eed45d00f Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Aug 22 11:07:50 2018 +0200 Save session command in resumingSession.command. --- debian/changelog | 1 + src/httpbrokerclient.cpp | 2 +- src/onmainwindow.cpp | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index b0c0449..6456828 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ x2goclient (4.1.2.2-0x2go1) UNRELEASED; urgency=medium option events=bool. If true, client sending to broker events: CONNECTING, CONNECTED, SUSPENDING, TERMINATING, FINISHED. It's not a real session state, but rather the state of X2Go Client. + - Save session command in resumingSession.command. [ Mihai Moldovan ] * New upstream version (4.1.2.2): diff --git a/src/httpbrokerclient.cpp b/src/httpbrokerclient.cpp index ea5158e..21cb14f 100644 --- a/src/httpbrokerclient.cpp +++ b/src/httpbrokerclient.cpp @@ -386,7 +386,7 @@ void HttpBrokerClient::sendEvent(const QString& ev, const QString& id, const QSt } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser + " --task clientevent --sid \""+id+"\" --event "+ev+" --server \""+server+"\" --client \""+client+"\" --login "+"\""+ - login+"\" --cmd \""+cmd+"\" --display\" "+display+" \" --start \""+start+"\"", + login+"\" --cmd \""+cmd+"\" --display \""+display+"\" --start \""+start+"\"", this,SLOT ( slotEventSent(bool,QString,int))); } } diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index d547248..d530745 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -4230,6 +4230,7 @@ void ONMainWindow::startNewSession() usekbd=true; } } + resumingSession.command=command; if ( command=="RDP" ) { if (fullscreen) { @@ -6938,6 +6939,9 @@ void ONMainWindow::SlotRunCommand(bool, QString output, int) rootless=config.rootless; resumingSession.published=config.published; } + + resumingSession.command=command; + if ( rootless ) sessionType="R"; if ( resumingSession.published ) -- 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 934d0c5fc1f1296cbfffa15d398af38627e5d592 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Aug 22 13:23:34 2018 +0200 Send in broker event the duration of session on client. --- debian/changelog | 1 + src/httpbrokerclient.cpp | 9 ++++--- src/httpbrokerclient.h | 2 +- src/onmainwindow.cpp | 66 ++++++++++++++++++++++++++++++------------------ src/onmainwindow.h | 6 ++--- 5 files changed, 51 insertions(+), 33 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6456828..d497840 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ x2goclient (4.1.2.2-0x2go1) UNRELEASED; urgency=medium CONNECTED, SUSPENDING, TERMINATING, FINISHED. It's not a real session state, but rather the state of X2Go Client. - Save session command in resumingSession.command. + - Send in broker event the duration of session on client. [ Mihai Moldovan ] * New upstream version (4.1.2.2): diff --git a/src/httpbrokerclient.cpp b/src/httpbrokerclient.cpp index 21cb14f..002785b 100644 --- a/src/httpbrokerclient.cpp +++ b/src/httpbrokerclient.cpp @@ -348,7 +348,9 @@ void HttpBrokerClient::selectUserSession(const QString& session) } -void HttpBrokerClient::sendEvent(const QString& ev, const QString& id, const QString& server, const QString& client, const QString& login, const QString& cmd, const QString& display, const QString& start) +void HttpBrokerClient::sendEvent(const QString& ev, const QString& id, const QString& server, const QString& client, + const QString& login, const QString& cmd, + const QString& display, const QString& start, uint connectionTime) { x2goDebug<<"Called sendEvent."; QString brokerUser=config->brokerUser; @@ -369,6 +371,7 @@ void HttpBrokerClient::sendEvent(const QString& ev, const QString& id, const QSt "cmd="<<QUrl::toPercentEncoding(cmd)<<"&"<< "display="<<QUrl::toPercentEncoding(display)<<"&"<< "start="<<QUrl::toPercentEncoding(start)<<"&"<< + "elapsed="<<QString::number(connectionTime)<<"&"<< "authid="<<nextAuthId; x2goDebug << "Sending request: "<< req.toUtf8(); QNetworkRequest request(QUrl(config->brokerurl)); @@ -381,12 +384,12 @@ void HttpBrokerClient::sendEvent(const QString& ev, const QString& id, const QSt if (nextAuthId.length() > 0) { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser +" --authid "+nextAuthId+ " --task clientevent --sid \""+id+"\" --event "+ev+" --server \""+server+"\" --client \""+client+"\" --login "+"\""+ - login+"\" --cmd \""+cmd+"\" --display \""+display+"\" --start \""+start+"\"", + login+"\" --cmd \""+cmd+"\" --display \""+display+"\" --start \""+start+"\" --elapsed "+QString::number(connectionTime), this,SLOT ( slotEventSent(bool,QString,int))); } else { sshConnection->executeCommand ( config->sshBrokerBin+" --user "+ brokerUser + " --task clientevent --sid \""+id+"\" --event "+ev+" --server \""+server+"\" --client \""+client+"\" --login "+"\""+ - login+"\" --cmd \""+cmd+"\" --display \""+display+"\" --start \""+start+"\"", + login+"\" --cmd \""+cmd+"\" --display \""+display+"\" --start \""+start+"\" --elapsed "+QString::number(connectionTime), this,SLOT ( slotEventSent(bool,QString,int))); } } diff --git a/src/httpbrokerclient.h b/src/httpbrokerclient.h index 4e0098e..24f52f3 100644 --- a/src/httpbrokerclient.h +++ b/src/httpbrokerclient.h @@ -46,7 +46,7 @@ public: void testConnection(); void closeSSHInteractionDialog(); void sendEvent(const QString& ev, const QString& id, const QString& server, const QString& client, - const QString& login, const QString& cmd, const QString& display, const QString& start); + const QString& login, const QString& cmd, const QString& display, const QString& start, uint connectionTime); private: QNetworkAccessManager* http; QNetworkRequest* netRequest; diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index d530745..bf97c9e 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -3550,8 +3550,7 @@ void ONMainWindow::startDirectRDP() showSessionStatus(); if(brokerMode) { - sendEventToBroker(CONNECTING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(CONNECTING); } // QTimer::singleShot ( 30000,this,SLOT ( slotRestartProxy() ) ); @@ -3997,28 +3996,52 @@ x2goSession ONMainWindow::getSessionFromString ( const QString& string ) } -void ONMainWindow::sendEventToBroker(ONMainWindow::client_events ev, const QString& id, const QString& server, const QString& client, const QString& login, const QString& cmd, const QString& display, const QString& start) +void ONMainWindow::sendEventToBroker(ONMainWindow::client_events ev) { if(!config.brokerEvents) { return; } - if(ev <= lastBrokerEvent && id == lastBrokerEventSession ) + if(ev <= lastBrokerEvent && resumingSession.sessionId == lastBrokerEventSession ) { return; } lastBrokerEvent=ev; - lastBrokerEventSession=id; + lastBrokerEventSession=resumingSession.sessionId; QString event; switch(ev) { - case CONNECTING: event="CONNECTING";break; - case CONNECTED: event="CONNECTED";break; - case SUSPENDING: event="SUSPENDING";break; - case TERMINATING: event="TERMINATING";break; - case FINISHED: event="FINISHED";break; + case CONNECTING: + { + event="CONNECTING"; + resumingSession.connectedSince=QDateTime::currentDateTime().toTime_t(); + break; + } + case CONNECTED: + { + event="CONNECTED"; + resumingSession.connectedSince=QDateTime::currentDateTime().toTime_t(); + break; + } + case SUSPENDING: + { + event="SUSPENDING"; + break; + } + case TERMINATING: + { + event="TERMINATING"; + break; + } + case FINISHED: + { + event="FINISHED"; + break; + } } - broker->sendEvent(event, id, server, client, login, cmd, display, start); + broker->sendEvent(event, resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), + resumingSession.command, resumingSession.display, resumingSession.crTime, + QDateTime::currentDateTime().toTime_t()-resumingSession.connectedSince); } @@ -5059,8 +5082,7 @@ void ONMainWindow::slotSuspendSessFromSt() if(brokerMode) { - sendEventToBroker(SUSPENDING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(SUSPENDING); } #ifdef Q_OS_LINUX if (directRDP) @@ -5092,8 +5114,7 @@ void ONMainWindow::slotTermSessFromSt() if(brokerMode) { - sendEventToBroker(TERMINATING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(TERMINATING); } x2goDebug<<"Terminating direct RDP session."; @@ -5111,8 +5132,7 @@ void ONMainWindow::slotTermSessFromSt() sbExp->setEnabled ( false ); if(brokerMode) { - sendEventToBroker(TERMINATING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(TERMINATING); } setStatStatus ( tr ( "terminating" ) ); } @@ -5122,8 +5142,7 @@ void ONMainWindow::slotTermSessFromSt() sbExp->setEnabled ( false ); if(brokerMode) { - sendEventToBroker(TERMINATING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(TERMINATING); } termSession ( resumingSession.sessionId,false ); } @@ -5866,8 +5885,7 @@ void ONMainWindow::slotTunnelOk(int) proxyRunning=true; if(brokerMode) { - sendEventToBroker(CONNECTING,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(CONNECTING); } // always search for proxy window on linux. On Windows only in window mode @@ -6147,8 +6165,7 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus ) { if(brokerMode) { - sendEventToBroker(FINISHED,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(FINISHED); } #ifdef Q_OS_DARWIN if (modMapTimer) { @@ -6376,8 +6393,7 @@ void ONMainWindow::slotProxyStderr() { if(brokerMode) { - sendEventToBroker(CONNECTED,resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime); + sendEventToBroker(CONNECTED); } setStatStatus ( tr ( "running" ) ); if (trayEnabled) diff --git a/src/onmainwindow.h b/src/onmainwindow.h index a1fab35..0abf74a 100644 --- a/src/onmainwindow.h +++ b/src/onmainwindow.h @@ -52,7 +52,6 @@ /** @author Oleksandr Shneyder */ - class QToolButton; class QTemporaryFile; class QLineEdit; @@ -147,6 +146,7 @@ struct x2goSession QString grPort; QString sndPort; QString fsPort; + uint connectedSince; bool published; int colorDepth; bool fullscreen; @@ -910,9 +910,7 @@ private: bool trayMinCon; bool trayMaxDiscon; bool trayAutoHidden; - void sendEventToBroker(client_events ev, const QString& id, const QString& server, const QString& client, - const QString& login, const QString& cmd, - const QString& display, const QString& start); + void sendEventToBroker(client_events ev); QString findSshKeyForServer(QString user, QString server, QString port); void loadSettings(); void showPass ( UserButton* user ); -- 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 6ec90477ce7e437ed2ad29514b9e1bc65dca3ad4 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Aug 22 14:12:42 2018 +0200 If client is configured to send events, the broker can ask client to send ALIVE events. To do this, broker should send config option "liveevent" (int). It means, if liveevent=10, client will send ALIVE event to broker every 10 seconds when the client connected to X2Go Session. --- debian/changelog | 4 ++++ src/httpbrokerclient.cpp | 5 +++++ src/onmainwindow.cpp | 27 +++++++++++++++++++++++---- src/onmainwindow.h | 6 +++++- 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index d497840..cdb3712 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,10 @@ x2goclient (4.1.2.2-0x2go1) UNRELEASED; urgency=medium but rather the state of X2Go Client. - Save session command in resumingSession.command. - Send in broker event the duration of session on client. + - If client is configured to send events, the broker can ask client to send + ALIVE events. To do this, broker should send config option "liveevent" (int). + It means, if liveevent=10, client will send ALIVE event to broker every 10 + seconds when the client connected to X2Go Session. [ Mihai Moldovan ] * New upstream version (4.1.2.2): diff --git a/src/httpbrokerclient.cpp b/src/httpbrokerclient.cpp index 002785b..b12961f 100644 --- a/src/httpbrokerclient.cpp +++ b/src/httpbrokerclient.cpp @@ -473,9 +473,14 @@ void HttpBrokerClient::processClientConfig(const QString& raw_content) { X2goSettings st(raw_content, QSettings::IniFormat); mainWindow->config.brokerEvents=st.setting()->value("events",false).toBool(); + mainWindow->config.brokerLiveEventsTimeout=st.setting()->value("liveevent",false).toUInt(); if(mainWindow->config.brokerEvents) { x2goDebug<<"sending client events to broker"; + if(mainWindow->config.brokerLiveEventsTimeout) + { + x2goDebug<<"sending alive events to broker every "<<mainWindow->config.brokerLiveEventsTimeout<<" seconds"; + } } } diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index bf97c9e..e5a9855 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -197,6 +197,7 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) isPassShown=true; readExportsFrom=QString::null; spoolTimer=0l; + brokerAliveTimer=0l; #ifdef Q_OS_DARWIN modMapTimer = NULL; kbMap = QString (); @@ -549,6 +550,9 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent ) connect ( broker, SIGNAL ( sessionSelected()), this, SLOT (slotGetBrokerSession())); connect ( broker, SIGNAL ( passwordChanged(QString)), this, SLOT ( slotPassChanged(QString))); connect (broker, SIGNAL (enableBrokerLogoutButton ()), this, SLOT (slotEnableBrokerLogoutButton ())); + brokerAliveTimer=new QTimer(this); + connect ( brokerAliveTimer, SIGNAL ( timeout() ), this, + SLOT ( slotSendBrokerAlive() ) ); } proxyWinTimer=new QTimer ( this ); @@ -608,6 +612,12 @@ void ONMainWindow::slotBrokerLogoutButton () { } +void ONMainWindow::slotSendBrokerAlive() +{ + sendEventToBroker(ALIVE); +} + + void ONMainWindow::slotSyncX() { if (proxyRunning) @@ -4002,11 +4012,12 @@ void ONMainWindow::sendEventToBroker(ONMainWindow::client_events ev) { return; } - if(ev <= lastBrokerEvent && resumingSession.sessionId == lastBrokerEventSession ) + if(ev <= lastBrokerEvent && resumingSession.sessionId == lastBrokerEventSession && ev != ALIVE) { return; } - lastBrokerEvent=ev; + if(ev!=ALIVE) + lastBrokerEvent=ev; lastBrokerEventSession=resumingSession.sessionId; QString event; switch(ev) @@ -4021,6 +4032,8 @@ void ONMainWindow::sendEventToBroker(ONMainWindow::client_events ev) { event="CONNECTED"; resumingSession.connectedSince=QDateTime::currentDateTime().toTime_t(); + if(config.brokerLiveEventsTimeout) + brokerAliveTimer->start(config.brokerLiveEventsTimeout*1000); break; } case SUSPENDING: @@ -4036,12 +4049,18 @@ void ONMainWindow::sendEventToBroker(ONMainWindow::client_events ev) case FINISHED: { event="FINISHED"; + brokerAliveTimer->stop(); + break; + } + case ALIVE: + { + event="ALIVE"; break; } } broker->sendEvent(event, resumingSession.sessionId,resumingSession.server, resumingSession.clientIp, getCurrentUname(), - resumingSession.command, resumingSession.display, resumingSession.crTime, - QDateTime::currentDateTime().toTime_t()-resumingSession.connectedSince); + resumingSession.command, resumingSession.display, resumingSession.crTime, + QDateTime::currentDateTime().toTime_t()-resumingSession.connectedSince); } diff --git a/src/onmainwindow.h b/src/onmainwindow.h index 0abf74a..3996e43 100644 --- a/src/onmainwindow.h +++ b/src/onmainwindow.h @@ -170,6 +170,7 @@ struct ConfigFile bool brokerAutologoff; bool brokerKrbLogin; bool brokerEvents; //Send events to broker and get control commands + uint brokerLiveEventsTimeout; //(seconds)How often send alive events, 0 - do not send QString brokerSshKey; QString brokerCaCertFile; QString iniFile; @@ -306,7 +307,8 @@ public: CONNECTED, SUSPENDING, TERMINATING, - FINISHED + FINISHED, + ALIVE }; static bool debugging; @@ -724,6 +726,7 @@ private: QTimer *spoolTimer; QTimer *proxyWinTimer; QTimer *xineramaTimer; + QTimer *brokerAliveTimer; short xinSizeInc; QRect lastDisplayGeometry; QList <QRect> xineramaScreens; @@ -1051,6 +1054,7 @@ public slots: void slotEnableBrokerLogoutButton (); private slots: + void slotSendBrokerAlive(); void slotShowPAMSGDialog(bool error, const QString& main_text, const QString& info_text, bool modal); void slotSnameChanged ( const QString& ); void slotSelectedFromList ( SessionButton* session ); -- 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 a775155acafda1d996fa6c10cf07c901561414a9 Author: Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> Date: Wed Aug 22 14:48:39 2018 +0200 Broker can send to client command to suspend or terminate the session as an answer to the client event message. For this broker should send to client SUSPEND ID or TERMINATE ID. --- debian/changelog | 3 +++ src/httpbrokerclient.cpp | 12 ++++++++++++ src/onmainwindow.cpp | 21 +++++++++++++++++++++ src/onmainwindow.h | 2 ++ 4 files changed, 38 insertions(+) diff --git a/debian/changelog b/debian/changelog index cdb3712..dc01147 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,9 @@ x2goclient (4.1.2.2-0x2go1) UNRELEASED; urgency=medium ALIVE events. To do this, broker should send config option "liveevent" (int). It means, if liveevent=10, client will send ALIVE event to broker every 10 seconds when the client connected to X2Go Session. + - Broker can send to client command to suspend or terminate the session as an + answer to the client event message. For this broker should send to client + SUSPEND ID or TERMINATE ID. [ Mihai Moldovan ] * New upstream version (4.1.2.2): diff --git a/src/httpbrokerclient.cpp b/src/httpbrokerclient.cpp index b12961f..6110866 100644 --- a/src/httpbrokerclient.cpp +++ b/src/httpbrokerclient.cpp @@ -408,6 +408,18 @@ void HttpBrokerClient::slotEventSent(bool success, QString answer, int) if(!checkAccess(answer)) return; x2goDebug<<"event sent:"<<answer; + if(answer.indexOf("SUSPEND")!=-1) + { + QString sid=answer.split("SUSPEND ")[1].simplified(); + x2goDebug<<"broker asks to suspend "<<sid; + mainWindow->suspendFromBroker(sid); + } + if(answer.indexOf("TERMINATE")!=-1) + { + QString sid=answer.split("TERMINATE ")[1].simplified(); + x2goDebug<<"broker asks to terminate "<<sid; + mainWindow->terminateFromBroker(sid); + } } diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp index e5a9855..8aa5078 100644 --- a/src/onmainwindow.cpp +++ b/src/onmainwindow.cpp @@ -5028,6 +5028,27 @@ void ONMainWindow::slotResumeSess() } +void ONMainWindow::suspendFromBroker(const QString& sid) +{ + if(proxyRunning && sid ==resumingSession.sessionId) + { + x2goDebug<<"Suspending session from broker"; + sendEventToBroker(SUSPENDING); + suspendSession(sid); + } +} + + +void ONMainWindow::terminateFromBroker(const QString& sid) +{ + if(proxyRunning && sid ==resumingSession.sessionId) + { + x2goDebug<<"Suspending session from broker"; + sendEventToBroker(TERMINATING); + termSession(sid,false); + } +} + void ONMainWindow::slotSuspendSess() { diff --git a/src/onmainwindow.h b/src/onmainwindow.h index 3996e43..3fa35dd 100644 --- a/src/onmainwindow.h +++ b/src/onmainwindow.h @@ -914,6 +914,8 @@ private: bool trayMaxDiscon; bool trayAutoHidden; void sendEventToBroker(client_events ev); + void suspendFromBroker(const QString& sid); + void terminateFromBroker(const QString& sid); QString findSshKeyForServer(QString user, QString server, QString port); void loadSettings(); void showPass ( UserButton* user ); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goclient.git