Oscar Protocol Specification: Family 0x0013, Subtype 0x0006
This SNAC is sent by the server after you send a request list packet (family 0x0013, subtype 0x0005). It contains the buddy list saved on the server, as well as some other data which is stored with the buddy list. This packet is made up of many different "items". An item could be a group, a buddy, a permit list, a deny list, the permit/deny setting, or other information. The AIM servers send you the list in numerical order by groups ID numbers and then by buddy ID numbers.
Another important thing to note is that if the list is long, it will be split into multiple 0x0006 SNACs. The timestamp will be 0 on all but the last list. Lists that don't contain the timestamp will have 0x0001 in the SNAC flags. I'm still unsure about this paragraph.
Thanks to Matthew Sachs for a lot of good insight into this.
Source: Server
Length | Description |
2 bytes | Family (0x0013) |
2 bytes | Subtype (0x0006) |
2 bytes | Flags |
4 bytes | Snac Request ID |
1 byte | Version number of the SSI protocol (always 0x00, as of the time of this writing) |
2 bytes | Number of items in this chunk of SSI |
A series of items |
4 bytes | Timestamp of when the list was last changed. |
Example:
Names have been changed to strings of a certain letter to protect
the innocent, colors have been added to make it easier to comprehend.
Strings are in bold so they stand out more. Length values are in
red. A blue # sign has been placed between each "item."
0000 00 20 78 03 89 c2 00 02 4b ac 13 70 08 00 45 00 . x..Â.. K¬.p..E. | The striked through text is
0010 01 d3 31 52 40 00 2b 06 af 26 40 0c 1c 8a 41 a5 .Ó1R@.+. ¯&@...A¥ | ethernet IP, and TCP information.
0020 cf 71 14 46 81 54 54 e1 8e ee d6 5b 70 92 50 18 Ïq.F.TTá .îÖ[p.P. | So basically, ignore it.
0030 40 00 29 31 00 00 2a 02 dd 0a 01 a5 00 13 00 06 @.)1..*. Ý..¥.... | Family and subtype are in violet.
0040 00 00 00 00 00 0d 00 00 14#00 00 00 00 00 00 00 ........ ........ | Number of items is in green.
0050 01 00 0a 00 c8 00 06 00 03 00 05 08 a5#00 00 00 ....È... ....¥...
0060 00 00 02 00 04 00 0d 00 ca 00 01 03 00 cb 00 04 ........ Ê....Ë..
0070 ff ff ff ff#00 0d 73 70 61 6d 6d 65 72 0a 6c 75 ÿÿÿÿ..sp ammer.lu | spammer and luser are on the deny list
0080 73 65 72 00 00 12 cd 00 03 00 00#00 00 00 00 73 ser...Í. .......s
0090 ee 00 05 00 08 00 c9 00 04 00 00 04 00#00 04 4e î.....É. .......N
00a0 43 53 55 00 03 00 00 00 01 00 0e 00 c8 00 0a 00 CSU..... ....È...
00b0 19 00 1a 00 1b 00 0f 5d 67#00 0b 61 61 61 61 61 .......] g..aaaaa
00c0 61 61 61 61 61 61 00 03 00 0f 00 00 00 00#00 05 aaaaaa.. ........
00d0 62 62 62 62 62 00 03 00 19 00 00 00 00#00 0f 63 bbbbb... .......c
00e0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 00 03 cccccccc cccccc..
00f0 00 1a 00 00 00 00#00 06 64 64 64 64 64 64 00 03 ........ dddddd.. | Look at "dddddd" as an example buddy. The ID#
0100 00 1b 00 00 00 00#00 0a 65 65 65 65 65 65 65 65 ........ eeeeeeee | of the group that it is in is 0x0003. The buddy
0110 65 65 00 03 5d 67 00 00 00 00#00 09 45 6c 73 65 ee..]g.. ....Else | ID# is 0x001b. The flags are 0x0000, which
0120 77 68 65 72 65 00 05 00 00 00 01 00 0c 00 c8 00 where... ......È. | means that this item is a buddy.
0130 08 00 1a 00 1b 00 1c 00 14#00 0a 66 66 66 66 66 ........ ...fffff
0140 66 66 66 66 66 00 05 00 14 00 00 00 00#00 06 67 fffff... .......g
0150 67 67 67 67 67 00 05 00 1a 00 00 00 00#00 08 68 ggggg... .......h
0160 68 68 68 68 68 68 68 00 05 00 1b 00 00 00 00#00 hhhhhhh. ........
0170 08 69 69 69 69 69 69 69 69 00 05 00 1c 00 00 00 .iiiiiii i.......
0180 00#00 02 4d 65 08 a5 00 00 00 01 00 0c 00 c8 00 ...Me.¥. ......È. | Look at "Me" as an example group. The group ID#
0190 08 55 17 55 18 55 19 55 1a#00 07 4c 42 20 44 61 .U.U.U.U ...LB Da | is 0x08a5, see how it follows the group name, as
01a0 73 68 08 a5 55 17 00 00 00 00#00 07 4c 42 20 44 sh.¥U... ....LB D | well as each buddy name. Notice how buddies do not
01b0 61 73 69 08 a5 55 18 00 00 00 00#00 07 4c 42 20 asi.¥U.. .....LB | have additional data, while the additional data for
01c0 44 61 73 4c 08 a5 55 19 00 00 00 00#00 07 4c 42 DasL.¥U. ......LB | the group contains the buddy ID#s of all buddies in
01d0 20 44 61 73 6e 08 a5 55 1a 00 00 00 00#3b b7 4b Dasn.¥U .....;·K | the group.
01e0 7d } | Last 4 bytes are the timestamp.
|