From: Don S. <do...@se...> - 2005-02-03 20:50:56
|
On 19:30 Thu 03 Feb , Zilo wrote: > Yes, the server reply with an ERROR message and ignore the second =20 > request; as what I see, is gaim who use a strange politic :/ Here is the problem I think. When I use gaim to add a buddy, it first calls bnet_buddy_add(), which adds the buddy to the local list. It then requests the remote friends list and compares. However in bnet_buddy_add() I see this block of code: if (!g_hash_table_lookup(conn->buddies, norm)) { b =3D bnet_buddy_new(norm, buddy->name); if (conn->welcome) b->new_entry =3D TRUE; g_hash_table_insert(conn->buddies, b->norm, b); bnet_conn_request_friends_list(conn); } I may be reading this wrong, but this to me seems to be checking for the existance of the buddy in the list, and only adding if it doesn't exist. Why would this be failing? Another issue is perhaps we should do the remote check first, and return any error that comes from that. Although I can see the merit in doing a local check first. Either way we are currently ignoring the results of the /friends add attempt. --=20 Don Seiler do...@se... Public Key: http://pgp.mit.edu:11371/pks/lookup?op=3Dget&search=3D0xFC87F041 Fingerprint: 0B56 50D5 E91E 4D4C 83B7 207C 76AC 5DA2 FC87 F041 |