ID
|
Origin
|
Name
|
Foodgroup
|
Service
|
Status
|
Version
|
0x0003, 0x0002
|
Client
|
BUDDY__RIGHTS_QUERY
|
Unspecified
|
BOS
|
Active
|
1.10
|
This SNAC is optionally sent by the client to discover the client's and user's rights.
Foodgroup
|
uint16 (word)
|
00 03
|
Subgroup
|
uint16 (word)
|
00 02
|
Flags
|
uint16 (word)
|
00 00
|
Request ID
|
uint32 (dword)
|
00 00 00 00
|
SNAC Data
This SNAC is usually sent before the OSERVICE__CLIENT_ONLINE SNAC.
Query the BUDDY foodgroup rights:
Field
|
Size
|
Value
|
u08
|
flapHeader.startMarker
|
'*'
|
u08
|
flapHeader.frameType
|
0x02 (FLAP__FRAME_TYPE_DATA)
|
u16
|
flapHeader.sequenceNumber
|
XX
|
u16
|
flapHeader.payloadLength
|
YY
|
u16
|
snacHeader.foodgroup
|
0x03 (BUDDY)
|
u16
|
snacHeader.type
|
0x02 (BUDDY__RIGHTS_QUERY)
|
u16
|
snacHeader.flags
|
0
|
u32
|
snacHeader.requestId
|
ZZ
|
u16
|
tlvs[0].tag
|
0x05 (BUDDY__RIGHTS_QUERY_TAGS_FLAGS)
|
u16
|
tlvs[0].len
|
2
|
u16
|
tlvs[0].value
|
0x0F
|
TLV Class: BUDDY__RIGHTS_QUERY_TAGS
These are tags the client uses to inform the server of options for the BUDDY foodgroup.
Class: BUDDY__RIGHTS_QUERY_FLAGS
These are the flags the client uses to inform the server what kinds of features it supports.
Name
|
Value
|
Notes
|
BUDDY__RIGHTS_FLAGS_BART_SUPPORTED
|
0x0001
|
Want to receive BART items
|
BUDDY__RIGHTS_FLAGS_INITIAL_DEPARTS
|
0x0002
|
Want to receive ARRIVE/DEPART for all users on a Buddy List, even those offline
|
BUDDY__RIGHTS_FLAGS_OFFLINE_BART_SUPPORTED
|
0x0004
|
Want to receive BART items for offline buddies, excluding location
|
BUDDY__RIGHTS_FLAGS_REJECT_PENDING_BUDDIES
|
0x0008
|
If set and INITIAL_DEPARTS is set, use REJECT on pending buddies instead of DEPART
|
From Aleksandr Shutko: SNAC(03,02) request baddylist service parameters SNAC(03,02) BUDDY__RIGHTS_QUERY
Client use this SNAC to request buddylist service parameters and limitations.
Server should reply via SNAC(03,03).
00 03 |
|
word |
|
SNAC family |
00 02 |
|
word |
|
SNAC subtype |
00 00 |
|
word |
|
SNAC flags |
xx xx xx xx |
|
dword |
|
SNAC request-id |
|
empty (no snac data)
|
|
|
Example SNAC dump with flap header:
2A 02 22 9B 00 0A 00 03 00 02 00 00 00 00 00 02 *.".............
|
|
BUDDY SNACs
SNAC List
Subgroup
|
Origin
|
Name
|
0x0001
|
Any
|
BUDDY__ERR
|
This is the error SNAC for the BUDDY foodgroup.
|
0x0002
|
Client
|
BUDDY__RIGHTS_QUERY
|
This SNAC is optionally sent by the client to discover the client's and user's rights.
|
0x0003
|
Host
|
BUDDY__RIGHTS_REPLY
|
This is the response the host sends to a BUDDY__RIGHTS_QUERY SNAC.
|
0x0004
|
Client
|
BUDDY__ADD_BUDDIES
|
Add buddy or buddies to Buddy List.
|
0x0005
|
Client
|
BUDDY__DEL_BUDDIES
|
Remove buddy or buddies from Buddy List.
|
0x0006
|
Client
|
BUDDY__WATCHER_LIST_QUERY
|
Query for other users who have current user listed.
|
0x0007
|
Host
|
BUDDY__WATCHER_LIST_RESPONSE
|
Response to BUDDY__WATCHER_LIST_QUERY.
|
0x0008
|
Client
|
BUDDY__WATCHER_SUB_REQUEST
|
Watcher sub request.
|
0x0009
|
Host
|
BUDDY__WATCHER_NOTIFICATION
|
Watcher sub notification.
|
0x000A
|
Host
|
BUDDY__REJECT_NOTIFICATION
|
This is sent in the event that one or more of the users specified in the user's Buddy List are overloaded with watchers.
|
0x000B
|
Host
|
BUDDY__ARRIVED
|
This notification, potentially batched, indicates that one or more users on the client's Buddy List has signed on or updated their information.
|
0x000C
|
Host
|
BUDDY__DEPARTED
|
This potentially batched notification indicates that one or more users on the client's Buddy List has signed off.
|
0x000F
|
Client
|
BUDDY__ADD_TEMP_BUDDIES
|
This SNAC adds one or more users to the client's temporary Buddy List.
|
0x0010
|
Client
|
BUDDY__DEL_TEMP_BUDDIES
|
This SNAC deletes one or more users from the client's temporary Buddy List.
|
|