Protocols/OSCAR/SNAC/OSERVICE SERVICE RESPONSE: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 2: | Line 2: | ||
{{Protocols/OSCAR/SNAC/Stats | {{Protocols/OSCAR/SNAC/Stats | ||
|origin={{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_RESPONSE/Origin}} | |origin={{Protocols/OSCAR/SNAC/OSERVICE__SERVICE_RESPONSE/Origin}} | ||
|id=0x0001, 0x0005 | |||
|name=OSERVICE__SERVICE_RESPONSE | |name=OSERVICE__SERVICE_RESPONSE | ||
| | |foodgroup=OSERVICE | ||
|service=[[Protocols/OSCAR/Services/BOS|BOS]] | |service=[[Protocols/OSCAR/Services/BOS|BOS]] | ||
|status={{Protocols/OSCAR/Foodgroups/OSERVICE/Status}} | |status={{Protocols/OSCAR/Foodgroups/OSERVICE/Status}} | ||
| Line 92: | Line 93: | ||
| ''[Class:[[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_RESPONSE#Class:_OSERVICE_SERVICE_RESPONSE_SSL_STATE|OSERVICE__SERVICE_RESPONSE_SSL_STATE]]]'' SSL state | | ''[Class:[[Protocols/OSCAR/SNAC/OSERVICE_SERVICE_RESPONSE#Class:_OSERVICE_SERVICE_RESPONSE_SSL_STATE|OSERVICE__SERVICE_RESPONSE_SSL_STATE]]]'' SSL state | ||
|} | |} | ||
=== From Aleksandr Shutko: SNAC(01,05) service redirect === | |||
<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=#4040FF> | |||
<table width=100% cellSpacing=0 cellPadding=0 border=0> | |||
<tr> | |||
<td><b><font color="white">SNAC(01,05) </font></b></td> | |||
<td width=70% align=right><b><font color="white">OSERVICE__SERVICE_RESPONSE </font></b></td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
<table width=640 cellSpacing=0 cellPadding=0 border=0> | |||
<tr> | |||
<td> | |||
<br> | |||
Server replies with this SNAC to [[Protocols/OSCAR/SNAC_01_04|SNAC(01,04)]] - client | |||
service request. After receiving this snac client should connect to specified | |||
server to use requested service. | |||
<br><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=169> 00 01</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=60%>SNAC family</td> | |||
</tr> | |||
<tr> | |||
<td> 00 05</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>SNAC subtype</td> | |||
</tr> | |||
<tr> | |||
<td> 00 00</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>SNAC flags</td> | |||
</tr> | |||
<tr> | |||
<td> xx xx xx xx</td> | |||
<td> </td> | |||
<td>dword</td> | |||
<td> </td> | |||
<td>SNAC request-id</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#E9E9E9> | |||
<!-- TLV 0x0D --> | |||
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td height=8 colspan=3></td></tr> | |||
<tr><td width=20> </td> | |||
<td> | |||
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0> <tr><td bgcolor=#f9f9f9 > | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> 00 0D</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=60%>TLV.Type(0x0D) - service (family) id</td> | |||
</tr> | |||
<tr> | |||
<td> xx xx</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>TLV.Length</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#f9f9f9> | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> xx xx</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=60%>Service (family) id</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td><td width=5> </td> | |||
</tr> | |||
<tr><td height=5 colspan=3> </td></tr> | |||
</table> | |||
<!-- TLV 0x05 --> | |||
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td height=8 colspan=3></td></tr> | |||
<tr><td width=20> </td> | |||
<td> | |||
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0> <tr><td bgcolor=#f9f9f9 > | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> 00 05</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=60%>TLV.Type(0x05) - server address</td> | |||
</tr> | |||
<tr> | |||
<td> xx xx</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>TLV.Length</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#f9f9f9> | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> xx ..</td> | |||
<td width=5> </td> | |||
<td>string</td> | |||
<td width=5> </td> | |||
<td width=60%>Server address and (optional) port</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td><td width=5> </td> | |||
</tr> | |||
<tr><td height=5 colspan=3> </td></tr> | |||
</table> | |||
<!-- TLV 0x06 --> | |||
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td height=8 colspan=3></td></tr> | |||
<tr><td width=20> </td> | |||
<td> | |||
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0> <tr><td bgcolor=#f9f9f9 > | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> 00 06</td> | |||
<td width=5> </td> | |||
<td>word</td> | |||
<td width=5> </td> | |||
<td width=60%>TLV.Type(0x06) - authorization cookie</td> | |||
</tr> | |||
<tr> | |||
<td> xx xx</td> | |||
<td> </td> | |||
<td>word</td> | |||
<td> </td> | |||
<td>TLV.Length</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
<tr><td bgcolor=#f9f9f9> | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr> | |||
<td width=147> xx ..</td> | |||
<td width=5> </td> | |||
<td>string</td> | |||
<td width=5> </td> | |||
<td width=60%>Authorization cookie</td> | |||
</tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td><td width=5> </td> | |||
</tr> | |||
<tr><td height=5 colspan=3> </td></tr> | |||
</table> | |||
<!-- TLV 0x?? --> | |||
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td height=8 colspan=3></td></tr> | |||
<tr><td width=20> </td> | |||
<td> | |||
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td> | |||
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0> | |||
<tr><td bgcolor=#f9f9f9 > | |||
<table width=610 cellSpacing=0 cellPadding=0 align=center border=0> | |||
<tr><td> May contain other tlv from the [[Protocols/OSCAR/TLV#Common_TLVs|following list]]</td></tr> | |||
</table> | |||
</td></tr> | |||
</table> | |||
</td></tr></table> | |||
</td><td width=5> </td> | |||
</tr> | |||
<tr><td height=5 colspan=3> </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 E5 66 00 36 00 01 00 05 00 00 8E CD B1 97 *..f.:.......... | |||
00 0D 00 02 00 0D 00 05 00 0F 31 30 2E 31 30 2E ..........10.10. | |||
31 30 2E 38 3A 35 31 39 30 00 06 00 0F 31 32 33 10.8:5190....123 | |||
34 35 36 37 38 39 41 42 43 44 45 46 456789ABCDEF | |||
</pre></font> | |||
</td></tr></table> | |||
</td></tr></table> | |||
[[Category:With_Contrib]] | |||
=== OSERVICE SNACs === | === OSERVICE SNACs === | ||
Latest revision as of 06:24, 13 February 2021
| OSCAR Protocol |
| Introduction • Terms • Clients |
| Basic |
| Datatypes • FLAP • SNAC • TLV |
| UUIDs • Errors • Tool IDs |
| Host Interaction |
| Rate Limits • Migration • Messages |
| Other Services |
| ADMIN • ADVERT • ALERT |
| BART • BOS • BUCP • CHAT |
| CHAT_NAV |
| Tutorials |
| Sign On • BART • Rendezvous |
| ICBM • Locate • Buddies |
| 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 |
|---|---|---|---|---|---|---|
| 0x0001, 0x0005 | Host | OSERVICE__SERVICE_RESPONSE | OSERVICE | BOS | Active | 4.0 |
This SNAC contains information about connecting to the new server. It is the response from the server to a service request.
SNAC Header
| Foodgroup | uint16 (word) | 00 01 |
| Subgroup | uint16 (word) | 00 05 |
| Flags | uint16 (word) | 00 00 |
| Request ID | uint32 (dword) | 00 00 00 00 |
SNAC Data
| Name | Type | Notes |
|---|---|---|
| connectInfo | Rest of SNAC array of TLV | [Class: OSERVICE__SERVICE_RESPONSE_TAGS] How to connect to the new server |
Class: OSERVICE__SERVICE_RESPONSE_SSL_STATE
This describes what type of SSL connection the client and backend have.
| Name | Value | Notes |
|---|---|---|
| OSERVICE__SERVICE_RESPONSE_SSL_STATE_NOT_USED | 0x00 | SSL is not supported or not requested for this connection |
| OSERVICE__SERVICE_RESPONSE_SSL_STATE_USE | 0x01 | SSL is being used |
| OSERVICE__SERVICE_RESPONSE_SSL_STATE_RESUME | 0x02 | SSL is being used and SSL resume is supported if desired |
TLV Class: OSERVICE__SERVICE_RESPONSE_TAGS
Container Data TLV Type RAW SNAC Header TLV Service Type (word) 0x000d TLV Service Host (string) 0x000f TLV Auth Cookie? (l: 0x0100) 0x0006
This class provided information about where the client should connect for the service.
| Name | Tag | Type | Notes |
|---|---|---|---|
| OSERVICE__TLV_TAGS_RECONNECT_HERE | 0x05 | string | IP address followed by optional colon and port, 10.0.0.1:5190 |
| OSERVICE__TLV_TAGS_LOGIN_COOKIE | 0x06 | string | Binary opaque data |
| OSERVICE__TLV_TAGS_GROUP_ID | 0x0D | uint16 (word) | Foodgroup for which this response is for |
| OSERVICE__TLV_TAGS_SSL_CERTNAME | 0x8D | string | Certname to use for SSL validation |
| OSERVICE__TLV_TAGS_SSL_STATE | 0x8E | uint8 (byte) | [Class:OSERVICE__SERVICE_RESPONSE_SSL_STATE] SSL state |
From Aleksandr Shutko: SNAC(01,05) service redirect
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example SNAC dump with flap header:
|
OSERVICE SNACs
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||