Protocols/OSCAR/SNAC/BUDDY RIGHTS QUERY

From NINA Wiki
Revision as of 04:35, 13 February 2021 by AD (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
OSCAR Protocol
IntroductionTermsClients
Basic
DatatypesFLAPSNACTLV
UUIDsErrorsTool IDs
Host Interaction
Rate LimitsMigrationMessages
Other Services
ADMINADVERTALERT
BARTBOSBUCPCHAT
CHAT_NAV
Tutorials
Sign OnBARTRendezvous
ICBMLocateBuddies
Foodgroups
OSERVICE (0x0001)
LOCATE (0x0002)
BUDDY (0x0003)
ICBM (0x0004)
ADVERT (0x0005)
INVITE (0x0006)
ADMIN (0x0007)
POPUP (0x0008)
PD (0x0009)
USER_LOOKUP (0x000A)
STATS (0x000B)
TRANSLATE (0x000C)
CHAT_NAV (0x000D)
CHAT (0x000E)
ODIR (0x000F)
BART (0x0010)
FEEDBAG (0x0013)
ICQ (0x0015)
BUCP (0x0017)
ALERT (0x0018)
PLUGIN (0x0022)
UNNAMED_FG_24 (0x0024)
MDIR (0x0025)
ARS (0x044A)
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.

SNAC Header

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.

Name Type Notes
tlvs Rest of SNAC array of TLV [Class: BUDDY__RIGHTS_QUERY_TAGS] Qualifying parameters for query

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.

Name Tag Type Notes
FLAGS 0x05 uint16 (word) [Class:BUDDY__RIGHTS_QUERY_FLAGS] Flags that govern feature support

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.