summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/ksyncmanager.cpp94
-rw-r--r--libkdepim/ksyncmanager.h7
2 files changed, 74 insertions, 27 deletions
diff --git a/libkdepim/ksyncmanager.cpp b/libkdepim/ksyncmanager.cpp
index d8ca3ba..47d00a4 100644
--- a/libkdepim/ksyncmanager.cpp
+++ b/libkdepim/ksyncmanager.cpp
@@ -1071,9 +1071,19 @@ void KSyncManager::deleteCommandSocket(KCommandSocket*s, int state)
{
//enum { success, errorW, errorR, quiet };
- if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ) {
+
+
+
+ if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO ||state == KCommandSocket::errorPW ||
+ state == KCommandSocket::errorCA ||state == KCommandSocket::errorFI ||state == KCommandSocket::errorUN ) {
if ( state == KCommandSocket::errorPW )
mParent->topLevelWidget()->setCaption( i18n("Wrong password: Receiving remote file failed.") );
- else
+ else if ( state == KCommandSocket::errorR ||state == KCommandSocket::errorTO )
mParent->topLevelWidget()->setCaption( i18n("ERROR: Receiving remote file failed.") );
+ else if ( state == KCommandSocket::errorCA )
+ mParent->topLevelWidget()->setCaption( i18n("Sync cancelled from remote.") );
+ else if ( state == KCommandSocket::errorFI )
+ mParent->topLevelWidget()->setCaption( i18n("File error on remote.") );
+ else if ( state == KCommandSocket::errorUN )
+ mParent->topLevelWidget()->setCaption( i18n("Unknown error on remote.") );
delete s;
if ( state == KCommandSocket::errorR ) {
@@ -1133,4 +1143,5 @@ KServerSocket:: KServerSocket ( QString pw, Q_UINT16 port, int backlog, QObject
mSyncActionDialog = 0;
blockRC = false;
+ mErrorMessage = 0;
}
@@ -1151,10 +1162,15 @@ void KServerSocket::newConnection ( int socket )
void KServerSocket::discardClient()
{
- //qDebug(" KServerSocket::discardClient()");
+ QTimer::singleShot( 10, this , SLOT ( deleteSocket()));
+}
+void KServerSocket::deleteSocket()
+{
+ qDebug("KSS::deleteSocket");
if ( mSocket ) {
delete mSocket;
mSocket = 0;
}
- //emit endConnect();
+ if ( mErrorMessage )
+ QTimer::singleShot( 10, this , SLOT ( displayErrorMessage()));
}
void KServerSocket::readClient()
@@ -1166,4 +1182,10 @@ void KServerSocket::readClient()
return;
}
+ if ( mErrorMessage ) {
+ mErrorMessage = 999;
+ error_connect("ERROR_UN\r\n\r\n");
+ return;
+ }
+ mErrorMessage = 0;
//qDebug("KServerSocket::readClient()");
if ( mSocket->canReadLine() ) {
@@ -1184,7 +1206,6 @@ void KServerSocket::readClient()
}
else {
- error_connect();
- KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"));
- //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
+ mErrorMessage = 1;
+ error_connect("ERROR_PW\r\n\r\n");
}
}
@@ -1196,8 +1217,7 @@ void KServerSocket::readClient()
}
else {
- error_connect();
+ mErrorMessage = 2;
+ error_connect("ERROR_PW\r\n\r\n");
end_connect();
- KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"));
- //qDebug("password %s, invalid password %s ",mPassWord.latin1(), tokens[1].latin1() );
}
}
@@ -1208,12 +1228,21 @@ void KServerSocket::readClient()
}
}
-void KServerSocket::error_connect()
+void KServerSocket::displayErrorMessage()
+{
+ if ( mErrorMessage == 1 )
+ KMessageBox::error( 0, i18n("Got send file request\nwith invalid password"));
+ else if ( mErrorMessage == 2 )
+ KMessageBox::error( 0, i18n("Got receive file request\nwith invalid password"));
+ mErrorMessage = 0;
+}
+void KServerSocket::error_connect( QString errmess )
{
QTextStream os( mSocket );
os.setEncoding( QTextStream::Latin1 );
- os << "ERROR_PW\r\n\r\n";
+ os << errmess ;
mSocket->close();
- if ( mSocket->state() == QSocket::Idle )
- QTimer::singleShot( 10, this , SLOT ( discardClient()));
+ if ( mSocket->state() == QSocket::Idle ) {
+ QTimer::singleShot( 0, this , SLOT ( discardClient()));
+ }
}
void KServerSocket::end_connect()
@@ -1237,4 +1266,5 @@ void KServerSocket::send_file()
if ( KSyncManager::mRequestedSyncEvent.isValid() ) {
int secs = QDateTime::currentDateTime().secsTo( KSyncManager::mRequestedSyncEvent );
+ secs = 333;
if ( secs < 0 )
secs = secs * (-1);
@@ -1250,5 +1280,8 @@ void KServerSocket::send_file()
if ( secs > 300 ) {
if ( KMessageBox::Cancel == KMessageBox::warningContinueCancel(0, i18n("The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!"), i18n("High clock skew!"),i18n("Synchronize!"))) {
- qDebug("KSS::Sync cancelled ,cs");
+ qDebug("KSS::Sync cancelled ,cs");
+ mErrorMessage = 0;
+ end_connect();
+ error_connect("ERROR_CA\r\n\r\n");
return ;
}
@@ -1279,12 +1312,8 @@ void KServerSocket::send_file()
QFile file( fileName );
if (!file.open( IO_ReadOnly ) ) {
- delete mSyncActionDialog;
- mSyncActionDialog = 0;
- qDebug("KSS::error open sync file: %s ", fileName.latin1());
- mSocket->close();
- if ( mSocket->state() == QSocket::Idle )
- QTimer::singleShot( 10, this , SLOT ( discardClient()));
- return ;
-
+ mErrorMessage = 0;
+ end_connect();
+ error_connect("ERROR_FI\r\n\r\n");
+ return ;
}
mSyncActionDialog->setCaption( i18n("Sending file...") );
@@ -1477,6 +1506,21 @@ void KCommandSocket::readFileFromSocket()
if ( mFirstLine ) {
mFirstLine = false;
- if ( line.left( 8 ) == "ERROR_PW" ) {
- mRetVal = errorPW;
+ if ( line.left( 6 ) == "ERROR_" ) {
+ if ( line.left( 8 ) == "ERROR_PW" ) {
+ mRetVal = errorPW;
+ deleteSocket();
+ return ;
+ }
+ if ( line.left( 8 ) == "ERROR_CA" ) {
+ mRetVal = errorCA;
+ deleteSocket();
+ return ;
+ }
+ if ( line.left( 8 ) == "ERROR_FI" ) {
+ mRetVal = errorFI;
+ deleteSocket();
+ return ;
+ }
+ mRetVal = errorUN;
deleteSocket();
return ;
diff --git a/libkdepim/ksyncmanager.h b/libkdepim/ksyncmanager.h
index 810a515..bd3ecdc 100644
--- a/libkdepim/ksyncmanager.h
+++ b/libkdepim/ksyncmanager.h
@@ -56,12 +56,15 @@ class KServerSocket : public QServerSocket
private slots:
void discardClient();
+ void deleteSocket();
void readClient();
+ void displayErrorMessage();
void readBackFileFromSocket();
private :
+ int mErrorMessage;
bool blockRC;
void send_file();
void get_file();
void end_connect();
- void error_connect();
+ void error_connect( QString );
QDialog* mSyncActionDialog;
QSocket* mSocket;
@@ -76,5 +79,5 @@ class KCommandSocket : public QObject
Q_OBJECT
public:
- enum state { successR, errorR, successW, errorW, errorTO, errorPW,quiet };
+ enum state { successR, errorR, successW, errorW, errorTO, errorPW, errorCA, errorFI, errorUN,quiet };
KCommandSocket ( QString password, Q_UINT16 port, QString host, QObject * parent=0, QWidget* cap = 0, const char * name=0 );
void readFile( QString );