------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=139701
kedgedev centrum cz changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
------- Additional Comments From kedgedev centrum cz 2007-01-07 15:11 -------
SVN commit 620836 by rjarosz:
Fix bug 139701: Away msg polling too frequently.
When user or Auto-Away plugin change status in ICQ we change invisible status
even though invisible status didn't change at all and as a
result of this ICQ server sends us packets that indicate status changes for all
contacts.
BUG: 139701
M +15 -21 changevisibilitytask.cpp
---
branches/KDE/3.5/kdenetwork/kopete/protocols/oscar/liboscar/changevisibilitytask.cpp
#620835:620836
@ -79,38 +79,32 @
{
SSIManager* manager = client()->ssiManager();
Oscar::SSI item = manager->visibilityItem();
- Oscar::SSI newSSI;
if ( !item )
{
kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Didn't find a
visibility item" << endl;
+ setError( 0, QString::null );
return;
}
- //remove the old item and add the new item indicating the
- //change in visibility.
- manager->removeItem( item );
- kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "found visibility item.
changing setting" << endl;
- newSSI = Oscar::SSI( item.name(), item.gid(), item.bid(), item.type(),
QValueList<TLV>(), 0 );
- QValueList<TLV> newList;
- QValueList<TLV>::const_iterator it = item.tlvList().begin(), listEnd =
item.tlvList().end();
- for ( ; it != listEnd; ++it )
- {
- if ( ( *it ).type != 0x00CA )
- {
- TLV t = ( *it );
- kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "adding TLV
of type" << t.type << endl;
- newList.append( t );
- }
- }
-
Buffer c8tlv;
BYTE visibleByte = m_visible ? 0x04 : 0x03;
c8tlv.addByte( visibleByte );
- TLV c8( 0x00CA, c8tlv.length(), c8tlv.buffer() );
+ QValueList<Oscar::TLV> tList;
+ tList.append( TLV( 0x00CA, c8tlv.length(), c8tlv.buffer() ) );
- newList.append( c8 );
- newSSI.setTLVList( newList );
+ Oscar::SSI newSSI(item);
+ if ( Oscar::uptateTLVs( newSSI, tList ) == false )
+ {
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Visibility didn't
change, don't update" << endl;
+ setSuccess( 0, QString::null );
+ return;
+ }
+
+ //remove the old item and add the new item indicating the
+ //change in visibility.
+ manager->removeItem( item );
+ kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "found visibility item.
changing setting" << endl;
manager->newItem( newSSI );
sendEditStart();
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel