[ICQ/AIM] Possibly fix for broken privacy lists in some accounts (tickets #9034, #12549)
dzlists at arcor.de
dzlists at arcor.de
Mon Oct 18 17:51:51 EDT 2010
Hello,
I wrote:
> My somewhat naive guess is that a range of low bid numbers is reserved for general entries.
> The range limit is wrong because some entries are outside the range, e.g.
> gid=0x0000 bid=0x0007 list_type=0x0029 name='facebook'.
A very simple explanation, and of course wrong...
On my broken account #1, I deleted the buddy icon entry
| gid=0x0000 bid=0x0003 list_type=0x0014 name='1'
and put it at a different bid.
After that, it was possible to add one blocking entry at bid=0x0003, but
0x0005 still failed.
Apparently it's just single broken entries that cause the problem.
--- broken #1, adding an entry with bid=0x0003 works (as did adding 0x0006 and above) ----
(22:55:25) oscar: ssi: About to add a deny
[..]
(22:55:25) aim_ssi_add_to_private_list: adding 222222222 to list_type 0x000e for ssi.local 0x091e5e78
(22:55:25) dump: gid=0x0000 bid=0x0000 list_type=0x0001 name='(null)'
(22:55:25) dump: gid=0x0000 bid=0x0001 list_type=0x0004 name='(null)'
(22:55:25) dump: gid=0x0000 bid=0x0002 list_type=0x0005 name='(null)'
(22:55:25) dump: gid=0x0000 bid=0x0003 list_type=0x000e name='222222222' <<<
(22:55:25) dump: gid=0x0000 bid=0x0004 list_type=0x001d name='(null)'
(22:55:25) dump: gid=0x0000 bid=0x0007 list_type=0x0029 name='facebook'
(22:55:25) dump: gid=0x0000 bid=0x0008 list_type=0x0019 name='444444444'
(22:55:25) dump: gid=0x0000 bid=0x0009 list_type=0x0019 name='333333333'
(22:55:25) dump: gid=0x0000 bid=0x0010 list_type=0x0020 name='ICQ-MDIR'
(22:55:25) dump: gid=0x0000 bid=0x0013 list_type=0x0028 name='(null)'
(22:55:25) dump: gid=0x0000 bid=0x1401 list_type=0x0014 name='1'
(22:55:25) dump: gid=0x0001 bid=0x0000 list_type=0x0001 name='Buddys'
(22:55:25) dump: gid=0x0001 bid=0x0001 list_type=0x0000 name='222222222'
(22:55:25) dump: gid=0x0001 bid=0x4433 list_type=0x0000 name='111111111'
(22:55:25) dump: gid=0x0002 bid=0x0000 list_type=0x0001 name='Buddies'
(22:55:25) oscar: ssi: status is 0x0000 for a 0x0008 action with name 222222222
--- broken #1, ...only bid=0x0005 is broken ----
(22:55:44) oscar: ssi: About to add a deny
[..]
(22:55:44) aim_ssi_add_to_private_list: adding 111111111 to list_type 0x000e for ssi.local 0x091e5e78
(22:55:44) dump: gid=0x0000 bid=0x0000 list_type=0x0001 name='(null)'
(22:55:44) dump: gid=0x0000 bid=0x0001 list_type=0x0004 name='(null)'
(22:55:44) dump: gid=0x0000 bid=0x0002 list_type=0x0005 name='(null)'
(22:55:44) dump: gid=0x0000 bid=0x0003 list_type=0x000e name='222222222'
(22:55:44) dump: gid=0x0000 bid=0x0004 list_type=0x001d name='(null)'
(22:55:44) dump: gid=0x0000 bid=0x0005 list_type=0x000e name='111111111' <<<<
(22:55:44) dump: gid=0x0000 bid=0x0007 list_type=0x0029 name='facebook'
(22:55:44) dump: gid=0x0000 bid=0x0008 list_type=0x0019 name='444444444'
(22:55:44) dump: gid=0x0000 bid=0x0009 list_type=0x0019 name='333333333'
(22:55:44) dump: gid=0x0000 bid=0x0010 list_type=0x0020 name='ICQ-MDIR'
(22:55:44) dump: gid=0x0000 bid=0x0013 list_type=0x0028 name='(null)'
(22:55:44) dump: gid=0x0000 bid=0x1401 list_type=0x0014 name='1'
(22:55:44) dump: gid=0x0001 bid=0x0000 list_type=0x0001 name='Buddys'
(22:55:44) dump: gid=0x0001 bid=0x0001 list_type=0x0000 name='222222222'
(22:55:44) dump: gid=0x0001 bid=0x4433 list_type=0x0000 name='111111111'
(22:55:44) dump: gid=0x0002 bid=0x0000 list_type=0x0001 name='Buddies'
(22:55:45) oscar: ssi: status is 0x0003 for a 0x0008 action with name no item
(22:55:45) oscar: ssi: Action 0x0008 was unsuccessful with error 0x0003
I couldn't find any remnants of the broken bid in the itemlist nor in the tlvlist loaded by
parsedata() (family_feedbag.c).
Anyway, just deleting the broken entry from the server worked.
This was done by adding a fake item to the ssi.official itemlist, so a aim_ssi_sync() would send a
SNAC_SUBTYPE_FEEDBAG_DEL when it finds this item is missing in the ssi.local itemlist.
AFAICS, the fake entry just needs the right gid and bid, but name and list_type does not matter.
In this way, it was possible to repair the broken ICQ accounts, but this is of course the ugly way.
Can such a deletion also be done from a plug-in (e.g. by injecting data into the ssi.official or
ssi.pending list of an account)?
If so, I would like to write one (if this approach makes any sense at all).
Regards,
Dustin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: add_phantom_to_official_list.c
Type: text/x-csrc
Size: 1728 bytes
Desc: not available
URL: <http://pidgin.im/pipermail/devel/attachments/20101018/0b3f223b/attachment-0002.c>
More information about the Devel
mailing list