------- 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=138376         
andre duffeck de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From andre duffeck de  2007-05-02 18:52 -------
SVN commit 660412 by duffeck:

Fix loss of contacts on large contact lists.
BUG:138376


 M  +1 -1      coreprotocol.cpp  
 M  +5 -4      listtask.cpp  
 M  +2 -0      listtask.h  
 M  +5 -4      ymsgprotocol.cpp  


--- 
branches/KDE/3.5/kdenetwork/kopete/protocols/yahoo/libkyahoo/coreprotocol.cpp 
#660411:660412
 @ -184,7 +184,7  @
                }
                else 
                { 
-                       kdDebug(YAHOO_RAW_DEBUG) << k_funcinfo << " - not a 
valid YMSG packet. Trying to recover." << endl;
+                       kdDebug(YAHOO_RAW_DEBUG) << k_funcinfo << " - not a 
valid YMSG packet. Trying to recover: " << wire << endl;
                        QTextStream s( wire, IO_ReadOnly );
                        QString remaining = s.read();
                        int pos = remaining.find( "YMSG", bytesParsed );
--- branches/KDE/3.5/kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.cpp 
#660411:660412
 @ -69,13 +69,13  @
        kdDebug(YAHOO_RAW_DEBUG) << k_funcinfo << endl;
 
        QString raw;
-       raw = t->firstParam( 87 );
-       
-       if( raw.isEmpty() )
+       m_list.append( t->firstParam( 87 ) );
+
+       if( t->firstParam( 59 ).isEmpty() )
                return;
 
        QStringList groups;
-       groups = QStringList::split( "\n", raw );
+       groups = QStringList::split( "\n", m_list );
 
        for ( QStringList::Iterator groupIt = groups.begin(); groupIt != 
groups.end(); ++groupIt ) 
        {
 @ -88,6 +88,7  @
                        emit gotBuddy( *buddyIt, QString::null, group );
                }
        }
+       m_list.truncate( 0 );
 }
 
 void ListTask::parseStealthList( YMSGTransfer *t )
--- branches/KDE/3.5/kdenetwork/kopete/protocols/yahoo/libkyahoo/listtask.h 
#660411:660412
 @ -41,6 +41,8  @
 signals:
        void gotBuddy(const QString&, const QString&, const QString&);
        void stealthStatusChanged( const QString&, Yahoo::StealthStatus );
+private:
+       QString m_list;
 };
 
 #endif
--- 
branches/KDE/3.5/kdenetwork/kopete/protocols/yahoo/libkyahoo/ymsgprotocol.cpp 
#660411:660412
 @ -357,9 +357,10  @
                        if (accept)
                                value[x++] = data[pos++];
                }
-               if (accept)
+               if (accept) {
                        value[x] = 0;
-               pos += 2;
+                       pos += 2;
+               }
 
                if (accept) 
                {
 @ -375,8 +376,8  @
        }
 
        // Packets consisting of several YMSG-packets sometimes contain padding 
chars (0x00) -> filter out
-       while( (BYTE)data[pos] == (BYTE) 0x00 && pos <= len + 20)
-               pos++;
+       while( (BYTE)data[pos] == (BYTE) 0x00 && pos <= len + 20)
+               pos++;
 
        kdDebug(YAHOO_RAW_DEBUG) << k_funcinfo << " Returning transfer" << endl;
        // tell them we have parsed offset bytes
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to