From 658743cc19b524d6d97ccf2917a8c7f498311707 Mon Sep 17 00:00:00 2001 From: rjarosz Date: Sat, 10 Nov 2007 01:07:49 +0000 Subject: [PATCH] Fix snac sequence checking so we don't lose user info if we send two or more requests in a row. Fix nickname fetching when we get new contacts on login. Allow to request user info if we are connected but we haven't yet get own online status. git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/KDE/kdenetwork@734804 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kopete/protocols/oscar/aim/aimaccount.cpp | 2 +- kopete/protocols/oscar/icq/icqaccount.cpp | 2 +- kopete/protocols/oscar/icq/icqcontact.cpp | 2 +- kopete/protocols/oscar/icqcontactbase.cpp | 2 +- kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.cpp | 6 ++---- kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.h | 1 - 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/kopete/protocols/oscar/aim/aimaccount.cpp b/kopete/protocols/oscar/aim/aimaccount.cpp index 70f98e978..35e9b1a78 100644 --- a/kopete/protocols/oscar/aim/aimaccount.cpp +++ b/kopete/protocols/oscar/aim/aimaccount.cpp @@ -261,7 +261,7 @@ OscarContact *AIMAccount::createNewContact( const QString &contactId, Kopete::Me if ( !ssiItem.alias().isEmpty() ) contact->setProperty( Kopete::Global::Properties::self()->nickName(), ssiItem.alias() ); - if ( isConnected() ) + if ( engine()->isActive() ) contact->loggedIn(); return contact; diff --git a/kopete/protocols/oscar/icq/icqaccount.cpp b/kopete/protocols/oscar/icq/icqaccount.cpp index 913e55cb6..87b5a29fd 100644 --- a/kopete/protocols/oscar/icq/icqaccount.cpp +++ b/kopete/protocols/oscar/icq/icqaccount.cpp @@ -440,7 +440,7 @@ OscarContact *ICQAccount::createNewContact( const QString &contactId, Kopete::Me if ( !ssiItem.alias().isEmpty() ) contact->setProperty( Kopete::Global::Properties::self()->nickName(), ssiItem.alias() ); - if ( isConnected() ) + if ( engine()->isActive() ) contact->loggedIn(); return contact; diff --git a/kopete/protocols/oscar/icq/icqcontact.cpp b/kopete/protocols/oscar/icq/icqcontact.cpp index 010d57db4..a340a029e 100644 --- a/kopete/protocols/oscar/icq/icqcontact.cpp +++ b/kopete/protocols/oscar/icq/icqcontact.cpp @@ -362,7 +362,7 @@ void ICQContact::receivedLongInfo( const QString& contact ) void ICQContact::requestMediumTlvInfo() { - if ( mAccount->isConnected() && !m_ssiItem.metaInfoId().isEmpty() ) + if ( mAccount->engine()->isActive() && !m_ssiItem.metaInfoId().isEmpty() ) mAccount->engine()->requestMediumTlvInfo( contactId(), m_ssiItem.metaInfoId() ); } diff --git a/kopete/protocols/oscar/icqcontactbase.cpp b/kopete/protocols/oscar/icqcontactbase.cpp index 6233a1e21..33e0c85d3 100644 --- a/kopete/protocols/oscar/icqcontactbase.cpp +++ b/kopete/protocols/oscar/icqcontactbase.cpp @@ -50,7 +50,7 @@ QString ICQContactBase::sanitizedMessage( const QString& message ) void ICQContactBase::requestShortInfo() { - if ( mAccount->isConnected() ) + if ( mAccount->engine()->isActive() ) mAccount->engine()->requestShortInfo( contactId() ); } diff --git a/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.cpp b/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.cpp index a564a0ec8..b25268813 100644 --- a/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.cpp +++ b/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.cpp @@ -26,7 +26,6 @@ ICQTlvInfoRequestTask::ICQTlvInfoRequestTask( Task* parent ) : ICQTask( parent ) { - m_goSequence = 0; m_type = Short; } @@ -48,7 +47,7 @@ bool ICQTlvInfoRequestTask::forMe( const Transfer* transfer ) const const_cast( this )->parseInitialData( buf ); if ( requestType() == 0x07DA && requestSubType() == 0x0FB4 - && m_goSequence == sequence() ) + && m_contactSequenceMap.contains( sequence() ) ) return true; return false; @@ -87,8 +86,7 @@ void ICQTlvInfoRequestTask::onGo() { kDebug(OSCAR_RAW_DEBUG) << "Requsting full TLV user info for: " << m_userToRequestFor; - m_goSequence = client()->snacSequence(); - setSequence( m_goSequence ); + setSequence( client()->snacSequence() ); setRequestType( 0x07D0 ); setRequestSubType( 0x0FA0 ); diff --git a/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.h b/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.h index dd3c0a210..447ba2ecd 100644 --- a/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.h +++ b/kopete/protocols/oscar/liboscar/tasks/icqtlvinforequesttask.h @@ -64,7 +64,6 @@ private: InfoType m_type; QByteArray m_metaInfoId; - Oscar::WORD m_goSequence; }; -- 2.11.4.GIT