------- 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

Reply via email to