[Pidgin] #9034: Pidgin won't let me block people
Pidgin
trac at pidgin.im
Wed Jun 8 22:33:53 EDT 2011
#9034: Pidgin won't let me block people
----------------------+-----------------------------------------------------
Reporter: jewel460 | Owner: MarkDoliner
Type: defect | Status: new
Milestone: | Component: AIM
Version: 2.5.5 | Resolution:
Keywords: |
----------------------+-----------------------------------------------------
Comment(by dustin):
Now I've also done the above tests with an AIM account (instead of ICQ),
with the same results.
After the tests it seems to me this bug is rather the rule than the
exception (it appeared on most accounts sooner or later).
The testing scenario (switching between Pidgin, other clients and the web
interface; using new accounts with an almost empty item list => all buddy
IDs in a small range of numbers) may provoke this behaviour.
I don't see a way this bug could be "repaired" in the sense of making the
hidden entries appear on the server or of Pidgin being aware of them
beforehand (especially when there is no other client that can deal with
the issue, using randomization instead...).
The patch I attached tries to avoid those entries instead.
1. The variable {{{static guint16 aim_ssi_nextbid}}}
stores the starting point from which {{{aim_ssi_itemlist_add()}}} will
try to find the next free buddy ID (only for items in group 0x0000).
2. The function {{{parseack_filter_errors()}}}
an "item already exists" error (0x0003) will be filtered by this
function.
The filter will update {{{aim_ssi_nextbid}}} to a higher bid and then try
once more to add the item
by calling {{{aim_ssi_itemlist_add()}}}, up to five times.
The error notification is suppressed by setting cur->ack to 0x0000.
For someone with a broken account, Pidgin should hit the hidden entries
only once and then continue with higher buddy IDs (until Pidgin is started
the next time).
Normally, this should no longer cause an error notification (error only
appears in the debug log).
Note that choosing random buddy IDs would make collisions with hidden
entries at least very unlikely. This would be a somewhat simpler
alternative to this patch.
--
Ticket URL: <http://developer.pidgin.im/ticket/9034#comment:36>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list