[X2Go-Commits] x2goclient.git - build-baikal (branch) updated: 4.0.1.0-15-ga657ff6
X2Go dev team
git-admin at x2go.org
Wed Sep 11 12:08:01 CEST 2013
The branch, build-baikal has been updated
via a657ff6df33de369f4c323e42b642b157d999b45 (commit)
from c25f99471a30d406a68356d710f928b2e805973f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
.gitignore | 7 +
debian/changelog | 4 +
onmainwindow.cpp | 899 +++++++++++++++++++++++++++++++----------------
onmainwindow.h | 3 +
sshmasterconnection.cpp | 88 ++++-
x2goclientconfig.h | 2 +-
x2gologdebug.cpp | 1 -
x2gologdebug.h | 33 +-
8 files changed, 716 insertions(+), 321 deletions(-)
The diff of changes is:
diff --git a/.gitignore b/.gitignore
index 721e32c..bd81db2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,11 @@
# Temporary object files/static libs.
*.[oa]
+client_build/
+plugin_build/
+.build_man2html
+x2goclient
+
# Generated by qmake.
moc_*.cpp
ui_*.h
@@ -14,4 +19,6 @@ x2goclient_*.qm
# Generated by qmake when building on OS X.
x2goclient.app
+x2goclient.dmg
+x2goclient.pro.user
diff --git a/debian/changelog b/debian/changelog
index d06914d..85111fe 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,10 @@ x2goclient (4.0.1.1-0~x2go1) UNRELEASED; urgency=low
Let's consider a given SSH private key that fails to log the user
in as an overall login failure. (Fixes: #141).
+ [ Otto Kjell ]
+ * New upstream version (4.0.1.1):
+ - Enable debug mode through cmd line parameter. (Fixes: #142).
+
[ Orion Poplawski ]
* New upstream version (4.0.1.1):
- Instead of using a hard-code DPI of 96, use local DPI settings for new
diff --git a/onmainwindow.cpp b/onmainwindow.cpp
index 5f37cc1..c69fc43 100644
--- a/onmainwindow.cpp
+++ b/onmainwindow.cpp
@@ -36,18 +36,20 @@ bool ONMainWindow::portable=false;
QString ONMainWindow::homeDir;
QString ONMainWindow::sessionCfg;
-
#ifdef Q_OS_WIN
QString ONMainWindow::u3Device;
#endif
+bool ONMainWindow::debugging=false;
ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
{
#ifdef Q_OS_LINUX
image=shape=0;
#endif
- x2goDebug<<"ONMainWindow constructor"<<endl;
+ x2goInfof(1) << tr("Starting x2goclient...");
+ debugging = false;
+
setFocusPolicy ( Qt::NoFocus );
installTranslator();
cleanAllFiles=false;
@@ -223,8 +225,8 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
portableDataPath=QDir::currentPath();
homeDir=portableDataPath;
- x2goDebug<<"running in \"portable\" mode\n"<<
- "Data Dir is "<<portableDataPath;
+
+ x2goInfof(2)<<tr("Starting x2goclient in portable mode... data directory is: ")<<portableDataPath;
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(slotCheckPortableDir()));
timer->start(1000);
@@ -241,7 +243,6 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
trayIconInit();
-
if ( embedMode )
{
miniMode=false;
@@ -270,13 +271,11 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
QDesktopWidget wd;
- //x2goDebug<<"primary screen geometry: "<<wd.screenGeometry(wd.screenNumber(this));
-
if ( wd.screenGeometry(wd.screenNumber(this)).width() <1024 ||
wd.screenGeometry(wd.screenNumber(this)).height() <768 )
{
miniMode=true;
- x2goDebug<<"Switching to \"mini\" mode";
+ x2goDebug<<"Switching to \"mini\" mode...";
}
@@ -391,7 +390,8 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
initStatusDlg();
#if defined(CFGPLUGIN) && defined(Q_OS_LINUX)
- x2goDebug<<"create embedContainer"<<endl;
+
+ x2goDebug<<"Creating embedded container.";
embedContainer=new QX11EmbedContainer ( fr );
#endif
@@ -457,9 +457,11 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
connect( xineramaTimer, SIGNAL(timeout()), this, SLOT(slotConfigXinerama()));
- x2goDebug<<"ONMainWindows constructor finished, home Directory is:"<<homeDir<<endl;
+ x2goInfof(3)<<tr("Started x2goclient.");
+ x2goDebug<<"$HOME=" + homeDir.toAscii();
if (thinMode)
{
+ x2goDebug<<"ThinMode is active.";
showMaximized();
activateWindow();
raise();
@@ -469,10 +471,10 @@ ONMainWindow::ONMainWindow ( QWidget *parent ) :QMainWindow ( parent )
ONMainWindow::~ONMainWindow()
{
- x2goDebug<<"ONMainWindow destructor";
+ x2goDebug<<"Destroying x2goclient...";
if ( !closeEventSent )
closeClient();
- x2goDebug<<"end of ONMainWindow destructor";
+ x2goDebug<<"Destroyed x2goclient.";
}
void ONMainWindow::slotShutdownThinClient()
@@ -517,13 +519,12 @@ void ONMainWindow::installTranslator()
filename=filename.toLower();
if ( !x2goclientTranslator->load ( filename ) )
{
- qDebug ( "Can't load translator (%s) !\n",
- filename.toLocal8Bit().data() );
+ x2goWarningf(1)<<tr("Can't load translator: ") + filename.toAscii();
}
else
{
QCoreApplication::installTranslator ( x2goclientTranslator );
-// x2goDebug<<"translator "<<filename<< " installed";
+ x2goInfof(4)<<tr("Translator: ") + filename.toAscii() + tr(" installed.");
}
@@ -531,13 +532,12 @@ void ONMainWindow::installTranslator()
filename=QString ( ":/qt_%1" ).arg ( QLocale::system().name() );
if ( !qtTranslator->load ( filename ) )
{
- x2goDebug<< "Can't load translator "<<
- filename.toLocal8Bit().data() ;
+ x2goWarningf(2)<<tr("Can't load translator: ") + filename.toAscii();
}
else
{
QCoreApplication::installTranslator ( qtTranslator );
-// x2goDebug<<"translator "<<filename<< " installed";
+ x2goInfof(5)<<tr("Translator: ") + filename.toAscii() + tr(" installed.");
}
}
@@ -654,6 +654,7 @@ void ONMainWindow::initWidgetsEmbed()
if ( config.confFS&& ( !config.useFs ) )
{
x2goDebug<<"hide share";
+
act_shareFolder->setVisible ( false );
}
@@ -915,7 +916,8 @@ void ONMainWindow::slotTestConnection()
void ONMainWindow::slotChangeBrokerPass()
{
- x2goDebug<<"change broker pass";
+ x2goDebug<<"Changing broker password.";
+
BrokerPassDlg passDlg;
if (passDlg.exec()!=QDialog::Accepted)
return;
@@ -938,7 +940,7 @@ void ONMainWindow::slotCheckPortableDir()
{
if (!QFile::exists(homeDir))
{
- x2goDebug<<"portable dir not exists, close";
+ x2goDebug<<"Portable directory does not exists, closing.";
close();
}
}
@@ -1085,8 +1087,12 @@ void ONMainWindow::trayIconInit()
trayIcon->setIcon(QIcon ( ":icons/128x128/x2go.png") );
trayIcon->setToolTip(tr("Left mouse button to hide/restore - Right mouse button to display context menu"));
}
- trayIcon->show();
- plugAppsInTray();
+
+ if (!startHidden)
+ {
+ trayIcon->show();
+ plugAppsInTray();
+ }
}
#endif
}
@@ -1101,7 +1107,8 @@ QMenu* ONMainWindow::initTrayAppMenu(QString text, QPixmap icon)
void ONMainWindow::slotAppMenuTriggered(QAction* action)
{
- x2goDebug<<"slotAppMenuTriggered :"<<action->data().toString()<<endl;
+ x2goDebug<<"slotAppMenuTriggered: "<<action->data().toString();
+
if (action->data().toString() != "")
runApplication(action->data().toString());
}
@@ -1111,7 +1118,9 @@ void ONMainWindow::plugAppsInTray()
if (!trayIcon)
return;
removeAppsFromTray();
- x2goDebug<<"plugging apps\n";
+
+ x2goDebug<<"Plugging apps in tray.";
+
bool empty=true;
topActions.clear();
foreach(Application app, applications)
@@ -1141,7 +1150,9 @@ void ONMainWindow::removeAppsFromTray()
{
if (!trayIcon)
return;
- x2goDebug<<"remove apps\n";
+
+ x2goDebug<<"Removing apps from tray";
+
for (int i=0; i<=Application::OTHER; ++i)
{
appMenu[i]->clear();
@@ -1245,13 +1256,13 @@ void ONMainWindow::slotResize ( const QSize sz )
void ONMainWindow::closeClient()
{
+ x2goInfof(6)<<tr("Closing x2goclient...");
if(trayIcon)
trayIcon->hide();
closeEventSent=true;
if ( !startMaximized && !startHidden && !embedMode )
{
- x2goDebug<<"saving settings";
-
+ x2goDebug<<"Saving settings...";
X2goSettings st ( "sizes" );
st.setting()->setValue ( "mainwindow/size",
@@ -1260,7 +1271,7 @@ void ONMainWindow::closeClient()
st.setting()->setValue ( "mainwindow/maximized",
QVariant ( isMaximized() ) );
st.setting()->sync();
- x2goDebug<<"done";
+ x2goDebug<<"Saved settings.";
#ifdef Q_OS_LINUX
if (image)
XFreePixmap(QX11Info::display(),image);
@@ -1272,20 +1283,19 @@ void ONMainWindow::closeClient()
{
if ( nxproxy->state() ==QProcess::Running )
{
- x2goDebug<<"terminate proxy";
+ x2goDebug<<"Terminating proxy...";
nxproxy->terminate();
- x2goDebug<<"done";
+ x2goDebug<<"Terminated proxy.";
}
- x2goDebug<<"delete proxy process";
+ x2goDebug<<"Deleting proxy...";
delete nxproxy;
- x2goDebug<<"done";
-
+ x2goDebug<<"Deleted proxy.";
}
if ( sshConnection && !useLdap)
{
- x2goDebug<<"waiting sshConnection to finish\n";
+ x2goDebug<<"Waiting for the SSH connection to finish...";
delete sshConnection;
- x2goDebug<<"sshConnection is closed\n";
+ x2goDebug<<"Waited for the SSH connection to finish.";
sshConnection=0;
}
if (useLdap)
@@ -1294,51 +1304,29 @@ void ONMainWindow::closeClient()
{
if (serverSshConnections[i])
{
- x2goDebug<<"waiting sshConnection to finish\n";
+ x2goDebug<<"Waiting for the SSH connection to finish...";
delete serverSshConnections[i];
- x2goDebug<<"sshConnection is closed\n";
+ x2goDebug<<"Waited for the SSH connection to finish.";
}
}
}
- /* if ( tunnel!=0l )
- {
- x2goDebug<<"delete tunnel";
- delete tunnel;
- x2goDebug<<"done";
- }
- if ( sndTunnel!=0l )
- {
- x2goDebug<<"delete snd tunnel";
- delete sndTunnel;
- x2goDebug<<"done";
- }
- if ( fsTunnel!=0l )
- {
- x2goDebug<<"delete fs tunnel";
- delete fsTunnel;
- x2goDebug<<"done";
- }
- */
if ( soundServer )
{
- x2goDebug<<"delete snd server";
+ x2goDebug<<"Deleting the sound server...";
delete soundServer;
- x2goDebug<<"done";
+ x2goDebug<<"Deleted the sound server.";
}
if ( gpgAgent!=0l )
{
- x2goDebug<<"terminate gpg-agent";
if ( gpgAgent->state() ==QProcess::Running )
+ {
+ x2goDebug<<"Terminating gpg-agent...";
gpgAgent->terminate();
- x2goDebug<<"done";
- }
- /* if ( useSshAgent )
- {
- x2goDebug<<"terminate ssh-agent";
- finishSshAgent();
- x2goDebug<<"done";
- }*/
+ x2goDebug<<"Terminated gpg-agent.";
+ }
+ }
+
#ifndef Q_OS_WIN
if ( agentPid.length() >0 )
{
@@ -1353,13 +1341,15 @@ void ONMainWindow::closeClient()
#ifdef Q_OS_WIN
if ( pulseServer )
{
+ x2goDebug<<"Deleting the pulse timer...";
delete pulseTimer;
-
- x2goDebug<<"terminate pulse";
+ x2goDebug<<"Deleted the pulse timer.";
+ x2goDebug<<"Killing the pulse sound server...";
pulseServer->kill();
- x2goDebug<<"done\ndelete pulse process";
+ x2goDebug<<"Killed the pulse sound server.";
+ x2goDebug<<"Deleting the pulse process...";
delete pulseServer;
- x2goDebug<<"done";
+ x2goDebug<<"Deleted the pulse process.";
QDir dr ( homeDir );
dr.remove ( pulseDir+"/config.pa" );
@@ -1369,11 +1359,12 @@ void ONMainWindow::closeClient()
}
if ( xorg )
{
- x2goDebug<<"terminate xorg";
+ x2goDebug<<"Terminating xorg...";
xorg->terminate();
- x2goDebug<<"done\ndelete xorg process";
+ x2goDebug<<"Terminated xorg.";
+ x2goDebug<<"Deleting xorg...";
delete xorg;
- x2goDebug<<"done";
+ x2goDebug<<"Deleted xorg.";
}
if ( winSshdStarted )
@@ -1385,8 +1376,9 @@ void ONMainWindow::closeClient()
#else
if ( userSshd && sshd )
{
+ x2goDebug<<"Terminating sshd...";
sshd->terminate();
- x2goDebug<<"terminating userspace sshd";
+ x2goDebug<<"Terminated sshd.";
delete sshd;
}
@@ -1411,11 +1403,14 @@ void ONMainWindow::closeClient()
cleanPortable();
}
SshMasterConnection::finalizeLibSsh();
+
+ x2goInfof(7)<<tr("Closed x2goclient.");
}
void ONMainWindow::closeEvent ( QCloseEvent* event )
{
- x2goDebug<<"close event";
+ x2goDebug<<"Close event received.";
+
if (trayNoclose && !brokerMode)
{
hide();
@@ -1578,7 +1573,9 @@ void ONMainWindow::displayUsers()
if ( usePGPCard && !PGPInited)
{
PGPInited=true;
- x2goDebug<<"Users loaded, starting smart card daemon\n";
+
+ x2goDebug<<"Users loaded, starting smart card daemon.";
+
QTimer::singleShot ( 10, this, SLOT ( slotStartPGPAuth() ) );
}
}
@@ -1738,8 +1735,8 @@ void ONMainWindow::slotPassEnter()
{
sPort=sL.front().c_str();
}
- x2goDebug<<server.name<<": ssh port is "<<sPort;
+ x2goDebug<<"SSH-Server("<<server.name<<") port: "<<sPort;
QString sFactor="1";
list<string> serialNumber=LDAPSession::getStringAttrValues (
@@ -1748,7 +1745,9 @@ void ONMainWindow::slotPassEnter()
{
sFactor=serialNumber.front().c_str();
}
- x2goDebug<<server.name<<": factor is "<<sFactor;
+
+ x2goDebug<<"SSH-Server("<<server.name<<") factor: "<<sFactor;
+
server.factor=sFactor.toFloat();
server.sess=0;
server.sshPort=sPort;
@@ -2144,10 +2143,16 @@ void ONMainWindow::slotReadSessions()
st= new X2goSettings( "sessions" );
QStringList slst=st->setting()->childGroups();
- x2goDebug<<"read "<<slst.size()<<" sessions from config file";
+
+ x2goDebug<<"Reading "<<slst.size()<<" sessions from config file.";
+
if (brokerMode && (slst.size()==0))
{
- QMessageBox::critical(this,tr("Error"),tr("X2Go sessions not found"));
+ QString error = tr("No X2Go sessions found, closing.");
+ if(!startHidden)
+ QMessageBox::critical(this,tr("Error"),error);
+ else
+ x2goErrorf(1)<<error; // tr("No X2Go sessions not found, closing.");
close();
return;
}
@@ -2333,7 +2338,9 @@ void ONMainWindow::displayToolBar ( bool show )
bool ONMainWindow::initLdapSession ( bool showError )
{
#ifdef USELDAP
- x2goDebug<<"initing LDAP Session"<<endl;
+
+ x2goDebug<<"Initializing LDAP sessions...";
+
try
{
ld=new LDAPSession ( ldapServer.toStdString(),
@@ -2344,7 +2351,9 @@ bool ONMainWindow::initLdapSession ( bool showError )
QString message="Exeption0 in: ";
message=message+e.err_type.c_str();
message=message+" : "+e.err_str.c_str();
- x2goDebug <<message<<endl;
+
+ x2goDebug<<message;
+
if ( ldapServer1.length() )
{
try
@@ -2358,7 +2367,9 @@ bool ONMainWindow::initLdapSession ( bool showError )
QString message="Exeption1 in: ";
message=message+e.err_type.c_str();
message=message+" : "+e.err_str.c_str();
- x2goDebug <<message<<endl;
+
+ x2goDebug<<message;
+
if ( ldapServer2.length() )
{
try
@@ -2376,8 +2387,8 @@ bool ONMainWindow::initLdapSession ( bool showError )
e.err_type.c_str();
message=message+" : "+
e.err_str.c_str();
- x2goDebug <<message<<endl;
- x2goDebug<<"return false"<<endl;
+
+ x2goDebug<<message;
if ( showError )
QMessageBox::critical (
0l,tr ( "Error" ),
@@ -2386,12 +2397,14 @@ bool ONMainWindow::initLdapSession ( bool showError )
QMessageBox::
NoButton );
+ x2goDebug<<"Returning false, 3rd try failed.";
return false;
}
}
else
{
- x2goDebug<<"return false"<<endl;
+ x2goDebug<<"Returning false.";
+
if ( showError )
QMessageBox::critical (
0l,tr ( "Error" ),
@@ -2405,7 +2418,8 @@ bool ONMainWindow::initLdapSession ( bool showError )
}
else
{
- x2goDebug<<"return false"<<endl;
+ x2goDebug<<"Returning false.";
+
if ( showError )
QMessageBox::critical ( 0l,tr ( "Error" ),
message,QMessageBox::Ok,
@@ -2535,6 +2549,7 @@ bool ONMainWindow::initLdapSession ( bool showError )
}
}
#endif
+ x2goDebug<<"Initialized LDAP sessions.";
return true;
}
@@ -2727,7 +2742,7 @@ void ONMainWindow::slotSelectedFromList ( SessionButton* session )
}
if ( currentKey != QString::null && currentKey != "" && nopass )
{
- x2goDebug<<"Have key, starting session"<<endl;
+ x2goDebug<<"Starting session with key.";
slotSessEnter();
}
if ( cardReady || autologin || krblogin )
@@ -2762,17 +2777,20 @@ SshMasterConnection* ONMainWindow::startSshConnection ( QString host, QString po
QString proxylogin, QString proxypassword, QString proxyKey,
bool proxyAutologin)
{
-
+ x2goInfof(8)<<tr("Starting connection to server: ") + host + ":" + port;
SshMasterConnection* con;
- x2goDebug<<"start new ssh connection to server:"<<host<<":"<<port<<"krb: "<<krbLogin<<endl;
+
+ x2goDebug<<"Start new ssh connection to server:"<<host<<":"<<port<<" krbLogin: "<<krbLogin;
+
for ( int i=0; i<sshEnv.size(); ++i )
{
#ifndef Q_OS_WIN
QStringList args=sshEnv[i].split ( "=" );
- x2goDebug<<"set Env "<<args[0]<<" to "<<args[1]<<endl;
+ x2goDebug<<"Setting ENV " + args[0] + tr(" to ") + args[1];
setenv ( args[0].toAscii(),args[1].toAscii(),1 );
#else
- x2goDebug<<"set Env "<<sshEnv[i]<<endl;
+ x2goDebug<<"Set ENV: "<<sshEnv[i];
+
_putenv ( sshEnv[i].toAscii() );
#endif
}
@@ -2813,6 +2831,7 @@ SshMasterConnection* ONMainWindow::startSshConnection ( QString host, QString po
void ONMainWindow::slotSshConnectionError ( QString message, QString lastSessionError )
{
+ x2goErrorf(2)<< tr("Connection Error(") + message + "): " + lastSessionError;
if ( sshConnection )
{
sshConnection->wait();
@@ -2820,26 +2839,35 @@ void ONMainWindow::slotSshConnectionError ( QString message, QString lastSession
sshConnection=0l;
}
- QMessageBox::critical ( 0l,message,lastSessionError,
- QMessageBox::Ok,
- QMessageBox::NoButton );
- setEnabled ( true );
- passForm->setEnabled ( true );
- slotShowPassForm();
- pass->setFocus();
- pass->selectAll();
+ if (!startHidden)
+ {
+ QMessageBox::critical ( 0l,message,lastSessionError,
+ QMessageBox::Ok,
+ QMessageBox::NoButton );
+ setEnabled ( true );
+ passForm->setEnabled ( true );
+ slotShowPassForm();
+ pass->setFocus();
+ pass->selectAll();
- passForm->setEnabled ( true );
- if ( startHidden )
+ passForm->setEnabled ( true );
+ }
+ else
{
- startHidden=false;
- slotResize();
- show();
- activateWindow();
- raise();
+ // In order to get this interaction free, we need to free this from windows and stuff
+ // if ( startHidden )
+ // {
+ // startHidden=false;
+ // slotResize();
+ // show();
+ // activateWindow();
+ // raise();
+ // }
+
+ // completely quit the application
+ trayQuit();
}
-
}
@@ -2847,7 +2875,7 @@ void ONMainWindow::slotSshConnectionError ( QString message, QString lastSession
void ONMainWindow::slotSshConnectionOk()
{
- x2goDebug<<"ssh connection ok"<<endl;
+ x2goDebug<<"SSH connection established.";
passForm->setEnabled ( true );
if ( useLdap )
{
@@ -2860,14 +2888,19 @@ void ONMainWindow::slotSshConnectionOk()
SshMasterConnection* ONMainWindow::findServerSshConnection(QString host)
{
+ x2goDebug<<"Searching for SSH connections...";
for (int i=0; i<serverSshConnections.count(); ++i)
{
if (serverSshConnections[i])
{
if (serverSshConnections[i]->getHost()==host)
+ {
+ x2goDebug<<"Found SSH connection.";
return serverSshConnections[i];
+ }
}
}
+ x2goWarningf(3)<< tr("Couldn't find a SSH connection.");
return 0l;
}
@@ -2876,7 +2909,7 @@ void ONMainWindow::slotServSshConnectionOk(QString server)
SshMasterConnection* con=findServerSshConnection(server);
if (!con)
return;
- x2goDebug<<"getting sessions on "<<server<<endl;
+ x2goDebug<<"Getting sessions on Host: " + server;
con->executeCommand( "export HOSTNAME && x2golistsessions", this, SLOT (slotListAllSessions ( bool,QString,int ) ));
}
@@ -2993,6 +3026,21 @@ void ONMainWindow::slotSshUserAuthError ( QString error )
sshConnection=0l;
}
+ // if ( startHidden )
+ // {
+ // startHidden=false;
+ // slotResize();
+ // show();
+ // activateWindow();
+ // raise();
+ // }
+ // hidden means hidden, we'll close the client afterwards.
+ if ( startHidden )
+ {
+ x2goErrorf(3)<< tr("Authentication failed: ") + error;
+ trayQuit();
+ }
+
QMessageBox::critical ( 0l,tr ( "Authentication failed" ),error,
QMessageBox::Ok,
QMessageBox::NoButton );
@@ -3005,14 +3053,6 @@ void ONMainWindow::slotSshUserAuthError ( QString error )
passForm->setEnabled ( true );
- if ( startHidden )
- {
- startHidden=false;
- slotResize();
- show();
- activateWindow();
- raise();
- }
}
void ONMainWindow::slotSessEnter()
@@ -3027,7 +3067,8 @@ void ONMainWindow::slotSessEnter()
{
if (!config.brokerAuthenticated)
{
- x2goDebug<<"starting broker request";
+
+ x2goDebug<<"Starting broker request.";
slotStartBroker();
return;
}
@@ -3060,7 +3101,7 @@ void ONMainWindow::slotSessEnter()
void ONMainWindow::continueNormalSession()
{
- x2goDebug<<"continue normal x2go session"<<endl;
+ x2goDebug<<"Continue normal x2go session";
if (brokerMode)
{
slotListSessions(true,QString::null,0);
@@ -3252,7 +3293,8 @@ bool ONMainWindow::startSession ( const QString& sid )
if(brokerMode)
{
sshPort=config.sshport;
- x2goDebug<<"server: "<<host;
+
+ x2goDebug<<"Server: "<<host;
}
QString cmd=st->setting()->value ( sid+"/command",
@@ -3403,9 +3445,24 @@ void ONMainWindow::slotListSessions ( bool result,QString output,
message;
}
- QMessageBox::critical ( 0l,tr ( "Error" ),message,
- QMessageBox::Ok,
- QMessageBox::NoButton );
+ if ( !startHidden )
+ {
+ QMessageBox::critical ( 0l,tr ( "Error" ),message,
+ QMessageBox::Ok,
+ QMessageBox::NoButton );
+ }
+ else
+ {
+ QString printout = tr( "Connection failed: ") + output.toAscii();
+
+ if ( output.indexOf ( "publickey,password" ) !=-1 )
+ x2goErrorf(4)<< tr( "Connection failed: ") + output + tr(" - Wrong password.");
+ else
+ x2goErrorf(5)<< tr( "Connection failed: ") + output;
+ trayQuit();
+ }
+
+
// currentKey=QString::null;
setEnabled ( true );
passForm->setEnabled ( true );
@@ -3424,17 +3481,16 @@ void ONMainWindow::slotListSessions ( bool result,QString output,
}
if ( managedMode || brokerMode )
{
- x2goDebug<<"sess data:"<<config.sessiondata;
+ x2goDebug<<"Session data: " + config.sessiondata;
if ( config.sessiondata.indexOf ( "|S|" ) ==-1 )
{
- x2goDebug<<"start new managed session";
+ x2goDebug<<"Starting new managed session.";
startNewSession();
}
else
{
- x2goSession s=getSessionFromString (
- config.sessiondata );
- x2goDebug<<"resuming managed session:"<<s.sessionId;
+ x2goSession s=getSessionFromString (config.sessiondata);
+ x2goDebug<<"Resuming managed session with Id: " + s.sessionId;
resumeSession ( s );
}
return;
@@ -3722,7 +3778,9 @@ void ONMainWindow::startNewSession()
QString geometry;
#ifdef Q_OS_WIN
- x2goDebug<<"fullscreen: "<<fullscreen;
+
+ x2goDebug<<"Fullscreen: "<<fullscreen;
+
maximizeProxyWin=false;
proxyWinWidth=width;
proxyWinHeight=height;
@@ -3744,7 +3802,9 @@ void ONMainWindow::startNewSession()
#ifdef Q_OS_WIN
// fullscreen=false;
maximizeProxyWin=true;
- x2goDebug<<"maximizeProxyWin: "<<maximizeProxyWin;
+
+ x2goDebug<<"Maximize proxy win: "<<maximizeProxyWin;
+
#endif
}
if ( ! fullscreen )
@@ -3847,7 +3907,9 @@ void ONMainWindow::startNewSession()
shadowUser+"XSHAD"+shadowDisplay;
}
resumingSession.fullscreen=fullscreen;
- x2goDebug<<cmd<<endl;
+
+ x2goDebug<<"Executing remote command: "<<cmd;
+
if ( managedMode )
{
slotRetResumeSess ( true,config.sessiondata,0 );
@@ -4011,7 +4073,8 @@ void ONMainWindow::resumeSession ( const x2goSession& s )
#ifdef Q_OS_WIN
// fullscreen=false;
maximizeProxyWin=true;
- x2goDebug<<"maximizeProxyWin: "<<maximizeProxyWin;
+
+ x2goDebug<<"Maximize proxy win: "<<maximizeProxyWin;
#endif
}
@@ -4102,10 +4165,10 @@ void ONMainWindow::selectSession ( QStringList& sessions )
setEnabled ( true );
sessionStatusDlg->hide();
passForm->hide();
-// x2goDebug<<"check type";
+
if ( !shadowSession )
{
-// x2goDebug<<"! shadow";
+ x2goDebug<<"No shadow session.";
if ( !miniMode )
selectSesDlgLayout->setContentsMargins ( 25,25,10,10 );
@@ -4114,13 +4177,13 @@ void ONMainWindow::selectSession ( QStringList& sessions )
bTerm->show();
sOk->show();
sCancel->show();
-// x2goDebug<<"standart buttons ok";
+
desktopFilter->hide();
desktopFilterCb->hide();
bShadow->hide();
bShadowView->hide();
bCancel->hide();
-// x2goDebug<<"shadow buttons ok";
+
// model->clear();
model->removeRows ( 0,model->rowCount() );
selectSessionLabel->setText ( tr ( "Select session:" ) );
@@ -4128,10 +4191,9 @@ void ONMainWindow::selectSession ( QStringList& sessions )
QFontMetrics fm ( sessTv->font() );
for ( int row = 0; row < sessions.size(); ++row )
{
-
-// x2goDebug<<"decoding sessionstr:"<<sessions[row];
+ x2goDebug<<"Decoding Sessionstring:" + sessions[row];
x2goSession s=getSessionFromString ( sessions[row] );
-// x2goDebug<<"listing id:"<<s.sessionId;
+
selectedSessions.append ( s );
QStandardItem *item;
@@ -4416,13 +4478,18 @@ void ONMainWindow::slotTermSessFromSt()
#ifdef Q_OS_LINUX
if (directRDP)
{
- x2goDebug<<"terminating direct RDP session";
+
+ x2goDebug<<"Terminating direct RDP session.";
+
nxproxy->terminate();
proxyRunning=false;
return;
}
#endif
- /* x2goDebug <<"disconnect export"<<endl;
+
+ x2goDebug<<"Disconnect export.";
+
+ /*
disconnect ( sbExp,SIGNAL ( clicked() ),this,
SLOT ( slot_exportDirectory() ) );*/
sbExp->setEnabled ( false );
@@ -4564,7 +4631,9 @@ void ONMainWindow::slotRetResumeSess ( bool result,
QString output,
int )
{
- x2goDebug<<"Agent output:"<<output;
+
+ x2goDebug<<"Agent output: "<<output;
+
if ( result==false )
{
QString message=tr ( "<b>Connection failed</b>\n" ) +output;
@@ -4720,17 +4789,23 @@ void ONMainWindow::slotRetResumeSess ( bool result,
if (line.indexOf("gr_port=")!=-1)
{
resumingSession.grPort=line.replace("gr_port=","");
- x2goDebug<<"new gr_port: "<<resumingSession.grPort<<endl;
+
+ x2goDebug<<"New gr_port: "<<resumingSession.grPort;
+
}
if (line.indexOf("sound_port=")!=-1)
{
resumingSession.sndPort=line.replace("sound_port=","");
- x2goDebug<<"new sound_port: "<<resumingSession.sndPort<<endl;
+
+ x2goDebug<<"New sound_port: "<<resumingSession.sndPort;
+
}
if (line.indexOf("fs_port=")!=-1)
{
resumingSession.fsPort=line.replace("fs_port=","");
- x2goDebug<<"new fs_port: "<<resumingSession.fsPort<<endl;
+
+ x2goDebug<<"New fs_port: "<<resumingSession.fsPort;
+
}
}
if (resumingSession.published)
@@ -4831,13 +4906,13 @@ void ONMainWindow::slotRetResumeSess ( bool result,
}
#endif
if ( sysPulse )
-
+ {
sshConnection->copyFile(
"/var/run/pulse/.pulse-cookie",
"~/.x2go/C-"+
resumingSession.sessionId+
"/.pulse-cookie", this, SLOT ( slotPCookieReady ( bool, QString,int )));
-
+ }
else
{
#ifndef Q_OS_WIN
@@ -4942,7 +5017,9 @@ void ONMainWindow::slotTunnelOk(int)
//waiting for X
if ( !winServersReady )
{
- x2goDebug<<"waiting for win-servers";
+
+ x2goDebug<<"Waiting for win-servers.";
+
QTimer::singleShot ( 100, this, SLOT ( slotTunnelOk() ) );
return;
}
@@ -4955,9 +5032,13 @@ void ONMainWindow::slotTunnelOk(int)
if ( !d.exists() )
if ( !d.mkpath ( dirpath ) )
{
- QString message=tr ( "Unable to create folder:" ) +
- dirpath;
- QMessageBox::critical ( 0l,tr ( "Error" ),message,
+ if (startHidden)
+ {
+ x2goErrorf(6)<< tr( "Unable to create folder: ") + dirpath;
+ trayQuit();
+ }
+
+ QMessageBox::critical ( 0l,tr ( "Error" ), tr ( "Unable to create folder: " ) + dirpath,
QMessageBox::Ok,
QMessageBox::NoButton );
slotShowPassForm();
@@ -4981,9 +5062,13 @@ void ONMainWindow::slotTunnelOk(int)
QFile file ( dirpath+"/options" );
if ( !file.open ( QIODevice::WriteOnly | QIODevice::Text ) )
{
- QString message=tr ( "Unable to write file:" ) +
- dirpath+"/options";
- QMessageBox::critical ( 0l,tr ( "Error" ),message,
+ if (startHidden)
+ {
+ x2goErrorf(7)<< tr( "Unable to write file: " ) + dirpath + "/options";
+ trayQuit();
+ }
+
+ QMessageBox::critical ( 0l,tr ( "Error" ), tr( "Unable to write file: " ) + dirpath + "/options",
QMessageBox::Ok,
QMessageBox::NoButton );
slotShowPassForm();
@@ -5014,6 +5099,7 @@ void ONMainWindow::slotTunnelOk(int)
for ( int l=0; l<env.size(); ++l )
{
// x2goDebug<<env[l]<<endl;
+
if ( env[l].indexOf ( "X2GO_LIB" ) ==0 )
{
x2golibpath=env[l].split ( "=" ) [1];
@@ -5043,13 +5129,17 @@ void ONMainWindow::slotTunnelOk(int)
if ( dispInd==-1 )
{
env <<"DISPLAY=localhost:"+disp;
+
/* x2goDebug<<"new env DISPLAY"<<"DISPLAY=localhost:"+disp<<endl;*/
+
}
else
{
env[dispInd]="DISPLAY=localhost:"+disp;
+
/* x2goDebug<<"existing env DISPLAY("<<dispInd<<
") DISPLAY=localhost:"+disp<<endl;*/
+
}
#endif // Q_OS_WIN
#if defined ( Q_OS_DARWIN )
@@ -5066,17 +5156,14 @@ void ONMainWindow::slotTunnelOk(int)
}
if (dispInd == -1)
{
- x2goDebug << "No DISPLAY variable found in global environment, using autodetected setting.";
+
+ x2goDebug<< "No DISPLAY variable found in global environment, using autodetected setting.";
+
env.append ("DISPLAY=" + disp);
}
#endif
nxproxy->setEnvironment ( env );
- /* x2goDebug<<"new env:"<<endl;
- for ( int l=0;l<env.size();++l )
- {
- x2goDebug<<env[l]<<endl;
- }
- x2goDebug<<"##########################"<<endl;*/
+
connect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this,
SLOT ( slotProxyError ( QProcess::ProcessError ) ) );
connect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this,
@@ -5095,7 +5182,9 @@ void ONMainWindow::slotTunnelOk(int)
dir.cd ( "exe" );
proxyCmd="\""+dir.absolutePath() +"/\""+proxyCmd;
#endif //Q_OS_DARWIN
- x2goDebug<<"starting nxproxy with: "<<proxyCmd<<endl;
+
+ x2goDebug<<"Starting NX proxy, command: " + proxyCmd;
+
nxproxy->start ( proxyCmd );
proxyRunning=true;
//always search for proxyWin
@@ -5216,7 +5305,8 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
if ( spoolTimer )
delete spoolTimer;
- x2goDebug<<"deleting proxy"<<endl;
+ x2goDebug<<"Deleting Proxy." ;
+
disconnect ( nxproxy,SIGNAL ( error ( QProcess::ProcessError ) ),this,
SLOT ( slotProxyError ( QProcess::ProcessError ) ) );
disconnect ( nxproxy,SIGNAL ( finished ( int,QProcess::ExitStatus ) ),this,
@@ -5241,7 +5331,7 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
if(proxyErrString.indexOf("No data received from remote proxy")!=-1)
{
emergencyExit=true;
- x2goDebug<<"Emergency exit"<<endl;
+ x2goWarningf(4)<< tr( "Emergency exit." );
}
#if ! (defined (CFGPLUGIN))
@@ -5250,21 +5340,22 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
if ( nxproxy->state() ==QProcess::Running )
{
emergencyExit=true;
- x2goDebug<<"waiting for proxy to exit"<<endl;
+ x2goWarningf(5)<< tr( "Waiting for proxy to exit." );
if ( !nxproxy->waitForFinished ( 3000 ) )
{
- x2goDebug<<"Failed, try to kill"<<endl;
+ x2goWarningf(6)<< tr( "Failed, killing the proxy." );
nxproxy->kill();
}
}
- x2goDebug<<"nxproxy not running"<<endl;
+
#ifdef Q_OS_LINUX
if (directRDP)
nxproxy=0;
#endif
}
#endif
- x2goDebug<<"proxy deleted"<<endl;
+ x2goDebug<<"Waiting for proxy to exit.";
+
spoolTimer=0l;
tunnel=sndTunnel=fsTunnel=0l;
soundServer=0l;
@@ -5283,14 +5374,14 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
if ( !emergencyExit && !shadowSession && !usePGPCard && ! ( embedMode &&
( config.checkexitstatus==false ) ) )
{
- x2goDebug<<"checking exit status";
+ x2goDebug<<"Checking exit status.";
check_cmd_status();
}
else
{
- x2goDebug<<"deleting sshConnection instance: "<<endl;
+ x2goDebug<<"Deleting SSH connection instance.";
delete sshConnection;
- x2goDebug<<"done"<<endl;
+ x2goDebug<<"Deleted SSH connection instance." ;
sshConnection=0;
if ( startHidden )
{
@@ -5330,6 +5421,7 @@ void ONMainWindow::slotProxyFinished ( int,QProcess::ExitStatus )
sessionStatusDlg->hide();
resumeSession ( resumingSession );
}
+ x2goDebug<<"Finished Proxy.";
setStatStatus ( tr ( "Finished" ) );
}
@@ -5340,7 +5432,9 @@ void ONMainWindow::slotProxyStderr()
if ( nxproxy )
reserr= nxproxy->readAllStandardError();
proxyErrString+=reserr;
- x2goDebug<<reserr<<endl;
+
+ x2goDebug<<"Proxy wrote on stderr: "<<reserr;
+
stInfo->insertPlainText ( reserr );
stInfo->ensureCursorVisible();
if ( stInfo->toPlainText().indexOf (
@@ -5427,7 +5521,9 @@ void ONMainWindow::slotProxyStderr()
#if defined( Q_OS_WIN ) && defined (CFGPLUGIN)
if ( reserr.indexOf ( "Session terminated at" ) !=-1 )
{
- x2goDebug<<"proxy finished"<<endl;
+
+ x2goDebug<<"Proxy finished.";
+
slotProxyFinished ( 0, QProcess::NormalExit );
}
#endif
@@ -5439,8 +5535,8 @@ void ONMainWindow::slotProxyStderr()
void ONMainWindow::slotProxyStdout()
{
QString resout ( nxproxy->readAllStandardOutput() );
- x2goDebug<<resout<<endl;
+ x2goDebug<<"Proxy wrote on stdout: "<<resout;
}
@@ -5594,7 +5690,7 @@ bool ONMainWindow::termSession ( QString sessId, bool warn )
nxproxy->terminate();
return true;
}
-
+ x2goDebug<<"Terminating session.";
sshConnection->executeCommand ( "x2goterminate-session "+sessId, this, SLOT ( slotRetTermSess ( bool,
QString,int) ) );
proxyRunning=false;
@@ -5976,13 +6072,15 @@ void ONMainWindow::slotReadApplications(bool result, QString output,
if (line.indexOf("Name["+localshort+"]=")!=-1 || line.indexOf("Name["+locallong+"]=")!=-1)
{
app.name=QString::fromUtf8(line.split("=")[1].toAscii());
-// x2goDebug<<"local name: "<<app.name<<endl;
+
+ // x2goDebug<<"local name: "<<app.name<<endl;
+
localname=true;
}
if (line.indexOf("Comment["+localshort+"]=")!=-1 || line.indexOf("Comment["+locallong+"]=")!=-1)
{
app.comment=QString::fromUtf8(line.split("=")[1].toAscii());
-// x2goDebug<<"local comment: "<<app.comment<<endl;
+ // x2goDebug<<"local comment: "<<app.comment<<endl;
localcomment=true;
}
if (line.indexOf("Name=")!=-1 && !localname)
@@ -5990,12 +6088,12 @@ void ONMainWindow::slotReadApplications(bool result, QString output,
app.name=line.split("=")[1];
if (app.name==autostartApp)
startAppFound=true;
-// x2goDebug<<"name: "<<app.name<<endl;
+ // x2goDebug<<"name: "<<app.name<<endl;
}
if (line.indexOf("Comment=")!=-1 && !localcomment)
{
app.comment=line.split("=")[1];
-// x2goDebug<<"comment: "<<app.comment<<endl;
+ // x2goDebug<<"comment: "<<app.comment<<endl;
}
if (line.indexOf("Exec=")!=-1)
{
@@ -6006,7 +6104,7 @@ void ONMainWindow::slotReadApplications(bool result, QString output,
app.exec.replace("%u","",Qt::CaseInsensitive);
if (app.exec==autostartApp)
startAppFound=true;
-// x2goDebug<<"exec: "<<app.exec<<endl;
+ // x2goDebug<<"exec: "<<app.exec<<endl;
}
if (line.indexOf("Categories=")!=-1)
{
@@ -6073,10 +6171,13 @@ void ONMainWindow::slotReadApplications(bool result, QString output,
plugAppsInTray();
if (runStartApp && autostartApp.length()>1)
{
- if (!startAppFound)
- x2goDebug<<"Autostart application "<<autostartApp<< " not found in Desktop files"<<endl;
+ if (!startAppFound) {
+ x2goDebug<<"Autostart application "<<autostartApp<< " not found in Desktop files.";
+ }
else
+ {
runApplication(autostartApp);
+ }
}
}
@@ -6095,6 +6196,12 @@ bool ONMainWindow::parseParameter ( QString param )
return false;
}
+ if (param == "--debug")
+ {
+ ONMainWindow::debugging = true;
+ return true;
+ }
+
if ( param == "--portable" )
{
ONMainWindow::portable=true;
@@ -6409,10 +6516,11 @@ bool ONMainWindow::parseParameter ( QString param )
if (find!=-1 && lind !=-1)
{
QString label=value.mid(find+1,lind-find-1);
- x2goDebug<< "searching for drive with label: "<<label;
+ x2goDebug<<"Searching for drive with label: "<<label;
+
QString drive=wapiGetDriveByLabel(label);
value.replace("("+label+")",drive);
- x2goDebug<<"new path: "<<value;
+ x2goDebug<<"New path: "<<value;
}
#endif
if (! dr.exists(value))
@@ -6629,11 +6737,15 @@ bool ONMainWindow::packParameter ( QString val )
void ONMainWindow::printError ( QString param )
{
- qCritical ( "%s", ( tr ( "wrong parameter: " ) +param ).
- toLocal8Bit().data() );
-#ifdef Q_OS_WIN
- x2goDebug<<tr ( "wrong parameter: " ) +param <<endl;
-#endif
+ if( !startHidden )
+ {
+ qCritical ( "%s", ( tr ( "Wrong parameter: " ) +param ).
+ toLocal8Bit().data() );
+ }
+ else
+ {
+ x2goErrorf(8)<<tr("Wrong parameter: ")<<param;
+ }
}
void ONMainWindow::showHelp()
@@ -6643,6 +6755,7 @@ void ONMainWindow::showHelp()
"Options:\n"
"--help\t\t\t\t show this message\n"
"--help-pack\t\t\t show available pack methods\n"
+ "--debug\t\t\t\t enables extensive output for console output.\n"
"--no-menu\t\t\t hide menu bar\n"
"--no-session-edit\t\t not allow user to edit preconfigured\n"
"\t\t\t\t sessions\n"
@@ -6667,7 +6780,7 @@ void ONMainWindow::showHelp()
"--command=<cmd>\t\t\t Set default command, default value 'KDE'\n"
"--session=<session>\t\t Start session 'session'\n"
"--user=<username>\t\t select user 'username'\n"
- "--geomerty=<W>x<H>|fullscreen\t set default geometry, default "
+ "--geometry=<W>x<H>|fullscreen\t set default geometry, default "
"value '800x600'\n"
"--dpi=<dpi>\t\t\t set dpi of x2goagent to dpi, default set to same as local display\n"
"--link=<modem|isdn|adsl|wan|lan> set default link type, "
@@ -6683,7 +6796,10 @@ void ONMainWindow::showHelp()
"applications\" mode\n"
"--session-conf=<file>\t\t path to alternative session config\n";
qCritical ( "%s",helpMsg.toLocal8Bit().data() );
- QMessageBox::information ( this,tr ( "Options" ),helpMsg );
+ if (!startHidden)
+ {
+ QMessageBox::information ( this,tr ( "Options" ),helpMsg );
+ }
}
void ONMainWindow::showHelpPack()
@@ -6755,10 +6871,12 @@ void ONMainWindow::slotGetServers ( bool result, QString output,
x2goServers[j].sess=
lst[1].toInt() *
x2goServers[j].factor;
+
x2goDebug<<x2goServers[j].name<<
": sessions "<<
lst[1].toInt() <<
", multiplied "<<x2goServers[j].sess;
+
break;
}
}
@@ -6832,22 +6950,26 @@ void ONMainWindow::slotListAllSessions ( bool result,QString output,
( listedSessions.size() ==1 &&
listedSessions[0].length() <5 ) )
{
-// x2goDebug<<"start New Session";
+ x2goDebug<<"Start new session.";
startNewSession();
}
else if ( listedSessions.size() ==1 )
{
-// x2goDebug<<"have one session";
+ x2goDebug<<"Already having a session.";
x2goSession s=getSessionFromString (
listedSessions[0] );
-// x2goDebug<<"will procceed one session";
+
+ x2goDebug<<"Will procceed with session.";
+
QDesktopWidget wd;
if ( s.status=="S" && isColorDepthOk (
wd.depth(),s.colorDepth ) )
+ {
resumeSession ( s );
+ }
else
{
-// x2goDebug<<"select one Session";
+ x2goDebug<<"Please select one session...";
selectSession ( listedSessions );
}
}
@@ -6932,7 +7054,8 @@ void ONMainWindow::exportDirs ( QString exports,bool removable )
dr.dirList=exports;
dr.key=createRSAKey();
QString passwd;
- x2goDebug<<"key created on: "<<dr.key;
+
+ x2goDebug<<"Key created on: "<<dr.key;
passwd=getCurrentPass();
@@ -7099,15 +7222,17 @@ QString ONMainWindow::createRSAKey()
QStringList args;
- args<<"-t"<<"rsa"<<"-b"<<"1024"<<"-N"<<""<<"-f"<<keyName;
-// x2goDebug <<keyName<<endl;
+ args<<"-t"<<"rsa"<<"-b"<<"1024"<<"-N"<<""<<"-f"<<keyName<<"-q";
+
+ x2goDebug<<"ssh-keygen " + args.join(" ");
if ( QProcess::execute ( "ssh-keygen",args ) !=0 )
{
- x2goDebug <<"ssh-keygen failed" <<endl;
+ x2goDebug<<"ssh-keygen failed." <<endl;
return QString::null;
}
-// x2goDebug <<"ssh-keygen ok" <<endl;
+ x2goDebug<<"ssh-keygen succeeded.";
+
QFile rsa ( "/etc/ssh/ssh_host_rsa_key.pub" );
#ifdef Q_OS_WIN
@@ -7143,7 +7268,7 @@ QString ONMainWindow::createRSAKey()
rsa_pub = rsa.readLine();
else
{
- x2goDebug<<"error: rsa file empty";
+ x2goErrorf(9)<<tr("RSA file empty.");
return QString::null;
}
@@ -7152,7 +7277,7 @@ QString ONMainWindow::createRSAKey()
QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append )
)
{
- x2goDebug<<"error openning key:"<<keyName;
+ x2goErrorf(10)<<tr("Can not open key: ")<<keyName;
return keyName;
}
QTextStream out ( &file );
@@ -7164,9 +7289,12 @@ QString ONMainWindow::createRSAKey()
void ONMainWindow::slotCopyKey ( bool result, QString output, int pid)
{
fsExportKey=sshConnection->getSourceFile(pid);
- x2goDebug<<"exported key "<<fsExportKey;
+
+ x2goDebug<<"Exported key: "<<fsExportKey;
+
QFile::remove ( fsExportKey );
- x2goDebug<<"key removed";
+ x2goDebug<<"Key removed.";
+
if ( result==false )
{
QString message=tr ( "<b>Connection failed</b>\n" ) +output;
@@ -7176,9 +7304,23 @@ void ONMainWindow::slotCopyKey ( bool result, QString output, int pid)
message;
}
- QMessageBox::critical ( 0l,tr ( "Error" ),message,
- QMessageBox::Ok,
- QMessageBox::NoButton );
+ if (!startHidden)
+ {
+ QMessageBox::critical ( 0l,tr ( "Error" ),message,
+ QMessageBox::Ok,
+ QMessageBox::NoButton );
+ }
+ else
+ {
+ QString printout = tr( "Connection failed: ") + output.toAscii();
+
+ if ( output.indexOf ( "publickey,password" ) !=-1 )
+ x2goErrorf(11)<< tr( "Connection failed: ") + output + tr(" - Wrong password.");
+ else
+ x2goErrorf(12)<< tr( "Connection failed: ") + output;
+ trayQuit();
+ }
+
QFile::remove ( fsExportKey+".pub" );
return;
}
@@ -7246,7 +7388,9 @@ void ONMainWindow::slotRetExportDir ( bool result,QString output,
#ifdef Q_OS_WIN
QDir dir;
dir.mkpath ( authofname+"\\.x2go\\.ssh" );
- x2goDebug<<"Creating "<<authofname+"\\.x2go\\.ssh"<<endl;
+
+ x2goDebug<<"Creating "<<authofname+"\\.x2go\\.ssh";
+
authofname=wapiShortFileName ( authofname ) +"/.x2go";
#endif
authofname+="/.ssh/authorized_keys" ;
@@ -7302,13 +7446,15 @@ void ONMainWindow::slotExtTimer()
( QFile::ReadUser|QFile::WriteUser|QFile::ExeUser|
QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ) )
{
- x2goDebug <<"Wrong permissions on "<<readLoginsFrom <<":"<<endl;
- x2goDebug << ( int ) ( QFile::permissions (
+
+ x2goDebug<<"Wrong permissions on "<<readLoginsFrom <<":";
+ x2goDebug<< ( int ) ( QFile::permissions (
readLoginsFrom+"/." ) )
<<"must be"<< ( int ) ( QFile::ReadUser|QFile::WriteUser
|QFile::ExeUser|QFile::ReadOwner|
QFile::WriteOwner|
QFile::ExeOwner ) <<endl;
+
if ( extLogin )
extTimer->stop();
return;
@@ -7338,9 +7484,9 @@ void ONMainWindow::slotExtTimer()
}
if ( args[0]=="logout" )
{
- x2goDebug <<
- " I HAVE external logout"<<
- endl;
+
+ x2goDebug<<"External logout.";
+
args[1].replace ( "\n","" );
if ( args[1].size() )
logoutDir=args[1];
@@ -7354,7 +7500,7 @@ void ONMainWindow::slotExtTimer()
{
if ( logoutDir != QString::null )
{
- x2goDebug <<"external logout"<<endl;
+ x2goDebug<<"External logout received";
externalLogout ( logoutDir );
}
}
@@ -7362,7 +7508,7 @@ void ONMainWindow::slotExtTimer()
{
if ( loginDir != QString::null )
{
- x2goDebug <<"external login"<<endl;
+ x2goDebug<<"External login.";
externalLogin ( loginDir );
}
}
@@ -7377,9 +7523,10 @@ void ONMainWindow::slotExportTimer()
QFile::ExeUser|
QFile::ReadOwner|QFile::WriteOwner|QFile::ExeOwner ) )
{
- x2goDebug <<"Wrong permissions on "<<
+
+ x2goDebug<<"Wrong permissions on "<<
readExportsFrom <<":"<<endl;
- x2goDebug << ( int ) ( QFile::permissions (
+ x2goDebug<< ( int ) ( QFile::permissions (
readExportsFrom+"/." ) )
<<"must be"<< ( int ) ( QFile::ReadUser|QFile::WriteUser
|QFile::ExeUser|QFile::ReadOwner|
@@ -7713,7 +7860,9 @@ void ONMainWindow::slotScDaemonError()
{
QString stdOut ( scDaemon->readAllStandardError() );
stdOut=stdOut.simplified();
- x2goDebug<<"SCDAEMON err:"<<stdOut<<endl;
+
+ x2goDebug<<"SCDAEMON error: "<<stdOut;
+
if ( stdOut.indexOf ( "updating slot" ) !=-1 ||
stdOut.indexOf ( "updating status of slot" ) !=-1 )
{
@@ -7731,7 +7880,8 @@ void ONMainWindow::slotScDaemonOut()
{
QString stdOut ( scDaemon->readAllStandardOutput() );
stdOut=stdOut.simplified();
- x2goDebug<<"SCDAEMON out:"<<stdOut<<endl;
+
+ x2goDebug<<"SCDAEMON out: "<<stdOut;
}
void ONMainWindow::slotScDaemonFinished ( int , QProcess::ExitStatus )
@@ -7739,7 +7889,9 @@ void ONMainWindow::slotScDaemonFinished ( int , QProcess::ExitStatus )
scDaemon=0l;
if ( isScDaemonOk )
{
- x2goDebug<<"scDaemon finished"<<endl;
+
+ x2goDebug<<"SCDAEMON finished."<<endl;
+
gpg=new QProcess ( this );
QStringList arguments;
arguments<<"--card-status";
@@ -7761,7 +7913,9 @@ void ONMainWindow::slotGpgError()
{
QString stdOut ( gpg->readAllStandardError() );
stdOut=stdOut.simplified();
- x2goDebug<<"GPG err:"<<stdOut<<endl;
+
+ x2goDebug<<"GPG error: "<<stdOut;
+
if ( stdOut.indexOf ( "failed" ) !=-1 )
{
QMessageBox::critical ( 0l,tr ( "Error" ),
@@ -7776,13 +7930,17 @@ void ONMainWindow::slotGpgError()
void ONMainWindow::slotGpgFinished ( int exitCode,
QProcess::ExitStatus exitStatus )
{
- x2goDebug<<"gpg finished, exit code:"<<exitCode<<" exit status:"<<
- exitStatus<<endl;
+
+ x2goDebug<<"GPG finished, exit code: "<<exitCode;
+ x2goDebug<<"GPG finished, exit status:"<<exitStatus;
+
if ( exitStatus==0 )
{
QString stdOut ( gpg->readAllStandardOutput() );
stdOut.chop ( 1 );
- x2goDebug<<"GPG out:"<<stdOut<<endl;
+
+ x2goDebug<<"GPG out: "<<stdOut;
+
QStringList lines=stdOut.split ( "\n" );
QString login;
QString appId;
@@ -7807,10 +7965,14 @@ void ONMainWindow::slotGpgFinished ( int exitCode,
appId=appId.simplified();
login=login.simplified();
authKey=authKey.simplified();
- x2goDebug<<"card data: "<<appId<<login<<authKey<<endl;
+
+ x2goDebug<<"Card data: "<<appId<<login<<authKey;
+
if ( login=="[not set]" || authKey == "[none]" )
{
- x2goDebug<<"Card not configured\n";
+
+ x2goErrorf(13)<<tr("Card not configured.");
+
QMessageBox::critical (
0l,tr ( "Error" ),
tr (
@@ -7886,15 +8048,16 @@ void ONMainWindow::slotGpgAgentFinished ( int , QProcess::ExitStatus )
QString gpg_agent_info=envLst[0].split ( "=" ) [1];
QString ssh_auth_sock=envLst[2].split ( "=" ) [1];
agentPid=envLst[4].split ( "=" ) [1];
- x2goDebug<<gpg_agent_info<<ssh_auth_sock<<agentPid<<endl;
- x2goDebug<<"GPGAGENT out:"<<envLst[0]<<envLst[2]<<envLst[4]<<endl;
+
+ x2goDebug<<"GPG-agent info: "<<gpg_agent_info<<ssh_auth_sock<<agentPid;
+ x2goDebug<<"GPG-agent pid: "<<agentPid;
+ x2goDebug<<"GPG-agent out:"<<envLst[0]<<envLst[2]<<envLst[4];
agentCheckTimer->start ( 1000 );
cardReady=true;
sshEnv.clear();
sshEnv<<envLst[0]<<envLst[2]<<envLst[4];
-// x2goDebug<<"sshenv:"<<sshEnv<<endl;
if ( !useLdap )
{
@@ -7918,7 +8081,9 @@ void ONMainWindow::slotGpgAgentFinished ( int , QProcess::ExitStatus )
sshadd.waitForFinished ( -1 );
QString sshout ( sshadd.readAllStandardOutput() );
sshout=sshout.simplified();
- x2goDebug<<"SSH-ADD out:"<<sshout<<endl;
+
+ x2goDebug<<"SSH-ADD out: "<<sshout;
+
if(brokerMode)
{
broker->getUserSessions();
@@ -7937,7 +8102,9 @@ void ONMainWindow::slotGpgAgentFinished ( int , QProcess::ExitStatus )
sshadd.waitForFinished ( -1 );
QString sshout ( sshadd.readAllStandardOutput() );
sshout=sshout.simplified();
- x2goDebug<<"SSH-ADD out:"<<sshout<<endl;
+
+ x2goDebug<<"SSH-ADD out: "<<sshout;
+
return;
}
@@ -7962,13 +8129,14 @@ void ONMainWindow::slotCheckAgentProcess()
if ( nxproxy )
if ( nxproxy->state() ==QProcess::Running )
{
- x2goDebug<<"Suspending session\n";
+ x2goDebug<<"Suspending session...";
slotSuspendSessFromSt();
+ x2goDebug<<"Suspended session.";
// nxproxy->terminate();
}
}
- x2goDebug<<"gpg-agent finished\n";
+ x2goDebug<<"GPG-Agent finished.";
slotStartPGPAuth();
}
@@ -7998,7 +8166,9 @@ QString ONMainWindow::getXDisplay()
// Mac OS X 10.4 compatibility mode.
// There, it is possible no $DISPLAY variable is set.
// Start X11 manually. First, find a free display number.
- x2goDebug << "entering 10.4 compat mode, checking for free X11 display";
+
+ x2goDebug<< "entering 10.4 compat mode, checking for free X11 display";
+
int xFreeDisp = 0;
QDir xtmpdir ("/tmp/.X11-unix");
@@ -8028,7 +8198,8 @@ QString ONMainWindow::getXDisplay()
if (xFreeDisp != -1)
{
xsocket = "/tmp/.X11-unix/X" + QString::number (xFreeDisp);
- x2goDebug << "Successfully detected free socket " << xsocket << ".";
+
+ x2goDebug<< "Successfully detected free socket " << xsocket << ".";
}
if (!(xsocket.isEmpty ()))
@@ -8038,18 +8209,21 @@ QString ONMainWindow::getXDisplay()
QProcessEnvironment env = QProcessEnvironment::systemEnvironment ();
QProcess* startx = new QProcess (this);
- x2goDebug << "Starting the X server on free display port.";
+ x2goDebug<< "Starting the X server on free display port.";
+
env.insert (0, "PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin");
startx->setProcessEnvironment (env);
startx->start (xname + QString (" ") + xopt, QIODevice::NotOpen);
if (startx->waitForStarted (3000))
{
- x2goDebug << "sleeping for three seconds";
+
+ x2goDebug<< "Sleeping for three seconds";
int sleeptime = 3;
while ((sleeptime = sleep (sleeptime))) {};
- x2goDebug << "Leaving OS X 10.4 compat mode.";
+ x2goDebug<< "Leaving OS X 10.4 compat mode.";
+
}
}
}
@@ -8077,7 +8251,9 @@ QString ONMainWindow::getXDisplay()
}
// Prepend the well-known socket path.
xsocket.prepend ("/tmp/.X11-unix/X");
- x2goDebug << "xsocket in compat mode: " << xsocket;
+
+ x2goDebug<< "xsocket in compat mode: " << xsocket;
+
}
unixSocket.connectToServer (xsocket);
@@ -8102,7 +8278,7 @@ QString ONMainWindow::getXDisplay()
if (ok)
{
- x2goDebug << "Returning" << QString (":") + xsocket;
+ x2goDebug<<"Returning " << QString (":") + xsocket;
return (QString (":") + xsocket);
}
}
@@ -8228,7 +8404,9 @@ void ONMainWindow::slotExecXmodmap()
// "echo add mod5 = ISO_Level3_Shift"
")| DISPLAY=:"
+resumingSession.display+" xmodmap - ";
- x2goDebug<<"cmd:"<<cmd;
+
+ x2goDebug<<"Executing xmodmap with cmd: "<<cmd;
+
SshProcess* xmodProc;
try
{
@@ -8254,7 +8432,11 @@ void ONMainWindow::slotExecXmodmap()
void ONMainWindow::check_cmd_status()
{
- x2goDebug<<"check command message"<<endl;
+ QString passwd;
+ QString user=getCurrentUname();
+ QString host=resumingSession.server;
+ passwd=getCurrentPass();
+
sshConnection->executeCommand ( "x2gocmdexitmessage "+
resumingSession.sessionId , this, SLOT(slotCmdMessage(bool, QString, int)));
}
@@ -8262,6 +8444,7 @@ void ONMainWindow::check_cmd_status()
void ONMainWindow::slotCmdMessage ( bool result,QString output,
int)
{
+ x2goDebug<<"Command Message: " + output;
if ( result==false )
{
cardReady=false;
@@ -8285,10 +8468,18 @@ void ONMainWindow::slotCmdMessage ( bool result,QString output,
{
QString cmd=output;
cmd.replace ( "X2GORUNCOMMAND ERR NOEXEC:","" );
- QMessageBox::critical ( 0l,tr ( "Error" ),
- tr ( "Unable to execute: " ) +
- cmd,QMessageBox::Ok,
- QMessageBox::NoButton );
+
+ if(startHidden)
+ {
+ x2goErrorf(14)<< tr( "Unable to execute: ") + cmd;
+ }
+ else
+ {
+ QMessageBox::critical ( 0l,tr ( "Error" ),
+ tr ( "Unable to execute: " ) +
+ cmd,QMessageBox::Ok,
+ QMessageBox::NoButton );
+ }
}
if(sshConnection)
delete sshConnection;
@@ -8303,8 +8494,10 @@ void ONMainWindow::slotCmdMessage ( bool result,QString output,
int ONMainWindow::startSshFsTunnel()
{
fsTunReady=false;
- x2goDebug<<"starting fs tunnel for:"<<resumingSession.sessionId<<
- "\nfs port: "<<resumingSession.fsPort;
+
+ x2goDebug<<"Starting fs tunnel for: "<<resumingSession.sessionId;
+ x2goDebug<<"fs port: "<<resumingSession.fsPort;
+
if ( resumingSession.fsPort.length() <=0 )
{
@@ -8376,7 +8569,9 @@ void ONMainWindow::startX2goMount()
#ifdef Q_OS_WIN
QDir tdir;
tdir.mkpath ( authofname+"\\.x2go\\.ssh" );
- x2goDebug<<"Creating "<<authofname+"\\.x2go\\.ssh"<<endl;
+
+ x2goDebug<<"Creating "<<authofname+"\\.x2go\\.ssh";
+
authofname=wapiShortFileName ( authofname ) +"/.x2go";
#endif
authofname+= "/.ssh/authorized_keys" ;
@@ -8496,7 +8691,6 @@ void ONMainWindow::startX2goMount()
dir->pid=sshConnection->executeCommand(cmd,this,SLOT ( slotRetExportDir ( bool,
QString,int) ));
-
}
void ONMainWindow::slotCheckPrintSpool()
@@ -8582,14 +8776,18 @@ bool ONMainWindow::isServerRunning ( int port )
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
- x2goDebug<<"WARNING: WSAStartup failed: "<< iResult<<endl;
+
+ x2goDebug<<"WARNING: WSAStartup failed: "<< iResult;
+
return false;
}
addr.s_addr = inet_addr("127.0.0.1");
if (addr.s_addr == INADDR_NONE)
{
+
x2goDebug<< "WARNING: The IPv4 address entered must be a legal address\n";
+
return false;
}
@@ -8597,10 +8795,13 @@ bool ONMainWindow::isServerRunning ( int port )
localHost = gethostbyaddr((char*)&addr,4, AF_INET);
if (!localHost)
{
- x2goDebug<<"WARNING: gethostbyaddr failed: "<<WSAGetLastError()<<endl;
+
+ x2goDebug<<"WARNING: gethostbyaddr failed: "<<WSAGetLastError();
+
return false;
}
- x2goDebug<<"got localhost"<<endl;
+ x2goDebug<<"got localhost";
+
localIP = inet_ntoa (*(struct in_addr *)*localHost->h_addr_list);
@@ -8611,7 +8812,8 @@ bool ONMainWindow::isServerRunning ( int port )
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
- x2goDebug<<"WARNING: socket failed with error: "<< WSAGetLastError()<<endl;
+ x2goDebug<<"WARNING: socket failed with error: "<< WSAGetLastError();
+
return false;
}
@@ -8619,11 +8821,15 @@ bool ONMainWindow::isServerRunning ( int port )
if (iResult == SOCKET_ERROR)
{
closesocket(ConnectSocket);
- x2goDebug<<"Port is free: "<<port<<endl;
+
+ x2goDebug<<"Port is free: "<<port;
+
return false;
}
closesocket(ConnectSocket);
- x2goDebug<<"Port already used: "<<port<<endl;
+
+ x2goDebug<<"Port already used: "<<port;
+
return true;
#endif
QTcpSocket tcpSocket ( 0 );
@@ -8681,7 +8887,9 @@ void ONMainWindow::startXOrg ()
if (internalX==VCXSRV)
exec=appDir+"\\vcxsrv\\vcxsrv.exe";
winServersReady=false;
+
x2goDebug<<"using internal X: "<<useInternalX;
+
//#ifdef CFGCLIENT
if (!useInternalX || internalX!=XMING)
{
@@ -8702,10 +8910,13 @@ void ONMainWindow::startXOrg ()
break;
case WIN:
cmdLine=xorgWinOptions;
- x2goDebug<<"WxH:"<<xorgWidth<<"x"<<xorgHeight<<endl;
+
+ x2goDebug<<"WxH:"<<xorgWidth<<"x"<<xorgHeight;
+
cmdLine.replace("%w",xorgWidth);
cmdLine.replace("%h",xorgHeight);
- x2goDebug<<cmdLine<<endl;
+
+ x2goDebug<<cmdLine;
break;
}
}
@@ -8741,7 +8952,9 @@ void ONMainWindow::startXOrg ()
xorg-> setWorkingDirectory ( workingDir);
}
- x2goDebug<<"running"<<exec<<" "<<args.join(" ");
+
+ x2goDebug<<"Running "<<exec<<" "<<args.join(" ");
+
xorg->start ( exec, args );
@@ -8768,7 +8981,9 @@ void ONMainWindow::slotCheckXOrgConnection()
++waitingForX;
if (isServerRunning(6000+xDisplay))
{
- x2goDebug<<"X is started";
+
+ x2goDebug<<"X is started.";
+
slotSetWinServersReady();
}
else
@@ -8783,7 +8998,9 @@ void ONMainWindow::slotCheckXOrgConnection()
}
else
{
- x2goDebug<<"waiting for X";
+
+ x2goDebug<<"...waiting for X.";
+
QTimer::singleShot(1000, this, SLOT(slotCheckXOrgConnection()));
}
}
@@ -8813,7 +9030,8 @@ void WinServerStarter::run()
void ONMainWindow::startWinServers()
{
- x2goDebug<<"Starting win servers"<<endl;
+
+ x2goDebug<<"Starting win servers...";
QString etcDir=homeDir+"/.x2go/etc";
QDir dr ( homeDir );
@@ -8841,7 +9059,9 @@ void ONMainWindow::startWinServers()
startPulsed();
}
// #ifdef CFGCLIENT
-// x2goDebug<<"xorg settings: "<<startXorgOnStart <<" "<< useXming<<endl;
+
+ //x2goDebug<<"Xorg settings: "<< startXorgOnStart <<" useXming: "<< useXming;
+
if ( useInternalX && (internalX== XMING))
{
// #endif
@@ -8878,12 +9098,12 @@ void ONMainWindow::saveCygnusSettings()
{
if ( haveCygwinEntry() )
{
- x2goDebug<<"Cygwin entry exist";
+ x2goDebug<<"Cygnus Solutions entry exists.";
cyEntry=true;
}
else
{
- x2goDebug<<"Cygwin entry not exist";
+ x2goDebug<<"Cygnus Solutions entry does not exist.";
cyEntry=false;
}
}
@@ -8923,7 +9143,9 @@ void ONMainWindow::startPulsed()
QDir dr ( homeDir );
dr.mkpath ( pulseDir );
pulseDir=wapiShortFileName ( pulseDir );
- x2goDebug<<"template: "<<pulseDir+"/tmp"<<endl;
+
+ x2goDebug<<"pulse template: "<<pulseDir+"/tmp";
+
QTemporaryFile* fl=new QTemporaryFile ( pulseDir+"/tmp" );
fl->open();
pulseDir=fl->fileName();
@@ -8931,7 +9153,9 @@ void ONMainWindow::startPulsed()
delete fl;
QFile::remove ( pulseDir );
dr.mkpath ( pulseDir );
- x2goDebug<<"pulse tmp file: "<<pulseDir<<endl;
+
+ x2goDebug<<"pulse tmp file: "<<pulseDir;
+
QStringList pEnv=QProcess::systemEnvironment();
for ( int i=0; i<pEnv.size(); ++i )
{
@@ -8971,12 +9195,15 @@ void ONMainWindow::startPulsed()
pulseServer->setWorkingDirectory ( wapiShortFileName (
appDir+"\\pulse" ) );
pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs );
- x2goDebug<<"starting pulse\\pulseaudio.exe "<<pulseArgs.join ( " " ) <<
+
+ x2goDebug<<"Starting pulse\\pulseaudio.exe "<<pulseArgs.join ( " " ) <<
" working dir: "<<
- wapiShortFileName ( appDir+"\\pulse" ) <<endl;
+ wapiShortFileName ( appDir+"\\pulse" );
+
pulseTimer=new QTimer(this);
- x2goDebug<<"connect timer";
+
connect (pulseTimer, SIGNAL(timeout()), this, SLOT(slotCheckPulse()));
+ x2goDebug<<"Connected timer.";
pulseTimer->start(2000);
}
@@ -8986,7 +9213,9 @@ void ONMainWindow::slotCheckPulse()
if(pulseServer->state()!=QProcess::Running)
{
pulseServer->start ( "pulse\\pulseaudio.exe",pulseArgs );
- x2goDebug<<"restarting pulse\\pulseaudio.exe "<<pulseArgs.join ( " " );
+
+ x2goDebug<<"Restarting pulse\\pulseaudio.exe "<<pulseArgs.join ( " " );
+
}
}
@@ -8994,7 +9223,9 @@ void ONMainWindow::slotCheckPulse()
// #ifdef CFGCLIENT
void ONMainWindow::xorgSettings()
{
- x2goDebug<<"getting xorg settings"<<endl;
+
+ x2goDebug<<"Getting Xorg settings.";
+
X2goSettings st ( "settings" );
@@ -9036,7 +9267,9 @@ void ONMainWindow::xorgSettings()
void ONMainWindow::slotSetWinServersReady()
{
- x2goDebug<<"all winservers are started\n";
+
+ x2goDebug<<"All winservers are started.";
+
winServersReady=true;
restoreCygnusSettings();
}
@@ -9069,7 +9302,7 @@ void ONMainWindow::generateEtcFiles()
<<appDir<<"/sftp-server\n";
#endif
file.close();
- x2goDebug<<etcDir +"/sshd_config created";
+ x2goDebug<<etcDir +"/sshd_config created.";
}
void ONMainWindow::generateHostDsaKey()
@@ -9080,7 +9313,9 @@ void ONMainWindow::generateHostDsaKey()
if ( !QFile::exists ( etcDir+"/ssh_host_dsa_key" ) ||
!QFile::exists ( etcDir+"/ssh_host_dsa_key.pub" ) )
{
- /* x2goDebug<<"Generating host DSA key\n";*/
+
+ x2goDebug<<"Generating host DSA key.";
+
#ifdef Q_OS_WIN
QString fname=cygwinPath ( wapiShortFileName ( etcDir ) ) +
"/ssh_host_dsa_key";
@@ -9122,7 +9357,9 @@ void ONMainWindow::startSshd()
desktopName+=getenv ( "USERNAME" );
char* desktop=new char[desktopName.size() +1];
strcpy ( desktop,desktopName.c_str() );
- x2goDebug<<"Creating desktop: "<<desktop<<endl;
+
+ x2goDebug<<"Creating desktop: "<<desktop;
+
if ( !CreateDesktopA (
desktop,
0,
@@ -9133,7 +9370,9 @@ void ONMainWindow::startSshd()
) )
{
strcpy ( desktop,"" );
- x2goDebug<<"Desktop creation failed, using default\n";
+
+ x2goDebug<<"Desktop creation failed, using default.";
+
}
ZeroMemory ( &si, sizeof ( si ) );
ZeroMemory ( &sshd, sizeof ( sshd ) );
@@ -9159,7 +9398,8 @@ void ONMainWindow::startSshd()
arguments<<"-f"<<etcDir +"/sshd_config"<< "-h" <<
etcDir+"/ssh_host_dsa_key"<<"-D"<<"-p"<<clientSshPort;
sshd->start ( appDir+"/sshd",arguments );
- x2goDebug<<"Usermode sshd started";
+ x2goDebug<<"Usermode sshd started.";
+
#endif
}
@@ -9261,7 +9501,14 @@ void ONMainWindow::slotSetProxyWinFullscreen()
void ONMainWindow::resizeProxyWinOnDisplay(int disp)
{
QRect geom=QApplication::desktop()->screenGeometry(disp-1);
- //x2goDebug<<"resizing proxy win to fit display "<<disp<<"("<<geom<<")"<<endl;
+
+ QString geoStr =
+ "(x: " + QString("%1").arg(geom.x()) +
+ ", y: "+ QString("%1").arg(geom.y()) +
+ ", w: "+ QString("%1").arg(geom.width()) +
+ ", h: "+ QString("%1").arg(geom.height());
+ x2goDebug<<"Resizing proxy window to fit Display: " + QString("%1").arg(disp) + " " + geoStr;
+
#ifdef Q_OS_LINUX
XSync(QX11Info::display(),false);
XMoveWindow(QX11Info::display(), proxyWinId,geom.x(),geom.y());
@@ -9304,14 +9551,21 @@ void ONMainWindow::slotConfigXinerama()
QRect newGeometry=proxyWinGeometry();
if (newGeometry.isNull())
{
-// x2goDebug<<"error getting window geometry (window closed?)\n";
+ x2goWarningf(7)<< tr("Error getting window geometry (window closed)?");
xineramaTimer->stop();
return;
}
if (newGeometry==lastDisplayGeometry)
return;
lastDisplayGeometry=newGeometry;
-// x2goDebug<<"New proxy geometry: "<<lastDisplayGeometry<<endl;
+
+ QString geoStr =
+ "(x: " + QString("%1").arg(lastDisplayGeometry.x()) +
+ ", y: "+ QString("%1").arg(lastDisplayGeometry.y()) +
+ ", w: "+ QString("%1").arg(lastDisplayGeometry.width()) +
+ ", h: "+ QString("%1").arg(lastDisplayGeometry.height());
+ x2goDebug<<"New proxy geometry: " + geoStr;
+
QDesktopWidget* root=QApplication::desktop();
QList<QRect> newXineramaScreens;
for (int i=0; i< root->numScreens(); ++i)
@@ -9323,17 +9577,19 @@ void ONMainWindow::slotConfigXinerama()
intersection=root->screenGeometry(i).intersected(lastDisplayGeometry);
if (!intersection.isNull())
{
-// x2goDebug<<"intersected with "<<i<<": "<<intersection<<endl;
+ // x2goDebug<<"intersected with "<<i<<": "<<intersection<<endl;
intersection.moveLeft(intersection.x()-lastDisplayGeometry.x());
intersection.moveTop(intersection.y()-lastDisplayGeometry.y());
-// x2goDebug<<"xinerama screen: "<<intersection<<endl;
+
+ // x2goDebug<<"xinerama screen: "<<intersection<<endl;
newXineramaScreens<<intersection;
}
}
if (xineramaScreens != newXineramaScreens)
{
xineramaScreens=newXineramaScreens;
-// x2goDebug<<"xinerama screen changed, new screens: "<<xineramaScreens<<endl;
+ // x2goDebug<<"xinerama screen changed, new screens: "<<xineramaScreens<<endl;
+
xineramaTimer->stop();
QStringList screens;
foreach (QRect disp, xineramaScreens)
@@ -9342,7 +9598,6 @@ void ONMainWindow::slotConfigXinerama()
QString cmd="export DISPLAY=:"+resumingSession.display+";printf '"+screens.join("\\\\n")+"' > ~/.x2go/C-"+
resumingSession.sessionId+"/xinerama.conf";
- x2goDebug<<cmd<<endl;
sshConnection->executeCommand(cmd, this, SLOT(slotXineramaConfigured()));
}
}
@@ -9374,12 +9629,14 @@ void ONMainWindow::slotXineramaConfigured()
void ONMainWindow::slotFindProxyWin()
{
#ifndef Q_OS_DARWIN
-// x2goDebug<<"search proxy win: "<<"X2GO-"+resumingSession.sessionId;
+ x2goDebug<<"Searching proxy win: X2GO-" + resumingSession.sessionId;
+
proxyWinId=findWindow ( "X2GO-"+resumingSession.sessionId );
bool xinerama=defaultXinerama;
if ( proxyWinId )
{
- x2goDebug<<"proxy win found:"<<proxyWinId;
+ x2goDebug<<"Proxy win found: " + QString("%1").arg(proxyWinId);
+
setProxyWinTitle();
proxyWinTimer->stop();
if (!embedMode)
@@ -9415,7 +9672,8 @@ void ONMainWindow::slotFindProxyWin()
}
if (xinerama)
{
- x2goDebug<<"Starting xinerama timer\n";
+ x2goDebug<<"Starting Xinerama Timer.";
+
lastDisplayGeometry=QRect();
xineramaScreens.clear();
xineramaTimer->start(500);
@@ -9424,23 +9682,26 @@ void ONMainWindow::slotFindProxyWin()
if ( embedMode )
{
- x2goDebug<<"checking rootless config";
+ x2goDebug<<"Checking rootless config.";
+
if ( config.rootless )
{
- x2goDebug<<"win is rootless";
+ x2goDebug<<"Window is rootless.";
act_embedContol->setEnabled ( false );
}
else
slotAttachProxyWindow();
}
#ifdef Q_OS_WIN
- x2goDebug<<"maximizeProxyWin: "<<maximizeProxyWin;
+ x2goDebug<<"Maximize proxy win: "<<maximizeProxyWin;
+
if ( !startEmbedded )
{
if ( maximizeProxyWin )
{
QDesktopWidget dw;
- x2goDebug<<"making proxy win full screen";
+
+ x2goDebug<<"Making proxy win full screen.";
wapiSetFSWindow ( ( HWND ) proxyWinId,
dw.screenGeometry ( this ) );
/*wapiShowWindow ( ( HWND ) proxyWinId,
@@ -9481,9 +9742,8 @@ void ONMainWindow::slotDetachProxyWindow()
//and reconnect
if ( !embedControlChanged )
{
- x2goDebug<<"\n";
slotFindProxyWin();
- x2goDebug<<"proxy win detached, proxywin is:"<<proxyWinId<<endl;
+ x2goDebug<<"Proxy win detached, proxywin is: "<<proxyWinId;
}
#endif
embedControlChanged=false;
@@ -9492,7 +9752,8 @@ void ONMainWindow::slotDetachProxyWindow()
void ONMainWindow::slotAttachProxyWindow()
{
- x2goDebug<<"slotAttachProxy";
+ x2goDebug<<"slotAttachProxyWindow.";
+
if ( startEmbedded )
{
embedControlChanged=false;
@@ -9506,7 +9767,9 @@ void ONMainWindow::slotAttachProxyWindow()
}
else
{
- x2goDebug<<"start embedded was false";
+
+ x2goDebug<<"Start embedded was false.";
+
startEmbedded=true;
}
@@ -9814,7 +10077,9 @@ void ONMainWindow::slotChangeKbdLayout(const QString& layout)
#ifdef Q_OS_LINUX
QStringList args;
args<<"-layout"<<layout;
- x2goDebug<<"running setxkbmap with params: "<<args.join(" ");
+
+ x2goDebug<<"Running setxkbmap with params: "<<args.join(" ");
+
QProcess::startDetached("setxkbmap",args);
#endif
}
@@ -10587,8 +10852,10 @@ void ONMainWindow::slotActivateWindow()
QApplication::setActiveWindow ( this ) ;
activateWindow();
+
/* x2goDebug<<"focus:"<<pass->hasFocus();
- x2goDebug<<"activ:"<<pass->isActiveWindow();*/
+ x2goDebug<<"activ:"<<pass->isActiveWindow();*/
+
QTimer::singleShot ( 50, this,
SLOT ( slotEmbedToolBarToolTip() ) );
}
@@ -10736,7 +11003,6 @@ QString ONMainWindow::u3DataPath()
QString dpath;
for ( int i=0; i<env.size(); ++i )
{
-// x2goDebug << env[i];
//check if we have U3 System
if ( env[i].indexOf ( "U3_APP_DATA_PATH=" ) ==0 )
{
@@ -10772,14 +11038,18 @@ void ONMainWindow::cleanPortable()
void ONMainWindow::removeDir ( QString path )
{
- x2goDebug<<"entering " <<path;
+
+ x2goDebug<<"removeDir, entering: " <<path;
+
QDir dr ( path );
QStringList files=dr.entryList ( QDir::Files );
for ( int i=0; i<files.size(); ++i )
{
if ( files[i]!="known_hosts" || cleanAllFiles)
{
- x2goDebug<<"cleaning file:"<<path+"/"+files[i];
+
+ x2goDebug<<"Cleaning file: "<<path+"/"+files[i];
+
dr.remove ( path+"/"+files[i] );
}
}
@@ -10831,6 +11101,7 @@ long ONMainWindow::X11FindWindow ( QString text, long rootWin )
long ONMainWindow::findWindow ( QString text )
{
+ x2goDebug<<"Searching window with title: " + text;
#ifdef Q_OS_LINUX
return X11FindWindow ( text );
#endif
@@ -10845,7 +11116,9 @@ long ONMainWindow::findWindow ( QString text )
void ONMainWindow::setX2goconfig ( const QString& text )
{
m_x2goconfig=text;
- x2goDebug<<"have session config";
+
+ x2goDebug<<"Haveing a session config.";
+
initWidgetsEmbed();
}
@@ -10855,12 +11128,16 @@ void ONMainWindow::doPluginInit()
Dl_info info;
dladdr ( ( void* ) & ( ONMainWindow::getPortable ),&info );
QString fname=info.dli_fname;
+
x2goDebug<<"Application name:" <<fname;
+
QString clientDir;
QString pluginDir;
int pos=fname.lastIndexOf ( "/" );
pluginDir=fname.left ( pos );
- x2goDebug<<"Plugin Dir:" <<pluginDir;
+
+ x2goDebug<<"Plugin directory: " <<pluginDir;
+
QDir dr ( pluginDir );
if ( dr.exists ( "x2goclient/x2goclient" ) )
{
@@ -10886,7 +11163,9 @@ void ONMainWindow::doPluginInit()
clientDir=pluginDir;
}
}
- x2goDebug<<"Client Dir:"<<clientDir;
+
+ x2goDebug<<"Client directory: "<<clientDir;
+
QString path=getenv ( "PATH" );
path=clientDir+":"+pluginDir+":"+path;
setenv ( "PATH",path.toAscii (),1 );
@@ -10962,7 +11241,9 @@ void ONMainWindow::slotUpdateEmbedWindow()
oldContainerSize=embedContainer->size();
oldChildPos= mapToGlobal (
QPoint ( 0,0 ) );
- x2goDebug<<"updating embedded window"<<endl;
+
+ x2goDebug<<"Updating embedded window.";
+
}
}
@@ -10975,7 +11256,9 @@ void ONMainWindow::embedWindow ( long wndId )
childId=wndId;
embedContainer->show();
#ifdef Q_OS_LINUX
- x2goDebug<<"embedding "<<wndId<<" in container"<<endl;
+
+ x2goDebug<<"Embedding window with id "<<wndId<<" in container.";
+
embedContainer->embedClient ( wndId );
#endif
#ifdef Q_OS_WIN
diff --git a/onmainwindow.h b/onmainwindow.h
index b51caca..b736755 100644
--- a/onmainwindow.h
+++ b/onmainwindow.h
@@ -324,6 +324,9 @@ public:
ARTS,
ESD
};
+
+ static bool debugging;
+
static bool portable;
ONMainWindow ( QWidget *parent = 0 );
~ONMainWindow();
diff --git a/sshmasterconnection.cpp b/sshmasterconnection.cpp
index eb75237..3dae569 100644
--- a/sshmasterconnection.cpp
+++ b/sshmasterconnection.cpp
@@ -319,7 +319,9 @@ void SshMasterConnection::run()
if ( ssh_init() !=0 )
{
QString err=tr ( "Can not initialize libssh" );
+#ifdef DEBUG
x2goDebug<<err<<endl;
+#endif
emit connectionError ( err,"" );
quit();
return;
@@ -345,7 +347,9 @@ void SshMasterConnection::run()
if ( my_ssh_session == NULL )
{
QString err=tr ( "Can not create ssh session" );
+#ifdef DEBUG
x2goDebug<<err<<endl;
+#endif
emit connectionError ( err,"" );
if ( reverseTunnel )
emit ioErr ( reverseTunnelCreator,err,"" );
@@ -373,7 +377,9 @@ void SshMasterConnection::run()
if (!tcpProxySocket->waitForConnected(30000))
{
QString message=tr ( "Can not connect to proxy server" );
+#ifdef DEBUG
x2goDebug<<message<<endl;
+#endif
emit connectionError ( "Proxy", message );
ssh_free ( my_ssh_session );
quit();
@@ -394,12 +400,16 @@ void SshMasterConnection::run()
{
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
QString err=ssh_get_error ( my_ssh_session );
QString message=tr ( "Can not connect to " ) +host+":"+QString::number ( port );
+#ifdef DEBUG
x2goDebug<<message<<" - "<<err;
+#endif
emit connectionError ( message, err );
if ( reverseTunnel )
emit ioErr ( reverseTunnelCreator,message,err );
@@ -409,7 +419,9 @@ void SshMasterConnection::run()
}
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
QString errMsg;
@@ -418,7 +430,9 @@ void SshMasterConnection::run()
{
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
writeHostKey=writeHostKeyReady=false;
@@ -443,7 +457,9 @@ void SshMasterConnection::run()
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
ssh_options_set ( my_ssh_session, SSH_OPTIONS_USER, user.toAscii() );
@@ -459,7 +475,9 @@ void SshMasterConnection::run()
{
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
#ifdef DEBUG
@@ -471,14 +489,18 @@ void SshMasterConnection::run()
{
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
QString err;
if (!kerberos)
err=ssh_get_error ( my_ssh_session );
QString message=tr ( "Authentication failed" );
+#ifdef DEBUG
x2goDebug<<message<<" - "<<err;
+#endif
emit userAuthError ( authErrors.join ( "\n" ) );
if ( reverseTunnel )
emit ioErr ( reverseTunnelCreator,message,err );
@@ -504,12 +526,16 @@ void SshMasterConnection::run()
{
if(disconnectSessionFlag)
{
+#ifdef DEBUG
x2goDebug<<"session already disconnected, exiting"<<endl;
+#endif
return;
}
QString err=ssh_get_error ( my_ssh_session );
QString message=tr ( "channel_forward_listen failed" );
+#ifdef DEBUG
x2goDebug<<message<<" - "<<err;
+#endif
emit ioErr ( reverseTunnelCreator, message, err );
ssh_disconnect ( my_ssh_session );
ssh_free ( my_ssh_session );
@@ -919,13 +945,17 @@ void SshMasterConnection::copy()
ssh_scp scp=ssh_scp_new ( my_ssh_session, SSH_SCP_WRITE|SSH_SCP_RECURSIVE, dstPath.toAscii() );
if ( scp == NULL )
{
+#ifdef DEBUG
x2goDebug<<"Error allocating scp session: "<< ssh_get_error ( my_ssh_session ) <<endl;
+#endif
return;
}
int rc = ssh_scp_init ( scp );
if ( rc != SSH_OK )
{
+#ifdef DEBUG
x2goDebug<<"Error initializing scp session: "<< ssh_get_error ( my_ssh_session ) <<endl;
+#endif
ssh_scp_free ( scp );
return;
}
@@ -946,7 +976,9 @@ void SshMasterConnection::copy()
{
QString errMsg=tr ( "Can not create remote file " ) +copyRequests[i].dst;
QString serr=ssh_get_error ( my_ssh_session );
+#ifdef DEBUG
x2goDebug<<errMsg<<" - "<<serr<<endl;
+#endif
emit copyErr ( copyRequests[i].creator, errMsg, serr );
copyRequests.removeAt ( i );
ssh_scp_close ( scp );
@@ -958,7 +990,9 @@ void SshMasterConnection::copy()
{
QString serr=ssh_get_error ( my_ssh_session );
QString errMsg=tr ( "Can not write to remote file " ) +copyRequests[i].dst;
+#ifdef DEBUG
x2goDebug<<errMsg<<" - "<<serr<<endl;
+#endif
emit copyErr ( copyRequests[i].creator, errMsg, serr );
copyRequests.removeAt ( i );
ssh_scp_close ( scp );
@@ -1071,7 +1105,9 @@ void SshMasterConnection::channelLoop()
{
QString errMsg=tr ( "can not connect to " ) +
reverseTunnelLocalHost+":"+QString::number ( reverseTunnelLocalPort );
+#ifdef DEBUG
x2goDebug<<errMsg<<endl;
+#endif
emit ioErr ( reverseTunnelCreator, errMsg, "" );
continue;
}
@@ -1104,7 +1140,9 @@ void SshMasterConnection::channelLoop()
channelConnectionsMutex.lock();
if ( channelConnections.size() <=0 )
{
-// x2goDebug<<"no channel connections, waiting\n";
+#ifdef DEBUG
+ // x2goDebug<<"no channel connections, waiting\n";
+#endif
channelConnectionsMutex.unlock();
usleep ( 500 );
continue;
@@ -1144,7 +1182,9 @@ void SshMasterConnection::channelLoop()
QString err=ssh_get_error ( my_ssh_session );
QString errorMsg=tr ( "channel_open_forward failed" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<": "<<err<<endl;
+#endif
}
#ifdef DEBUG
else
@@ -1163,14 +1203,18 @@ void SshMasterConnection::channelLoop()
QString err=ssh_get_error ( my_ssh_session );
QString errorMsg=tr ( "channel_open_session failed" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<": "<<err<<endl;
+#endif
}
else if ( channel_request_exec ( channel, channelConnections[i].command.toAscii() ) != SSH_OK )
{
QString err=ssh_get_error ( my_ssh_session );
QString errorMsg=tr ( "channel_request_exec failed" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<": "<<err<<endl;
+#endif
}
#ifdef DEBUG
else
@@ -1192,11 +1236,15 @@ void SshMasterConnection::channelLoop()
if ( retval == -1 )
{
+#ifdef DEBUG
x2goDebug<<"select error\n";
+#endif
continue;
}
-// x2goDebug<<"select exited"<<endl;
+#ifdef DEBUG
+ // x2goDebug<<"select exited"<<endl;
+#endif
channelConnectionsMutex.lock();
for ( int i=channelConnections.size()-1; i>=0; --i )
@@ -1207,10 +1255,14 @@ void SshMasterConnection::channelLoop()
continue;
if ( channel_poll ( channel,1 ) >0 )
{
-// x2goDebug<<"read err data from channel\n";
+#ifdef DEBUG
+ // x2goDebug<<"read err data from channel\n";
+#endif
nbytes = channel_read ( channel, buffer, sizeof ( buffer )-1, 1 );
emit stdErr ( channelConnections[i].creator, QByteArray ( buffer,nbytes ) );
-// x2goDebug<<nbytes<<" err from channel"<<endl;
+#ifdef DEBUG
+ // x2goDebug<<nbytes<<" err from channel"<<endl;
+#endif
}
int rez=channel_poll ( channel,0 );
if ( rez==SSH_EOF )
@@ -1224,9 +1276,13 @@ void SshMasterConnection::channelLoop()
}
if ( rez>0 )
{
-// x2goDebug<<"read data from channel "<<channel<<endl;
+#ifdef DEBUG
+ // x2goDebug<<"read data from channel "<<channel<<endl;
+#endif
nbytes = channel_read ( channel, buffer, sizeof ( buffer )-1, 0 );
-// x2goDebug<<nbytes<<" from channel "<<channel<<endl;
+#ifdef DEBUG
+ // x2goDebug<<nbytes<<" from channel "<<channel<<endl;
+#endif
if ( nbytes > 0 )
{
if ( tcpSocket>0 )
@@ -1234,12 +1290,16 @@ void SshMasterConnection::channelLoop()
if ( send ( tcpSocket,buffer, nbytes,0 ) != nbytes )
{
QString errMsg=tr ( "error writing to socket" );
+#ifdef DEBUG
x2goDebug<<"error writing "<<nbytes<<" to tcp socket"<<tcpSocket<<endl;
+#endif
emit ioErr ( channelConnections[i].creator,errMsg,"" );
finalize ( i );
continue;
}
-// x2goDebug<<"wrote "<<nbytes<<" to tcp socket "<<tcpSocket<<endl;
+#ifdef DEBUG
+ // x2goDebug<<"wrote "<<nbytes<<" to tcp socket "<<tcpSocket<<endl;
+#endif
}
else
{
@@ -1253,7 +1313,9 @@ void SshMasterConnection::channelLoop()
QString err=ssh_get_error ( my_ssh_session );
QString errorMsg=tr ( "error reading channel" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<" - "<<err<<endl;
+#endif
finalize ( i );
continue;
}
@@ -1275,7 +1337,9 @@ void SshMasterConnection::channelLoop()
if ( FD_ISSET ( tcpSocket,&rfds ) )
{
nbytes = recv ( tcpSocket, buffer, sizeof ( buffer )-1,0 );
-// x2goDebug<<nbytes<<" bytes from tcp socket "<<tcpSocket<<endl;
+#ifdef DEBUG
+ // x2goDebug<<nbytes<<" bytes from tcp socket "<<tcpSocket<<endl;
+#endif
if ( nbytes > 0 )
{
if ( channel_write ( channel, buffer, nbytes ) !=nbytes )
@@ -1283,11 +1347,15 @@ void SshMasterConnection::channelLoop()
QString err=ssh_get_error ( my_ssh_session );
QString errorMsg=tr ( "channel_write failed" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<" - "<<err<<endl;
+#endif
finalize ( i );
continue;
}
-// x2goDebug<<nbytes<<" bytes wrote to channel"<<channel<<endl;
+#ifdef DEBUG
+ // x2goDebug<<nbytes<<" bytes wrote to channel"<<channel<<endl;
+#endif
}
if ( nbytes < 0 )
{
@@ -1295,7 +1363,9 @@ void SshMasterConnection::channelLoop()
QString err="";
QString errorMsg=tr ( "error reading tcp socket" );
emit ioErr ( channelConnections[i].creator, errorMsg, err );
+#ifdef DEBUG
x2goDebug<<errorMsg<<" - "<<err<<endl;
+#endif
finalize ( i );
continue;
}
diff --git a/x2goclientconfig.h b/x2goclientconfig.h
index 341c1f7..e857e53 100644
--- a/x2goclientconfig.h
+++ b/x2goclientconfig.h
@@ -23,7 +23,7 @@
#include <qglobal.h>
-// #define LOGFILE QDir::homePath()+"/x2goclient.log"
+//#define LOGFILE QDir::homePath()+"/x2goclient.log"
#if !defined Q_OS_WIN
#define USELDAP
diff --git a/x2gologdebug.cpp b/x2gologdebug.cpp
index c21c1c3..0fd8ada 100644
--- a/x2gologdebug.cpp
+++ b/x2gologdebug.cpp
@@ -28,7 +28,6 @@ X2goLogDebug::X2goLogDebug():QTextStream()
}
}
-
X2goLogDebug::~X2goLogDebug()
{
logFile.close();
diff --git a/x2gologdebug.h b/x2gologdebug.h
index b35f783..ded6d8d 100644
--- a/x2gologdebug.h
+++ b/x2gologdebug.h
@@ -20,21 +20,50 @@
#include <QTextStream>
#include <QFile>
#include "x2goclientconfig.h"
+#include "onmainwindow.h"
/**
@author Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
*/
+
+#define __x2goPrefix "x2go-"
+#define __x2goDebugPrefix "DEBUG-"
+#define __x2goInfoPrefix "INFO-"
+#define __x2goWarningPrefix "WARNING-"
+#define __x2goErrorPrefix "ERROR-"
+#define __x2goPostfix "> "
+
#ifdef LOGFILE
class X2goLogDebug: public QTextStream
{
public:
X2goLogDebug();
~X2goLogDebug();
+
private:
QFile logFile;
};
-#define x2goDebug X2goLogDebug()
+
+#define __x2goDebug X2goLogDebug()<<"\n"
+#define __x2goInfo X2goLogDebug()<<"\n"
+#define __x2goWarning X2goLogDebug()<<"\n"
+#define __x2goError X2goLogDebug()<<"\n"
+
#else
+
#include <QDebug>
-#define x2goDebug qDebug()
+
+#define __x2goDebug qDebug().nospace()
+#define __x2goInfo qDebug().nospace()
+#define __x2goWarning qWarning().nospace()
+#define __x2goError qCritical().nospace()
+
#endif //LOGFILE
+
+#define x2goDebugf __x2goDebug <<__x2goPrefix<<__x2goDebugPrefix <<__FILE__<<":"<<__LINE__<<__x2goPostfix
+#define x2goInfof(NUM) __x2goInfo <<__x2goPrefix<<__x2goInfoPrefix <<NUM <<__x2goPostfix
+#define x2goWarningf(NUM) __x2goWarning<<__x2goPrefix<<__x2goWarningPrefix<<NUM <<__x2goPostfix
+#define x2goErrorf(NUM) __x2goError <<__x2goPrefix<<__x2goErrorPrefix <<NUM <<__x2goPostfix
+
+#define x2goDebug if (ONMainWindow::debugging) x2goDebugf
+
#endif //X2GOLOGDEBUG_H
hooks/post-receive
--
x2goclient.git (X2Go Client)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "x2goclient.git" (X2Go Client).
More information about the x2go-commits
mailing list