ID
|
Origin
|
Name
|
Foodgroup
|
Service
|
Status
|
Version
|
0x0002, 0x0006
|
Host
|
LOCATE__USER_INFO_REPLY
|
Unspecified
|
BOS
|
Active
|
1.19
|
This is the usual response to a LOCATE__USER_INFO_QUERY2 SNAC.
Foodgroup
|
uint16 (word)
|
00 02
|
Subgroup
|
uint16 (word)
|
00 06
|
Flags
|
uint16 (word)
|
00 00
|
Request ID
|
uint32 (dword)
|
00 00 00 00
|
SNAC Data
Note that if you've requested 0x0003 instead of 0x0001 in the initial request packet, you'll get 0x0003 and 0x0004 as the return TLVs (and the users away message instead of their profile).
Container Data TLV Type
RAW FLAP Header (channel 0x02)
SNAC SNAC Header
LV Screen Name (no type)
RAW User info block *
TLV (optional) Profile Encoding 0x0001
TLV (optional) Profile 0x0002
From Aleksandr Shutko: SNAC(02,06) requested user location info SNAC(02,06) LOCATE__USER_INFO_REPLY
Server reply via this SNAC to client SNAC(02,05)
request. This snac consists of two parts. The first part constant. The second
part depends on type of the client request and may contain the client profile,
client capabilities or client away message. See also
additional information about online userinfo block.
Request type table:
0x0001 |
general info (reply contain TLV(1), TLV(2)) |
0x0002 |
online info (reply contain only fixed part) |
0x0003 |
away message (reply contain TLV(3), TLV(4)) |
0x0004 |
client capabilities (reply contain TLV(5)) |
|
|
Here is the packet format:
00 02 |
|
word |
|
SNAC family |
00 06 |
|
word |
|
SNAC subtype |
00 00 |
|
word |
|
SNAC flags |
xx xx xx xx |
|
dword |
|
SNAC request-id |
|
xx |
|
char |
|
uin string length |
xx .. |
|
string |
|
uin string |
xx xx |
|
word |
|
warning level |
00 07 |
|
word |
|
Number of TLV in fixed part (user online info) |
|
|
00 01 |
|
word |
|
TLV.Type(0x01) - user class |
xx xx |
|
word |
|
TLV.Length |
|
|
|
| |
|
|
|
00 06 |
|
word |
|
TLV.Type(0x06) - user status |
xx xx |
|
word |
|
TLV.Length |
|
|
|
| |
|
|
|
00 0C |
|
word |
|
TLV.Type(0x0C) - dc info (optional) |
00 25 |
|
word |
|
TLV.Length |
|
xx xx xx xx |
|
dword |
|
DC internal ip address |
xx xx xx xx |
|
dword |
|
DC tcp port |
xx |
|
byte |
|
DC type |
xx xx |
|
word |
|
DC protocol version |
xx xx xx xx |
|
dword |
|
DC auth cookie |
xx xx xx xx |
|
dword |
|
Web front port |
00 00 00 03 |
|
dword |
|
Client futures |
xx xx xx xx |
|
dword |
|
last info update time |
xx xx xx xx |
|
dword |
|
last ext info update time (i.e. icqphone status) |
xx xx xx xx |
|
dword |
|
last ext status update time (i.e. phonebook) |
xx xx |
|
word |
|
unknown |
|
|
| |
|
|
|
00 0A |
|
word |
|
TLV.Type(0x0A) - external ip address |
xx xx |
|
word |
|
TLV.Length |
|
xx xx xx xx |
|
dword |
|
External client ip address |
|
|
| |
|
|
|
00 0F |
|
word |
|
TLV.Type(0x0F) - client idle time |
xx xx |
|
word |
|
TLV.Length |
|
xx xx xx xx |
|
dword |
|
Client idle time |
|
|
| |
|
|
|
00 03 |
|
word |
|
TLV.Type(0x03) - signon time |
xx xx |
|
word |
|
TLV.Length |
|
xx xx xx xx |
|
dword |
|
Time when client gone online |
|
|
| |
|
|
|
00 05 |
|
word |
|
TLV.Type(0x05) - member since |
xx xx |
|
word |
|
TLV.Length |
|
xx xx xx xx |
|
dword |
|
Time when this account was registered |
|
|
| |
|
|
|
00 01 |
|
word |
|
TLV.Type(0x01) - encoding type |
xx xx |
|
word |
|
TLV.Length |
|
xx xx |
|
word |
|
encoding type strlen |
xx .. |
|
string |
|
encoding type string |
|
|
| |
|
|
|
00 02 |
|
word |
|
TLV.Type(0x02) - client profile string |
xx xx |
|
word |
|
TLV.Length |
|
xx xx |
|
word |
|
client profile strlen |
xx .. |
|
string |
|
client profile string |
|
|
| |
|
|
|
00 03 |
|
word |
|
TLV.Type(0x03) - away msg encoding string |
xx xx |
|
word |
|
TLV.Length |
|
xx xx |
|
word |
|
encoding type strlen |
xx .. |
|
string |
|
encoding type string |
|
|
| |
|
|
|
00 04 |
|
word |
|
TLV.Type(0x04) - away msg string |
xx xx |
|
word |
|
TLV.Length |
|
xx xx |
|
word |
|
away message strlen |
xx .. |
|
string |
|
away message string |
|
|
| |
|
|
|
00 05 |
|
word |
|
TLV.Type(0x05) - user capabilities |
xx xx |
|
word |
|
TLV.Length |
|
|
|
| |
|
|
|
|
Example SNAC dumps with flap header:
No dump yet :( Do you have one ?
|
|
LOCATE SNACs
SNAC List
Subgroup
|
Origin
|
Name
|
0x0001
|
Any
|
LOCATE__ERR
|
This is the error SNAC for the LOCATE foodgroup.
|
0x0002
|
Client
|
LOCATE__RIGHTS_QUERY
|
This query is sent to the server by the client to discover what some of its rights are with respect to the PD SNAC group.
|
0x0003
|
Host
|
LOCATE__RIGHTS_REPLY
|
This is the response to the LOCATE__RIGHTS_QUERY SNAC.
|
0x0004
|
Client
|
LOCATE__SET_INFO
|
The client may set SIG, UNAVAILABLE, and CAPABILITIES type and data tags with this SNAC.
|
0x0005
|
Client
|
LOCATE__USER_INFO_QUERY
|
Request user information for profiles, capabilities, away message, and certificates.
|
0x0006
|
Host
|
LOCATE__USER_INFO_REPLY
|
This is the usual response to a LOCATE__USER_INFO_QUERY2 SNAC.
|
0x0007
|
Client
|
LOCATE__WATCHER_SUB_REQUEST
|
Watcher sub request.
|
0x0008
|
Host
|
LOCATE__WATCHER_NOTIFICATION
|
Watcher sub notification.
|
0x0009
|
Client
|
LOCATE__SET_DIR_INFO
|
Set directory info. Host will reply LOCATE__SET_DIR_REPLY.
|
0x000A
|
Host
|
LOCATE__SET_DIR_REPLY
|
Reply to LOCATE__SET_DIR_INFO.
|
0x000B
|
Client
|
LOCATE__GET_DIR_INFO
|
Get directory information for user. Host should reply with LOCATE__GET_DIR_REPLY.
|
0x000C
|
Host
|
LOCATE__GET_DIR_REPLY
|
Host reply to LOCATE__GET_DIR_INFO.
|
0x000D
|
NCD
|
LOCATE__GROUP_CAPABILITY_QUERY
|
This is not currently documented. Want to contribute?
|
0x000E
|
NCD
|
LOCATE__GROUP_CAPABILITY_REPLY
|
This is not currently documented. Want to contribute?
|
0x000F
|
Client
|
LOCATE__SET_KEYWORD_INFO
|
Set profile keywords and interests. Host should reply with LOCATE__SET_KEYWORD_REPLY.
|
0x0010
|
Host
|
LOCATE__SET_KEYWORD_REPLY
|
This is the host reply to LOCATE__SET_KEYWORD_REPLY.
|
0x0011
|
Client
|
LOCATE__GET_KEYWORD_INFO
|
Set profile keywords and interests. Host should reply with LOCATE__SET_KEYWORD_REPLY.
|
0x0012
|
Host
|
LOCATE__GET_KEYWORD_REPLY
|
This is the host reply to LOCATE__SET_KEYWORD_REPLY.
|
0x0013
|
Client
|
LOCATE__FIND_LIST_BY_EMAIL
|
This is a query sent to the server that looks up a list of users by their email address and returns one NickwInfo for each email account queried.
|
0x0014
|
Host
|
LOCATE__FIND_LIST_REPLY
|
This SNAC provides the results of the LOCATE__FIND_LIST_BY_EMAIL.
|
0x0015
|
Client
|
LOCATE__USER_INFO_QUERY2
|
This SNAC is sent by the client to perform the basic locate query on a user.
|
|