[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdenetwork/kopete/protocols/oscar/liboscar
From: Roman Jarosz <kedgedev () centrum ! cz>
Date: 2008-10-15 21:42:21
Message-ID: 1224106941.814344.14571.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 871882 by rjarosz:
Fix crash on login.
Set d->stage to StageTwo after stage one is finished and not on new connection \
because somehow d->stage could have been set to StageTwo while we were in StageOne \
stage. Clear oscar client before connecting to server because we could start it more \
than once.
BUG: 160359
M +18 -4 client.cpp
--- trunk/KDE/kdenetwork/kopete/protocols/oscar/liboscar/client.cpp #871881:871882
@@ -234,6 +234,10 @@
{
Q_UNUSED( host );
Q_UNUSED( port );
+
+ // Cleanup client
+ close();
+
d->user = userId;
d->pass = pass;
d->stage = ClientPrivate::StageOne;
@@ -256,6 +260,19 @@
d->awayMsgRequestTimer->stop();
d->awayMsgRequestQueue.clear();
d->connections.clear();
+
+ if ( m_loginTask )
+ {
+ m_loginTask->deleteLater();
+ m_loginTask = 0;
+ }
+
+ if ( m_loginTaskTwo )
+ {
+ m_loginTaskTwo->deleteLater();
+ m_loginTaskTwo = 0;
+ }
+
deleteStaticTasks();
//don't clear the stored status between stage one and two
@@ -391,7 +408,6 @@
void Client::streamConnected()
{
kDebug(OSCAR_RAW_DEBUG) ;
- d->stage = ClientPrivate::StageTwo;
if ( m_loginTaskTwo )
m_loginTaskTwo->go();
}
@@ -427,15 +443,13 @@
d->cookie = m_loginTask->loginCookie();
close();
QTimer::singleShot( 100, this, SLOT(startStageTwo() ) );
+ d->stage = ClientPrivate::StageTwo;
}
else
{
kDebug(OSCAR_RAW_DEBUG) << "errors reported. not moving to stage two";
close(); //deletes the connections for us
}
-
- m_loginTask->deleteLater();
- m_loginTask = 0;
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic