Protocols/OSCAR/Datatypes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 10: | Line 10: | ||
|- | |- | ||
| u08 | | u08 | ||
| | | byte | ||
| Unsigned byte | | Unsigned byte | ||
|- | |- | ||
| u16 | | u16 | ||
| 2 bytes | | word (2 bytes) | ||
| Unsigned two byte short | | Unsigned two byte short | ||
|- | |- | ||
| u32 | | u32 | ||
| 4 bytes | | dword (4 bytes) | ||
| Unsigned four byte int | | Unsigned four byte int | ||
|- | |- | ||
Line 26: | Line 26: | ||
|- | |- | ||
| t70 | | t70 | ||
| 4 bytes | | dword (4 bytes) | ||
| Unsigned four byte timestamp, from UNIX EPOCH | | Unsigned four byte timestamp, from UNIX EPOCH | ||
|- | |- | ||
Line 56: | Line 56: | ||
|- | |- | ||
| string08 | | string08 | ||
| u08 + data | | u08 (byte) + data | ||
| One byte length followed by that many bytes of data | | One byte length followed by that many bytes of data | ||
|- | |- | ||
| string16 | | string16 | ||
| u16 + data | | u16 (word) + data | ||
| Two byte length followed by that many bytes of data | | Two byte length followed by that many bytes of data | ||
|} | |} | ||
[[Category:OSCAR]] | [[Category:OSCAR]] |
Revision as of 03:54, 17 March 2020
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) |
The protocol is built on top of some common base types described below; these are the building blocks for all the other datatypes and SNACs. When encoding or decoding these types, make sure to use network byte order.
Base Types
Name | Size | Notes |
---|---|---|
u08 | byte | Unsigned byte |
u16 | word (2 bytes) | Unsigned two byte short |
u32 | dword (4 bytes) | Unsigned four byte int |
f32 | 4 bytes | Four byte float |
t70 | dword (4 bytes) | Unsigned four byte timestamp, from UNIX EPOCH |
UUID | 16 bytes | Sixteen bytes that represent a UUID also known as a GUID |
blob | length bytes | Used in a TLV, data type and size is defined by external values |
empty | 0 bytes | Used in a TLV, existence of tag causes behavior, the data is ignored |
Strings
In general strings are not NULL terminated and are encoded using UTF8. A string is said to be compressed if all white spaces are removed and all upper case characters are converted to lower case.
Name | Size | Notes |
---|---|---|
string | data | Inside of TLVs a string inherits its length from the TLV length |
string08 | u08 (byte) + data | One byte length followed by that many bytes of data |
string16 | u16 (word) + data | Two byte length followed by that many bytes of data |