-rw-r--r-- | libkdepim/ksyncmanager.cpp | 26 | ||||
-rw-r--r-- | libkdepim/ksyncmanager.h | 4 |
2 files changed, 27 insertions, 3 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp index 08a263c..5214fe7 100644 --- a/libkdepim/ksyncmanager.cpp +++ b/libkdepim/ksyncmanager.cpp @@ -1072,4 +1072,7 @@ void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state) //enum { success, errorW, errorR, quiet }; - if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ) { - mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); + if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ) { + if ( state == KCommandSocket::errorPW ) + mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") ); + else + mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") ); delete s; @@ -1203,2 +1206,11 @@ void KServerSocket::readClient() } +void KServerSocket::error_connect() +{ + QTextStream os( mSocket ); + os.setEncoding( QTextStream::Latin1 ); + os << "ERROR_PW\r\n\r\n"; + mSocket->close(); + if ( mSocket->state() == QSocket::Idle ) + QTimer::singleShot( 10, this , SLOT ( discardClient())); +} void KServerSocket::end_connect() @@ -1353,2 +1365,3 @@ KCommandSocket::KCommandSocket ( QString password, Q_UINT16 port, QString host, mFirst = false; + mFirstLine = true; mPort = port; @@ -1450,2 +1463,3 @@ void KCommandSocket::startReadFileFromSocket() mTime.start(); + mFirstLine = true; QTimer::singleShot( 1, this , SLOT (readFileFromSocket( ) )); @@ -1459,2 +1473,10 @@ void KCommandSocket::readFileFromSocket() QString line = mSocket->readLine (); + if ( mFirstLine ) { + mFirstLine = false; + if ( line.left( 8 ) == "ERROR_PW" ) { + mRetVal = errorPW; + deleteSocket(); + return ; + } + } mFileString += line; diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h index 09bd1c1..810a515 100644 --- a/libkdepim/ksyncmanager.h +++ b/libkdepim/ksyncmanager.h @@ -64,2 +64,3 @@ class KServerSocket : public QServerSocket void end_connect(); + void error_connect(); QDialog* mSyncActionDialog; @@ -76,3 +77,3 @@ class KCommandSocket : public QObject public: - enum state { successR, errorR, successW, errorW, errorTO, quiet }; + enum state { successR, errorR, successW, errorW, errorTO, errorPW,quiet }; KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, QWidget* cap = 0, const char * name=0 ); @@ -104,2 +105,3 @@ class KCommandSocket : public QObject bool mFirst; + bool mFirstLine; }; |