Protocols/OSCAR/SNAC/FEEDBAG STATUS: Difference between revisions

From NINA Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 19: Line 19:
== SNAC Data ==
== SNAC Data ==
There will be a status code for each of the items in the original SNAC.
There will be a status code for each of the items in the original SNAC.
{| border="1"
! Length
! Description
|-
| 4 bytes
| Snac Request ID (this is the same as the request ID of the add/mod/del SNAC for which this is the ack)
|-
| 2 bytes
| 0x0006 (if SSI family is greater than 1 and SNAC flags&0x8000)
|-
| 2 bytes
| 0x0001 (if SSI family is greater than 1 and SNAC flags&0x8000)
|-
| 2 bytes
| 0x0002 (if SSI family is greater than 1 and SNAC flags&0x8000)
|-
| 2 bytes
| 0x0002 (if SSI family is greater than 1 and SNAC flags&0x8000)
|-
| 2 bytes
|
Flags:
* 0x0000 - No errors
* 0x0002 - Item you want to modify not found in list
* 0x000a - Error adding item (maybe the group ID#/buddy ID# is already taken?)(maybe this screen name already exists in the give group?)(maybe the name is too long? or invalid?) I think should actually be 0x0010, but I haven't verified.
* 0x000c - Could not add buddy because you already have the maximum number of buddies in your list
* 0x000d - Tried to add an ICQ contact to an AIM list
* 0x000e - Contact requires authorization. Send an authorization request, and modify this item so it's additional data contains an empty 0x0066 TLV.
|}
{| class="wikitable"
{| class="wikitable"
! Name
! Name
Line 98: Line 129:
| General timeout
| General timeout
|}
|}
=== From Aleksandr Shutko: SNAC(13,0E) FEEDBAG__STATUS ===
<table width=640 cellSpacing=0 cellPadding=0 border=0>
<tr>
<td>
<br>
This SNAC is an ack sent by the server when [[Protocols/OSCAR/SNAC_13_08|adding]]
a buddy, [[Protocols/OSCAR/SNAC_13_0a|deleting]] a buddy,
or otherwise [[Protocols/OSCAR/SNAC_13_09|modifying]] a group. See also snac list for SSI service
[[Protocols/OSCAR/Foodgroups/FEEDBAG|here]]. This snac contain flag. Here
is the list of its known values:<br><br>
<table width=100% bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td bgcolor=#E5E5E5>
<table width=100% cellSpacing=1 cellPadding=1 border=0>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x0000</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;No errors (success)</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x0002</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Item you want to modify not found in list</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x0003</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Item you want to add allready exists</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x000A</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Error adding item (invalid id, allready in list, invalid data)</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x000C</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Can't add item. Limit for this type of items exceeded</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x000D</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Trying to add ICQ contact to an AIM list</td>
</tr>
<tr>
<td bgcolor=#f9f9f9 width=70 valign=top>&nbsp;&nbsp;<b>0x000E</b></td>
<td bgcolor=#f9f9f9 valign=top>&nbsp;&nbsp;Can't add this contact because it requires authorization</td>
</tr>
</table>
</td></tr></table>
</td></tr></table>
<br>
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td  bgcolor=#E9E9E9 >
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0>
<tr>
<td width=20%>&nbsp;00 13</td>
<td width=5>&nbsp;</td>
<td>word</td>
<td width=5>&nbsp;</td>
<td width=60%>SNAC family</td>
</tr>
<tr>
<td>&nbsp;00 0E</td>
<td width=5>&nbsp;</td>
<td>word</td>
<td width=5>&nbsp;</td>
<td width=60%>SNAC subtype</td>
</tr>
<tr>
<td>&nbsp;00 00</td>
<td width=5>&nbsp;</td>
<td>word</td>
<td width=5>&nbsp;</td>
<td width=60%>SNAC flags</td>
</tr>
<tr>
<td>&nbsp;xx xx xx xx</td>
<td width=5>&nbsp;</td>
<td>dword</td>
<td width=5>&nbsp;</td>
<td width=60%>SNAC request-id</td>
</tr>
</table>
</td></tr>
<tr><td  bgcolor=#E9E9E9 >
  <table width=640 cellSpacing=0 cellPadding=0 align=center border=0>
  <tr>
  <td width=20%>&nbsp;xx xx</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>result code for item #1 (see list above)</td>
  </tr>
  <tr >
  <td>&nbsp;...</td>
  <td>&nbsp;</td>
  <td>&nbsp;...</td>
  <td>&nbsp;</td>
  <td>&nbsp;...</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>result code for item #n (see list above)</td>
  </tr>
  </table>
</td></tr>
</table>
</td></tr></table>
</td></tr></table>
<br>Example SNAC dump with flap header:
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr>
<td bgcolor=#E9E9E9>
<font size=3><pre style="font-size: 13px">
  2A 02 92 34 00 0C 00 13  00 0E 80 00 00 04 00 08 *..4............
  00 00                    ..........
</pre></font>
</td></tr></table>
</td></tr></table>
[[Category:With_Contrib]]


== FEEDBAG SNACs ==
== FEEDBAG SNACs ==

Latest revision as of 05:13, 13 February 2021

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
0x0013, 0x000E Host FEEDBAG__STATUS Unspecified BOS Active 4.0

These are the results of one of the insert/update/delete item SNACs from above.

SNAC Header

Foodgroup uint16 (word) 00 13
Subgroup uint16 (word) 00 0E
Flags uint16 (word) 00 00
Request ID uint32 (dword) 00 00 00 00

SNAC Data

There will be a status code for each of the items in the original SNAC.

Length Description
4 bytes Snac Request ID (this is the same as the request ID of the add/mod/del SNAC for which this is the ack)
2 bytes 0x0006 (if SSI family is greater than 1 and SNAC flags&0x8000)
2 bytes 0x0001 (if SSI family is greater than 1 and SNAC flags&0x8000)
2 bytes 0x0002 (if SSI family is greater than 1 and SNAC flags&0x8000)
2 bytes 0x0002 (if SSI family is greater than 1 and SNAC flags&0x8000)
2 bytes

Flags:

  • 0x0000 - No errors
  • 0x0002 - Item you want to modify not found in list
  • 0x000a - Error adding item (maybe the group ID#/buddy ID# is already taken?)(maybe this screen name already exists in the give group?)(maybe the name is too long? or invalid?) I think should actually be 0x0010, but I haven't verified.
  • 0x000c - Could not add buddy because you already have the maximum number of buddies in your list
  • 0x000d - Tried to add an ICQ contact to an AIM list
  • 0x000e - Contact requires authorization. Send an authorization request, and modify this item so it's additional data contains an empty 0x0066 TLV.
Name Type Notes
statuses Rest of SNAC array of uint16 (word) [Class: FEEDBAG__STATUS_CODES] Results of the operation; one for each item in original SNAC

Class: FEEDBAG__STATUS_CODES

These are the status codes returned from database operations.

Name Value Notes
FEEDBAG__STATUS_CODES_SUCCESS 0x00 Success
FEEDBAG__STATUS_CODES_DB_ERROR 0x01 Some kind of database error
FEEDBAG__STATUS_CODES_NOT_FOUND 0x02 Item was not found for an update or delete
FEEDBAG__STATUS_CODES_ALREADY_EXISTS 0x03 Item already exists for an insert
FEEDBAG__STATUS_CODES_UNAVAILABLE 0x05 Server or database is not available
FEEDBAG__STATUS_CODES_BAD_REQUEST 0x0A Request was not formed well
FEEDBAG__STATUS_CODES_DB_TIME_OUT 0x0B Database timed out
FEEDBAG__STATUS_CODES_OVER_ROW_LIMIT 0x0C Too many items of this class for an insert
FEEDBAG__STATUS_CODES_NOT_EXECUTED 0x0D Due to other error in same request
FEEDBAG__STATUS_CODES_AUTH_REQUIRED 0x0E Buddy List authorization required
FEEDBAG__STATUS_CODES_AUTO_AUTH 0x0F NOT CURRENTLY DOCUMENTED
FEEDBAG__STATUS_CODES_BAD_LOGINID 0x10 Bad username
FEEDBAG__STATUS_CODES_OVER_BUDDY_LIMIT 0x11 Too many buddies
FEEDBAG__STATUS_CODES_INSERT_SMART_GROUP 0x14 Attempt to added a Buddy to a smart group
FEEDBAG__STATUS_CODES_TIMEOUT 0x1A General timeout

From Aleksandr Shutko: SNAC(13,0E) FEEDBAG__STATUS


This SNAC is an ack sent by the server when adding a buddy, deleting a buddy, or otherwise modifying a group. See also snac list for SSI service here. This snac contain flag. Here is the list of its known values:

  0x0000   No errors (success)
  0x0002   Item you want to modify not found in list
  0x0003   Item you want to add allready exists
  0x000A   Error adding item (invalid id, allready in list, invalid data)
  0x000C   Can't add item. Limit for this type of items exceeded
  0x000D   Trying to add ICQ contact to an AIM list
  0x000E   Can't add this contact because it requires authorization


 00 13   word   SNAC family
 00 0E   word   SNAC subtype
 00 00   word   SNAC flags
 xx xx xx xx   dword   SNAC request-id
 xx xx   word   result code for item #1 (see list above)
 ...    ...    ...
 xx xx   word   result code for item #n (see list above)


Example SNAC dump with flap header:


  2A 02 92 34 00 0C 00 13  00 0E 80 00 00 04 00 08 *..4............
  00 00                   			   ..........


FEEDBAG SNACs

SNAC List
Subgroup Origin Name
0x0001 Any FEEDBAG__ERR
This is the error SNAC for the FEEDBAG foodgroup.
0x0002 Client FEEDBAG__RIGHTS_QUERY
This SNAC issues a query to the host for the client's Feedbag rights and to let the system know what kind of Feedbag support it wants.
0x0003 Host FEEDBAG__RIGHTS_REPLY
This is the response to the FEEDBAG__RIGHTS_QUERY SNAC.
0x0004 Client FEEDBAG__QUERY
This SNAC is sent to query the Feedbag data stored on the host.
0x0005 Client FEEDBAG__QUERY_IF_MODIFIED
Similar to FEEDBAG__QUERY except contains a Unix epoch to check against in order to only send if modified.
0x0006 Host FEEDBAG__REPLY
This is the reply to FEEDBAG_QUERY.
0x0007 Client FEEDBAG__USE
Directs the host to use the specified stored Feedbag information.
0x0008 Any FEEDBAG__INSERT_ITEM
When this SNAC is sent to the host, the client is requesting that one or more new items are added to the Feedbag.
0x0009 Any FEEDBAG__UPDATE_ITEM
When this SNAC is sent to the host, the client is requesting to update one or more items.
0x000A Any FEEDBAG__DELETE_ITEM
When this SNAC is sent to the host, the client is requesting that one or more items be deleted from the Feedbag.
0x000B NCD FEEDBAG__INSERT_CLASS
This is not currently documented.
0x000C NCD FEEDBAG__UPDATE_CLASS
This is not currently documented.
0x000D NCD FEEDBAG__DELETE_CLASS
This is not currently documented.
0x000E Host FEEDBAG__STATUS
These are the results of one of the insert/update/delete item SNACs from above.
0x000F Host FEEDBAG__REPLY_NOT_MODIFIED
Response to client if Feedbag data is unmodified.
0x0010 NCD FEEDBAG__DELETE_USER
This is not currently documented.
0x0011 NCD FEEDBAG__START_CLUSTER
The cluster SNACs bracket a set of transactions that should be handled by clients as a group to avoid "flashing" the user's screen.
0x0012 NCD FEEDBAG__END_CLUSTER
This SNAC ends the data burst started with START_CLUSTER. See FEEDBAG__START_CLUSTER.
0x0013 Client FEEDBAG__AUTHORIZE_BUDDY
Grant authorization to another user.
0x0014 Client FEEDBAG__PRE_AUTHORIZE_BUDDY
Pre-authorize another user.
0x0015 Host FEEDBAG__PRE_AUTHORIZED_BUDDY
Host notification to a user that they have been pre-authorized.
0x0016 Client FEEDBAG__REMOVE_ME
Delete current user from another user's Buddy List.
0x0017 Client FEEDBAG__REMOVE_ME2
This is not currently documented.
0x0018 Client FEEDBAG__REQUEST_AUTHORIZE_TO_HOST
Send authorization request.
0x0019 Host FEEDBAG__REQUEST_AUTHORIZE_TO_CLIENT
Host notice of authorization request from another user.
0x001A Client FEEDBAG__RESPOND_AUTHORIZE_TO_HOST
Send authorization response to FEEDBAG__REQUEST_AUTHORIZE_TO_CLIENT.
0x001B Host FEEDBAG__RESPOND_AUTHORIZE_TO_CLIENT
Host notice of grant or denial of authorization.
0x001C Host FEEDBAG__BUDDY_ADDED
Host notice that another user has added current user to their Buddy List.
0x001D NCD FEEDBAG__REQUEST_AUTHORIZE_TO_BADOG
This is not currently documented.
0x001E NCD FEEDBAG__RESPOND_AUTHORIZE_TO_BADOG
This is not currently documented.
0x001F NCD FEEDBAG__BUDDY_ADDED_TO_BADOG
This is not currently documented.
0x0021 Any FEEDBAG__TEST_SNAC
This is not currently documented.
0x0022 NCD FEEDBAG__FORWARD_MSG
This is not currently documented.
0x0023 NCD FEEDBAG__IS_AUTH_REQUIRED_QUERY
This is not currently documented.
0x0024 NCD FEEDBAG__IS_AUTH_REQUIRED_REPLY
This is not currently documented.
0x0025 NCD FEEDBAG__RECENT_BUDDY_UPDATE
This is not currently documented.