Version: (using KDE KDE 3.5.5) Installed from: Ubuntu Packages OS: Linux kopete does not list all contacts in my yahoo buddy list groups. For example I have a group that contains 25 buddies. When I connect with kopete it shows that the group only has 3 buddies in it. And even then, the third buddy is just the first two caracters from the id of the buddy (meaning it is not a correct id). When a buddy from this group connects it is put in a new group (I don't remember the name exactly, something like 'contacts not in your messenger list')
Created attachment 18790 [details] yahoo groups as seen in gaim (watch group 'Veniti cu noi')
Created attachment 18791 [details] yahoo groups as seen in kopete (watch group 'Veniti cu noi')
Could you please compile kopete with debug enabled and paste the debug messages of the login procedure? Thanks.
Created attachment 18822 [details] kopete debug messages on connection Looks like the contacts arrive in 2 packets and the second packet is not added to the buddy list. I got the kopete sources (0.12.3) from Kubuntu Edgy repository. Kopete on the Edgy live cd has the same issues. I've also tested the Dapper live cd (with Kopete 0.11.1) and that version loads the entire buddy list.
Thats great, thank you.
I have this same bug in Kopete version 0.12.4 using Kubuntu Edgy Eft with KDE 3.5.6
*** Bug 143191 has been marked as a duplicate of this bug. ***
*** Bug 143653 has been marked as a duplicate of this bug. ***
I'm experiencing this bug too... I only see 15 out of 173, with the 15'th one truncated...
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
*** Bug 146965 has been marked as a duplicate of this bug. ***