diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2025-12-06 13:09:25 -0800 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2025-12-06 13:09:25 -0800 |
| commit | 3c469bcadafa104dd637ea7660a91a681ce75a60 (patch) | |
| tree | c648d1ac6c39ca8018ca7a03bb707d53c1428d5d | |
| parent | c152c2807d12875e22996f669b41e587277733f9 (diff) | |
Fix markdown table widths
| -rw-r--r-- | docs/PROTOCOL.md | 1624 |
1 files changed, 812 insertions, 812 deletions
diff --git a/docs/PROTOCOL.md b/docs/PROTOCOL.md index 604e5c5..94fe46b 100644 --- a/docs/PROTOCOL.md +++ b/docs/PROTOCOL.md @@ -39,12 +39,12 @@ Hotline client is an application executing on the user's computer, and providing To be able to connect to the specific server, IP address and port number must be provided to the client application. If client receives server's address from a tracker, the tracker will provide the client with complete address. Otherwise, the user of Hotline client software must manually set this address. IP port number, set in the Hotline client for a specific server, is called **base port number**. Additional port numbers utilized by the network protocol are determined by using this base port number: -| Port | Usage | -|------|-------| -| Base port | Regular transactions | -| Base port + 1 | Upload/download | +| Port | Usage | +|---------------|-----------------------------------------| +| Base port | Regular transactions | +| Base port + 1 | Upload/download | | Base port + 2 | HTTP tunneling for regular transactions | -| Base port + 3 | HTTP tunneling for uploads/downloads | +| Base port + 3 | HTTP tunneling for uploads/downloads | **Note:** Numeric data transmitted over the wire is always in network byte order (big-endian). @@ -56,19 +56,19 @@ After establishing TCP connection, both client and server start the handshake pr ### Client Request -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol ID | 4 | 'TRTP' | 0x54525450 | -| Sub-protocol ID | 4 | | User defined | -| Version | 2 | 1 | Currently 1 | -| Sub-version | 2 | | User defined | +| Description | Size | Data | Note | +|-----------------|------|--------|--------------| +| Protocol ID | 4 | 'TRTP' | 0x54525450 | +| Sub-protocol ID | 4 | | User defined | +| Version | 2 | 1 | Currently 1 | +| Sub-version | 2 | | User defined | ### Server Reply -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol ID | 4 | 'TRTP' | | -| Error code | 4 | | Error code returned by the server (0 = no error) | +| Description | Size | Data | Note | +|-------------|------|--------|--------------------------------------------------| +| Protocol ID | 4 | 'TRTP' | | +| Error code | 4 | | Error code returned by the server (0 = no error) | In the case of an error, client and server close the connection. @@ -80,30 +80,30 @@ After the initial handshake, client and server communicate over the connection b ### Transaction Header -| Description | Size | Data | Note | -|-------------|------|------|------| -| Flags | 1 | 0 | Reserved (should be 0) | -| Is reply | 1 | 0 or 1 | Request (0) or reply (1) | -| Type | 2 | | Requested operation (user defined) | -| ID | 4 | Not 0 | Unique transaction ID (must be != 0) | -| Error code | 4 | | Used in the reply (user defined, 0 = no error) | -| Total size | 4 | | Total data size for the transaction (all parts) | -| Data size | 4 | | Size of data in this transaction part (allows splitting large transactions) | +| Description | Size | Data | Note | +|-------------|------|--------|-----------------------------------------------------------------------------| +| Flags | 1 | 0 | Reserved (should be 0) | +| Is reply | 1 | 0 or 1 | Request (0) or reply (1) | +| Type | 2 | | Requested operation (user defined) | +| ID | 4 | Not 0 | Unique transaction ID (must be != 0) | +| Error code | 4 | | Used in the reply (user defined, 0 = no error) | +| Total size | 4 | | Total data size for the transaction (all parts) | +| Data size | 4 | | Size of data in this transaction part (allows splitting large transactions) | ### Parameter List Header -| Description | Size | Data | Note | -|-------------|------|------|------| -| Number of parameters | 2 | | Number of the parameters for this transaction | -| Parameter list… | | | | +| Description | Size | Data | Note | +|----------------------|------|------|-----------------------------------------------| +| Number of parameters | 2 | | Number of the parameters for this transaction | +| Parameter list… | | | | ### Parameter Structure -| Description | Size | Data | Note | -|-------------|------|------|------| -| Field ID | 2 | | | -| Field size | 2 | | Size of the data part | -| Field data… | size | | Actual field content | +| Description | Size | Data | Note | +|--------------|------|------|-----------------------| +| Field ID | 2 | | | +| Field size | 2 | | Size of the data part | +| Field data… | size | | Actual field content | Every field data format is based on the field type. Currently, there are only 3 predefined field data types: **integer**, **string** and **binary**. @@ -113,100 +113,100 @@ Every field data format is based on the field type. Currently, there are only 3 This is the list of all transactions in the current version of Hotline software: -| ID | Type | Initiator | Constant | -|----|------|-----------|----------| -| 100 | Error | ? | myTran_Error | -| 101 | Get messages | Client | myTran_GetMsgs | -| 102 | New message | Server | myTran_NewMsg | -| 103 | Old post news | Client | myTran_OldPostNews | -| 104 | Server message | Server | myTran_ServerMsg | -| 105 | Send chat | Client | myTran_ChatSend | -| 106 | Chat message | Server | myTran_ChatMsg | -| 107 | Login | Client | myTran_Login | -| 108 | Send instant message | Client | myTran_SendInstantMsg | -| 109 | Show agreement | Server | myTran_ShowAgreement | -| 110 | Disconnect user | Client | myTran_DisconnectUser | -| 111 | Disconnect message | Server | myTran_DisconnectMsg | -| 112 | Invite to a new chat | Client | myTran_InviteNewChat | -| 113 | Invite to chat | Client/Server | myTran_InviteToChat | -| 114 | Reject chat invite | Client | myTran_RejectChatInvite | -| 115 | Join chat | Client | myTran_JoinChat | -| 116 | Leave chat | Client | myTran_LeaveChat | -| 117 | Notify chat of a user change | Server | myTran_NotifyChatChangeUser | -| 118 | Notify chat of a delete user | Server | myTran_NotifyChatDeleteUser | -| 119 | Notify of a chat subject | Server | myTran_NotifyChatSubject | -| 120 | Set chat subject | Client | myTran_SetChatSubject | -| 121 | Agreed | Client | myTran_Agreed | -| 122 | Server banner | Server | myTran_ServerBanner | -| 200 | Get file name list | Client | myTran_GetFileNameList | -| 202 | Download file | Client | myTran_DownloadFile | -| 203 | Upload file | Client | myTran_UploadFile | -| 204 | Delete file | Client | myTran_DeleteFile | -| 205 | New folder | Client | myTran_NewFolder | -| 206 | Get file info | Client | myTran_GetFileInfo | -| 207 | Set file info | Client | myTran_SetFileInfo | -| 208 | Move file | Client | myTran_MoveFile | -| 209 | Make file alias | Client | myTran_MakeFileAlias | -| 210 | Download folder | Client | myTran_DownloadFldr | -| 211 | Download info | Server | myTran_DownloadInfo | -| 212 | Download banner | Client | myTran_DownloadBanner | -| 213 | Upload folder | Client | myTran_UploadFldr | -| 300 | Get user name list | Client | myTran_GetUserNameList | -| 301 | Notify of a user change | Server | myTran_NotifyChangeUser | -| 302 | Notify of a delete user | Server | myTran_NotifyDeleteUser | -| 303 | Get client info text | Client | myTran_GetClientInfoText | -| 304 | Set client user info | Client | myTran_SetClientUserInfo | -| 350 | New user | Client | myTran_NewUser | -| 351 | Delete user | Client | myTran_DeleteUser | -| 352 | Get user | Client | myTran_GetUser | -| 353 | Set user | Client | myTran_SetUser | -| 354 | User access | Server | myTran_UserAccess | -| 355 | User broadcast | Client/Server | myTran_UserBroadcast | -| 370 | Get news category name list | Client | myTran_GetNewsCatNameList | -| 371 | Get news article name list | Client | myTran_GetNewsArtNameList | -| 380 | Delete news item | Client | myTran_DelNewsItem | -| 381 | New news folder | Client | myTran_NewNewsFldr | -| 382 | New news category | Client | myTran_NewNewsCat | -| 400 | Get news article data | Client | myTran_GetNewsArtData | -| 410 | Post news article | Client | myTran_PostNewsArt | -| 411 | Delete news article | Client | myTran_DelNewsArt | +| ID | Type | Initiator | Constant | +|-----|------------------------------|---------------|-----------------------------| +| 100 | Error | ? | myTran_Error | +| 101 | Get messages | Client | myTran_GetMsgs | +| 102 | New message | Server | myTran_NewMsg | +| 103 | Old post news | Client | myTran_OldPostNews | +| 104 | Server message | Server | myTran_ServerMsg | +| 105 | Send chat | Client | myTran_ChatSend | +| 106 | Chat message | Server | myTran_ChatMsg | +| 107 | Login | Client | myTran_Login | +| 108 | Send instant message | Client | myTran_SendInstantMsg | +| 109 | Show agreement | Server | myTran_ShowAgreement | +| 110 | Disconnect user | Client | myTran_DisconnectUser | +| 111 | Disconnect message | Server | myTran_DisconnectMsg | +| 112 | Invite to a new chat | Client | myTran_InviteNewChat | +| 113 | Invite to chat | Client/Server | myTran_InviteToChat | +| 114 | Reject chat invite | Client | myTran_RejectChatInvite | +| 115 | Join chat | Client | myTran_JoinChat | +| 116 | Leave chat | Client | myTran_LeaveChat | +| 117 | Notify chat of a user change | Server | myTran_NotifyChatChangeUser | +| 118 | Notify chat of a delete user | Server | myTran_NotifyChatDeleteUser | +| 119 | Notify of a chat subject | Server | myTran_NotifyChatSubject | +| 120 | Set chat subject | Client | myTran_SetChatSubject | +| 121 | Agreed | Client | myTran_Agreed | +| 122 | Server banner | Server | myTran_ServerBanner | +| 200 | Get file name list | Client | myTran_GetFileNameList | +| 202 | Download file | Client | myTran_DownloadFile | +| 203 | Upload file | Client | myTran_UploadFile | +| 204 | Delete file | Client | myTran_DeleteFile | +| 205 | New folder | Client | myTran_NewFolder | +| 206 | Get file info | Client | myTran_GetFileInfo | +| 207 | Set file info | Client | myTran_SetFileInfo | +| 208 | Move file | Client | myTran_MoveFile | +| 209 | Make file alias | Client | myTran_MakeFileAlias | +| 210 | Download folder | Client | myTran_DownloadFldr | +| 211 | Download info | Server | myTran_DownloadInfo | +| 212 | Download banner | Client | myTran_DownloadBanner | +| 213 | Upload folder | Client | myTran_UploadFldr | +| 300 | Get user name list | Client | myTran_GetUserNameList | +| 301 | Notify of a user change | Server | myTran_NotifyChangeUser | +| 302 | Notify of a delete user | Server | myTran_NotifyDeleteUser | +| 303 | Get client info text | Client | myTran_GetClientInfoText | +| 304 | Set client user info | Client | myTran_SetClientUserInfo | +| 350 | New user | Client | myTran_NewUser | +| 351 | Delete user | Client | myTran_DeleteUser | +| 352 | Get user | Client | myTran_GetUser | +| 353 | Set user | Client | myTran_SetUser | +| 354 | User access | Server | myTran_UserAccess | +| 355 | User broadcast | Client/Server | myTran_UserBroadcast | +| 370 | Get news category name list | Client | myTran_GetNewsCatNameList | +| 371 | Get news article name list | Client | myTran_GetNewsArtNameList | +| 380 | Delete news item | Client | myTran_DelNewsItem | +| 381 | New news folder | Client | myTran_NewNewsFldr | +| 382 | New news category | Client | myTran_NewNewsCat | +| 400 | Get news article data | Client | myTran_GetNewsArtData | +| 410 | Post news article | Client | myTran_PostNewsArt | +| 411 | Delete news article | Client | myTran_DelNewsArt | ### Related Transaction Groups #### User Login and Management -| ID | Type | Initiator | -|----|------|-----------| -| 107 | Login | Client | -| 109 | Show agreement | Server | -| 121 | Agreed | Client | -| 304 | Set client user info | Client | -| 301 | Notify of a user change | Server | -| 300 | Get user name list | Client | -| 302 | Notify of a delete user | Server | +| ID | Type | Initiator | +|-----|-------------------------|-----------| +| 107 | Login | Client | +| 109 | Show agreement | Server | +| 121 | Agreed | Client | +| 304 | Set client user info | Client | +| 301 | Notify of a user change | Server | +| 300 | Get user name list | Client | +| 302 | Notify of a delete user | Server | #### Chat Transactions -| ID | Type | Initiator | -|----|------|-----------| -| 115 | Join chat | Client | -| 112 | Invite to a new chat | Client | -| 113 | Invite to chat | Client/Server | -| 114 | Reject chat invite | Client | -| 117 | Notify chat of a user change | Server | -| 116 | Leave chat | Client | -| 118 | Notify chat of a delete user | Server | -| 120 | Set chat subject | Client | -| 119 | Notify of a chat subject | Server | -| 105 | Send chat | Client | -| 106 | Chat message | Server | +| ID | Type | Initiator | +|-----|------------------------------|---------------| +| 115 | Join chat | Client | +| 112 | Invite to a new chat | Client | +| 113 | Invite to chat | Client/Server | +| 114 | Reject chat invite | Client | +| 117 | Notify chat of a user change | Server | +| 116 | Leave chat | Client | +| 118 | Notify chat of a delete user | Server | +| 120 | Set chat subject | Client | +| 119 | Notify of a chat subject | Server | +| 105 | Send chat | Client | +| 106 | Chat message | Server | #### Messaging Transactions -| ID | Type | Initiator | -|----|------|-----------| -| 104 | Server message | Server | -| 108 | Send instant message | Client | +| ID | Type | Initiator | +|-----|----------------------|-----------| +| 104 | Server message | Server | +| 108 | Send instant message | Client | --- @@ -240,9 +240,9 @@ Transaction types are described using the following format: **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | Message text | +| ID | Field Name | Note | +|-----|------------|--------------| +| 101 | Data | Message text | --- @@ -253,9 +253,9 @@ Transaction types are described using the following format: **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | News text | +| ID | Field Name | Note | +|-----|------------|-----------| +| 101 | Data | News text | **Reply is not sent.** @@ -269,9 +269,9 @@ Transaction types are described using the following format: **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | | +| ID | Field Name | Note | +|-----|------------|------| +| 101 | Data | | **Fields used in the reply:** None @@ -286,19 +286,19 @@ Receive a message from the user on the current server, server's administrator, o **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | -| 102 | User name | | -| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | -| 101 | Data | Message to display | -| 214 | Quoting message | Message to quote | +| ID | Field Name | Note | +|-----|-----------------|-----------------------------------------------------------------------------------| +| 103 | User ID | | +| 102 | User name | | +| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | +| 101 | Data | Message to display | +| 214 | Quoting message | Message to quote | If User ID (103) field is not sent, receiver assumes that sender uses the following fields: -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | | +| ID | Field Name | Note | +|-----|--------------|-------------------------------------------------------| +| 101 | Data | | | 109 | Chat options | Server message (1) or admin message (any other value) | **Reply is not sent.** @@ -315,11 +315,11 @@ Send a chat message to the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|--------------|-----------------------------------------------------| | 109 | Chat options | Optional - Normal (0) or alternate (1) chat message | -| 114 | Chat ID | Optional | -| 101 | Data | Chat message string | +| 114 | Chat ID | Optional | +| 101 | Data | Chat message string | **Reply is not expected.** @@ -334,16 +334,16 @@ Receive a chat message from the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | -| 101 | Data | Chat text | +| ID | Field Name | Note | +|-----|------------|-----------| +| 114 | Chat ID | | +| 101 | Data | Chat text | If Chat ID is not available, the Data field contains: -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | Special chat message | +| ID | Field Name | Note | +|-----|------------|----------------------| +| 101 | Data | Special chat message | **Reply is not sent.** @@ -358,24 +358,24 @@ Start login sequence with the server (see Transaction Sequences). **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 105 | User login | | -| 106 | User password | | -| 160 | Version | Currently 151 | +| ID | Field Name | Note | +|-----|---------------|---------------| +| 105 | User login | | +| 106 | User password | | +| 160 | Version | Currently 151 | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 160 | Version | | +| ID | Field Name | Note | +|-----|------------|------| +| 160 | Version | | If Version is >= 151, additional fields are included: -| ID | Field Name | Note | -|----|------------|------| -| 161 | Banner ID | Used for making HTTP request to get banner | -| 162 | Server name | Server name string | +| ID | Field Name | Note | +|-----|-------------|---------------------------------------------| +| 161 | Banner ID | Used for making HTTP request to get banner | +| 162 | Server name | Server name string | If server version is < 151, client sends Set Client User Info (304) transaction with only User Name (102) and User Icon ID (104) fields used, and does not expect a reply. It does not expect agreement to be received (109). Subsequently, it sends Get User Name List (300) request, followed by Get File Name List (200) or Get News Category Name List (370), depending on user preferences. After that, a banner is requested from HTTP server. @@ -390,12 +390,12 @@ Send instant message to the user on the current server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | -| 113 | Options | myOpt_UserMessage (1), myOpt_RefuseMessage (2), myOpt_RefuseChat (3), myOpt_AutomaticResponse (4) | -| 101 | Data | Optional | -| 214 | Quoting message | Optional | +| ID | Field Name | Note | +|-----|-----------------|---------------------------------------------------------------------------------------------------| +| 103 | User ID | | +| 113 | Options | myOpt_UserMessage (1), myOpt_RefuseMessage (2), myOpt_RefuseChat (3), myOpt_AutomaticResponse (4) | +| 101 | Data | Optional | +| 214 | Quoting message | Optional | **Fields used in the reply:** None @@ -410,13 +410,13 @@ Receive agreement that will be presented to the user of the client application. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | Agreement string | -| 154 | No server agreement | Optional - No agreement available (1) | -| 152 | Server banner type | | -| 153 | Server banner URL | Optional - If banner type is URL (1) | -| 151 | | Optional - If banner type is not URL (1) | +| ID | Field Name | Note | +|-----|---------------------|-------------------------------------------| +| 101 | Data | Agreement string | +| 154 | No server agreement | Optional - No agreement available (1) | +| 152 | Server banner type | | +| 153 | Server banner URL | Optional - If banner type is URL (1) | +| 151 | | Optional - If banner type is not URL (1) | **Reply is not sent.** @@ -432,11 +432,11 @@ Disconnect user from the current server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | -| 113 | Options | Optional - Ban options | -| 101 | Data | Optional - Name? | +| ID | Field Name | Note | +|-----|------------|------------------------| +| 103 | User ID | | +| 113 | Options | Optional - Ban options | +| 101 | Data | Optional - Name? | **Fields used in the reply:** None @@ -451,9 +451,9 @@ Receive disconnect message from the server. Upon receiving this transaction, cli **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | Message to display on disconnect (mandatory) | +| ID | Field Name | Note | +|-----|------------|----------------------------------------------| +| 101 | Data | Message to display on disconnect (mandatory) | **Reply is not sent.** @@ -468,20 +468,20 @@ Invite users to the new chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | Optional | -| 103… | User ID… | Optional - More user IDs… | +| ID | Field Name | Note | +|------|------------|---------------------------| +| 103 | User ID | Optional | +| 103… | User ID… | Optional - More user IDs… | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | -| 104 | User icon ID | | -| 112 | User flags | | -| 102 | User name | | -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|--------------|------| +| 103 | User ID | | +| 104 | User icon ID | | +| 112 | User flags | | +| 102 | User name | | +| 114 | Chat ID | | --- @@ -494,10 +494,10 @@ Invite user to the existing chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | User to invite | -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|------------|----------------| +| 103 | User ID | User to invite | +| 114 | Chat ID | | **Reply is not expected.** @@ -507,11 +507,11 @@ The server can also be an initiator of this transaction. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | -| 103 | User ID | User to invite | -| 102 | User name | | +| ID | Field Name | Note | +|-----|------------|----------------| +| 114 | Chat ID | | +| 103 | User ID | User to invite | +| 102 | User name | | **Reply is not sent.** @@ -528,9 +528,9 @@ Reject invitation to join the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 114 | Chat ID | | **Reply is not expected.** @@ -545,17 +545,17 @@ Join the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 114 | Chat ID | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 115 | Chat subject | | -| 300 | User name with info | Optional | -| 300… | User name with info… | Optional - More user names with info | +| ID | Field Name | Note | +|------|----------------------|---------------------------------------| +| 115 | Chat subject | | +| 300 | User name with info | Optional | +| 300… | User name with info… | Optional - More user names with info | --- @@ -568,9 +568,9 @@ Leave the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 114 | Chat ID | | **Reply is not expected.** @@ -585,13 +585,13 @@ Notify the user of the chat that the information for some another user changed, **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | -| 103 | User ID | | -| 104 | User icon ID | | -| 112 | User flags | | -| 102 | User name | | +| ID | Field Name | Note | +|-----|--------------|------| +| 114 | Chat ID | | +| 103 | User ID | | +| 104 | User icon ID | | +| 112 | User flags | | +| 102 | User name | | **Reply is not sent.** @@ -608,10 +608,10 @@ Notify the user of the chat that a user left that chat. The client should update **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | -| 103 | User ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 114 | Chat ID | | +| 103 | User ID | | **Reply is not sent.** @@ -626,9 +626,9 @@ Notify the user of the chat of the chat subject. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|--------------|---------------------| +| 114 | Chat ID | | | 115 | Chat subject | Chat subject string | **Reply is not sent.** @@ -644,9 +644,9 @@ Set chat subject for the chat. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 114 | Chat ID | | +| ID | Field Name | Note | +|-----|--------------|---------------------| +| 114 | Chat ID | | | 115 | Chat subject | Chat subject string | **Reply is not expected.** @@ -662,12 +662,12 @@ Notify the server that the user accepted the server agreement. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 102 | User name | | -| 104 | User icon ID | | -| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | -| 215 | Automatic response | Optional - Automatic response string used only if the options field indicates this feature | +| ID | Field Name | Note | +|-----|--------------------|---------------------------------------------------------------------------------------------| +| 102 | User name | | +| 104 | User icon ID | | +| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | +| 215 | Automatic response | Optional - Automatic response string used only if the options field indicates this feature | **Fields used in the reply:** None @@ -684,10 +684,10 @@ Notify the client that a new banner should be displayed. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|--------------------|--------------------------| | 152 | Server banner type | Uses only literal values | -| 153 | Server banner URL | Optional | +| 153 | Server banner URL | Optional | **Reply is not sent.** @@ -706,15 +706,15 @@ Get the list of file names from the specified folder. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 202 | File path | Optional - If not specified, root folder assumed | +| ID | Field Name | Note | +|-----|------------|--------------------------------------------------| +| 202 | File path | Optional - If not specified, root folder assumed | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 200 | File name with info | Optional | +| ID | Field Name | Note | +|------|----------------------|--------------------------------------| +| 200 | File name with info | Optional | | 200… | File name with info… | Optional - More file names with info | --- @@ -729,30 +729,30 @@ Download the file from the specified path on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | -| 203 | File resume data | Optional | -| 204 | File transfer options | Optional - Currently set to 2, used only for TEXT, JPEG, GIFF, BMP or PICT files | +| ID | Field Name | Note | +|-----|-----------------------|-----------------------------------------------------------------------------------| +| 201 | File name | | +| 202 | File path | | +| 203 | File resume data | Optional | +| 204 | File transfer options | Optional - Currently set to 2, used only for TEXT, JPEG, GIFF, BMP or PICT files | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 108 | Transfer size | Size of data to be downloaded | -| 207 | File size | | -| 107 | Reference number | Used later for transfer | -| 116 | Waiting count | | +| ID | Field Name | Note | +|-----|------------------|-------------------------------| +| 108 | Transfer size | Size of data to be downloaded | +| 207 | File size | | +| 107 | Reference number | Used later for transfer | +| 116 | Waiting count | | After receiving reply from the server, the client opens TCP (or HTTP) connection to base port + 1 (HTTP uses base port + 3). On successful establishment, client sends the following record using the new connection: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol | 4 | 'HTXF' | 0x48545846 | -| Reference number | 4 | | Use reference number received from the server | -| Data size | 4 | 0 | | -| RSVD | 4 | 0 | ? | +| Description | Size | Data | Note | +|------------------|------|--------|-----------------------------------------------| +| Protocol | 4 | 'HTXF' | 0x48545846 | +| Reference number | 4 | | Use reference number received from the server | +| Data size | 4 | 0 | | +| RSVD | 4 | 0 | ? | After this, server sends the flattened file object (see Flattened File Object) using this new TCP connection. @@ -768,28 +768,28 @@ Upload a file to the specified path on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | +| ID | Field Name | Note | +|-----|-----------------------|----------------------------------------------------------------| +| 201 | File name | | +| 202 | File path | | | 204 | File transfer options | Optional - Used only to resume download, currently has value 2 | -| 108 | File transfer size | Optional - Used if download is not resumed | +| 108 | File transfer size | Optional - Used if download is not resumed | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|------------------|-----------------------------------------| | 203 | File resume data | Optional - Used only to resume download | -| 107 | Reference number | | +| 107 | Reference number | | After receiving reply from the server, the client opens TCP (or HTTP) connection to base port + 1 (HTTP uses base port + 3). On successful establishment, client sends the following record using the new connection: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol | 4 | 'HTXF' | 0x48545846 | -| Reference number | 4 | | Use reference number received from the server | -| Data size | 4 | | File size | -| RSVD | 4 | 0 | ? | +| Description | Size | Data | Note | +|------------------|------|--------|-----------------------------------------------| +| Protocol | 4 | 'HTXF' | 0x48545846 | +| Reference number | 4 | | Use reference number received from the server | +| Data size | 4 | | File size | +| RSVD | 4 | 0 | ? | After this, client sends the flattened file object (see Flattened File Object) using this new TCP connection. @@ -805,10 +805,10 @@ Delete the specific file from the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | +| ID | Field Name | Note | +|-----|------------|------| +| 201 | File name | | +| 202 | File path | | **Fields used in the reply:** None @@ -824,10 +824,10 @@ Create a new folder on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | +| ID | Field Name | Note | +|-----|------------|------| +| 201 | File name | | +| 202 | File path | | **Fields used in the reply:** None @@ -842,23 +842,23 @@ Request file information from the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | Optional | +| ID | Field Name | Note | +|-----|------------|----------| +| 201 | File name | | +| 202 | File path | Optional | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 205 | File type string | | -| 206 | File creator string | | -| 210 | File comment | Comment string | -| 213 | File type | | -| 208 | File create date | | -| 209 | File modify date | | -| 207 | File size | | +| ID | Field Name | Note | +|-----|---------------------|----------------| +| 201 | File name | | +| 205 | File type string | | +| 206 | File creator string | | +| 210 | File comment | Comment string | +| 213 | File type | | +| 208 | File create date | | +| 209 | File modify date | | +| 207 | File size | | --- @@ -872,12 +872,12 @@ Set information for the specified file on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | Optional | +| ID | Field Name | Note | +|-----|---------------|----------| +| 201 | File name | | +| 202 | File path | Optional | | 211 | File new name | Optional | -| 210 | File comment | Optional | +| 210 | File comment | Optional | **Fields used in the reply:** None @@ -892,11 +892,11 @@ Move the file from one folder to another on the same server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | -| 212 | File new path | | +| ID | Field Name | Note | +|-----|---------------|------| +| 201 | File name | | +| 202 | File path | | +| 212 | File new path | | **Fields used in the reply:** None @@ -912,10 +912,10 @@ Make the file alias using the specified path. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | +| ID | Field Name | Note | +|-----|---------------|------------------| +| 201 | File name | | +| 202 | File path | | | 212 | File new path | Destination path | **Fields used in the reply:** None @@ -932,81 +932,81 @@ Download all files from the specified folder and its subfolders on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | +| ID | Field Name | Note | +|-----|------------|------| +| 201 | File name | | +| 202 | File path | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 220 | Folder item count | | -| 107 | Reference number | Used later for transfer | -| 108 | Transfer size | Size of data to be downloaded | -| 116 | Waiting count | | +| ID | Field Name | Note | +|-----|-------------------|-------------------------------| +| 220 | Folder item count | | +| 107 | Reference number | Used later for transfer | +| 108 | Transfer size | Size of data to be downloaded | +| 116 | Waiting count | | After receiving reply from the server, the client opens TCP (or HTTP) connection to base port + 1 (HTTP uses base port + 3). On successful establishment, client sends the following record using the new connection: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol | 4 | 'HTXF' | 0x48545846 | -| Reference number | 4 | | Use reference number received from the server | -| Data size | 4 | 0 | | -| Type | 2 | 1 | | -| RSVD | 2 | 0 | ? | -| Download folder action | 2 | 3 | Next file action (3) | +| Description | Size | Data | Note | +|------------------------|------|--------|-----------------------------------------------| +| Protocol | 4 | 'HTXF' | 0x48545846 | +| Reference number | 4 | | Use reference number received from the server | +| Data size | 4 | 0 | | +| Type | 2 | 1 | | +| RSVD | 2 | 0 | ? | +| Download folder action | 2 | 3 | Next file action (3) | For every item in the folder, server replies with: | Description | Size | Data | Note | |-------------|------|------|------| -| Header size | 2 | | | -| Header data | size | | | +| Header size | 2 | | | +| Header data | size | | | Header data contains: | Description | Size | Data | Note | |-------------|------|------|------| -| Type | 2 | | ? | -| File path | rest | | | +| Type | 2 | | ? | +| File path | rest | | | After receiving this header, client can reply in 3 ways: **(1) If type is an odd number (unknown type?), or file download for the current file is completed:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 3 | Next file action (3) | +| Description | Size | Data | Note | +|------------------------|------|------|----------------------| +| Download folder action | 2 | 3 | Next file action (3) | This notifies the server to send next item header. **(2) If download of a file is to be resumed:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 2 | Resume file transfer (2) | -| Resume data size | 2 | | | -| File resume data | size | | See content for field (203) | +| Description | Size | Data | Note | +|------------------------|------|------|-----------------------------| +| Download folder action | 2 | 2 | Resume file transfer (2) | +| Resume data size | 2 | | | +| File resume data | size | | See content for field (203) | **(3) Otherwise, file download is requested by:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 1 | Send file action (1) starts file download | +| Description | Size | Data | Note | +|------------------------|------|------|-------------------------------------------| +| Download folder action | 2 | 1 | Send file action (1) starts file download | When download is requested (case 2 or 3), server replies with: -| Description | Size | Data | Note | -|-------------|------|------|------| -| File size | 4 | | | -| File content… | size | | Actual flattened file object | +| Description | Size | Data | Note | +|----------------|------|------|-----------------------------| +| File size | 4 | | | +| File content… | size | | Actual flattened file object | After every file download, client could request next file: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 3 | Next file action (3) | +| Description | Size | Data | Note | +|------------------------|------|------|----------------------| +| Download folder action | 2 | 3 | Next file action (3) | --- @@ -1019,10 +1019,10 @@ Notify the client that all download slots on the server are full. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 107 | Reference number | Download reference number | -| 116 | Waiting count | Position in the server's queue | +| ID | Field Name | Note | +|-----|------------------|--------------------------------| +| 107 | Reference number | Download reference number | +| 116 | Waiting count | Position in the server's queue | **Reply is not sent.** @@ -1039,20 +1039,20 @@ Request a new banner from the server. **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 107 | Reference number | Used later for transfer | -| 108 | Transfer size | Size of data to be downloaded | +| ID | Field Name | Note | +|-----|------------------|-------------------------------| +| 107 | Reference number | Used later for transfer | +| 108 | Transfer size | Size of data to be downloaded | After receiving reply from the server, the client opens TCP (or HTTP) connection to base port + 1 (HTTP uses base port + 3). On successful establishment, client sends the following record using the new connection: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol | 4 | 'HTXF' | 0x48545846 | -| Reference number | 4 | | Use reference number received from the server | -| Data size | 4 | 0 | | -| Type | 2 | 2 | | -| RSVD | 2 | 0 | ? | +| Description | Size | Data | Note | +|------------------|------|--------|-----------------------------------------------| +| Protocol | 4 | 'HTXF' | 0x48545846 | +| Reference number | 4 | | Use reference number received from the server | +| Data size | 4 | 0 | | +| Type | 2 | 2 | | +| RSVD | 2 | 0 | ? | After this, server sends the file content using this new TCP connection. @@ -1068,80 +1068,80 @@ Upload all files from the local folder and its subfolders, to the specified path **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 202 | File path | | -| 108 | Transfer size | Total size of all items in the folder | -| 220 | Folder item count | | -| 204 | File transfer options | Optional - Currently set to 1 | +| ID | Field Name | Note | +|-----|-----------------------|---------------------------------------| +| 201 | File name | | +| 202 | File path | | +| 108 | Transfer size | Total size of all items in the folder | +| 220 | Folder item count | | +| 204 | File transfer options | Optional - Currently set to 1 | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|------------------|-------------------------| | 107 | Reference number | Used later for transfer | After receiving reply from the server, the client opens TCP (or HTTP) connection to base port + 1 (HTTP uses base port + 3). On successful establishment, client sends the following record using the new connection: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Protocol | 4 | 'HTXF' | 0x48545846 | -| Reference number | 4 | | Use reference number received from the server | -| Data size | 4 | 0 | | -| Type | 2 | 1 | | -| RSVD | 2 | 0 | ? | +| Description | Size | Data | Note | +|------------------|------|--------|-----------------------------------------------| +| Protocol | 4 | 'HTXF' | 0x48545846 | +| Reference number | 4 | | Use reference number received from the server | +| Data size | 4 | 0 | | +| Type | 2 | 1 | | +| RSVD | 2 | 0 | ? | Server can reply with: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 3 | Next file action (3) | +| Description | Size | Data | Note | +|------------------------|------|------|----------------------| +| Download folder action | 2 | 3 | Next file action (3) | After which client sends: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Data size | 2 | | Size of this structure (not including data size element itself) | -| Is folder | 2 | 0 or 1 | Is the following file path a folder | -| Path item count | 2 | | Number of items in the path | -| File name path… | | | | +| Description | Size | Data | Note | +|-----------------|------|--------|---------------------------------------------------------------| +| Data size | 2 | | Size of this structure (not including data size element itself) | +| Is folder | 2 | 0 or 1 | Is the following file path a folder | +| Path item count | 2 | | Number of items in the path | +| File name path… | | | | File name path contains: -| Description | Size | Data | Note | -|-------------|------|------|------| -| | 2 | 0 | Currently 0 | -| Name size | 1 | | | -| File/folder name | size | | | +| Description | Size | Data | Note | +|------------------|------|------|-------------| +| | 2 | 0 | Currently 0 | +| Name size | 1 | | | +| File/folder name | size | | | After every file, server can send one of 3 requests: **(1) Request next file:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 3 | Next file action (3) | +| Description | Size | Data | Note | +|------------------------|------|------|----------------------| +| Download folder action | 2 | 3 | Next file action (3) | **(2) Resume a file download procedure:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 2 | Resume file transfer (2) | -| Resume data size | 2 | | | -| File resume data | size | | See content for field (203) | +| Description | Size | Data | Note | +|------------------------|------|------|-----------------------------| +| Download folder action | 2 | 2 | Resume file transfer (2) | +| Resume data size | 2 | | | +| File resume data | size | | See content for field (203) | **(3) Request a file download:** -| Description | Size | Data | Note | -|-------------|------|------|------| -| Download folder action | 2 | 1 | Send file action (1) starts file download | +| Description | Size | Data | Note | +|------------------------|------|------|-------------------------------------------| +| Download folder action | 2 | 1 | Send file action (1) starts file download | Client replies to download requests with: -| Description | Size | Data | Note | -|-------------|------|------|------| -| File size | 4 | | Current file size | +| Description | Size | Data | Note | +|-------------|------|------|-------------------| +| File size | 4 | | Current file size | After this client sends the flattened file object (see Flattened File Object). @@ -1158,9 +1158,9 @@ Request the list of all users connected to the current server. **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 300 | User name with info | Optional | +| ID | Field Name | Note | +|------|----------------------|--------------------------------------| +| 300 | User name with info | Optional | | 300… | User name with info… | Optional - More user names with info | --- @@ -1174,12 +1174,12 @@ Notify the user that the information for some another user changed, or that a ne **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | -| 104 | User icon ID | | -| 112 | User flags | | -| 102 | User name | | +| ID | Field Name | Note | +|-----|--------------|------| +| 103 | User ID | | +| 104 | User icon ID | | +| 112 | User flags | | +| 102 | User name | | **Reply is not sent.** @@ -1196,9 +1196,9 @@ Notify the user that some another user disconnected from the server. The client **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 103 | User ID | | **Reply is not sent.** @@ -1214,16 +1214,16 @@ Request user information for the specific user. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 103 | User ID | | +| ID | Field Name | Note | +|-----|------------|------| +| 103 | User ID | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 102 | User name | | -| 101 | Data | User info text string | +| ID | Field Name | Note | +|-----|------------|-----------------------| +| 102 | User name | | +| 101 | Data | User info text string | --- @@ -1236,12 +1236,12 @@ Set user preferences on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 102 | User name | | -| 104 | User icon ID | | -| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | -| 215 | Automatic response | Optional - Automatic response string used only if the options field indicates this feature | +| ID | Field Name | Note | +|-----|--------------------|---------------------------------------------------------------------------------------------| +| 102 | User name | | +| 104 | User icon ID | | +| 113 | Options | Bitmap: Automatic response (4), Refuse private chat (2), Refuse private message (1) | +| 215 | Automatic response | Optional - Automatic response string used only if the options field indicates this feature | **Reply is not expected.** @@ -1256,12 +1256,12 @@ Add a new user to the server's list of allowed users. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 105 | User login | | -| 106 | User password | | -| 102 | User name | | -| 110 | User access | User access privileges bitmap (see Access Privileges) | +| ID | Field Name | Note | +|-----|---------------|-------------------------------------------------------| +| 105 | User login | | +| 106 | User password | | +| 102 | User name | | +| 110 | User access | User access privileges bitmap (see Access Privileges) | **Fields used in the reply:** None @@ -1276,9 +1276,9 @@ Delete the specific user from the server's list of allowed users. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 105 | User login | | +| ID | Field Name | Note | +|-----|------------|------| +| 105 | User login | | **Fields used in the reply:** None @@ -1293,18 +1293,18 @@ Request the information for the specific user from the server's list of allowed **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 105 | User login | | +| ID | Field Name | Note | +|-----|------------|------| +| 105 | User login | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 102 | User name | | -| 105 | User login | Every character in this string is negated (login[i] = ~login[i]) | -| 106 | User password | | -| 110 | User access | User access privileges bitmap (see Access Privileges) | +| ID | Field Name | Note | +|-----|---------------|-------------------------------------------------------------------| +| 102 | User name | | +| 105 | User login | Every character in this string is negated (login[i] = ~login[i]) | +| 106 | User password | | +| 110 | User access | User access privileges bitmap (see Access Privileges) | --- @@ -1317,12 +1317,12 @@ Set the information for the specific user in the server's list of allowed users. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 105 | User login | | -| 106 | User password | | -| 102 | User name | | -| 110 | User access | User access privileges bitmap (see Access Privileges) | +| ID | Field Name | Note | +|-----|---------------|-------------------------------------------------------| +| 105 | User login | | +| 106 | User password | | +| 102 | User name | | +| 110 | User access | User access privileges bitmap (see Access Privileges) | **Fields used in the reply:** None @@ -1337,8 +1337,8 @@ Set access privileges for the current user. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|-------------|-------------------------------------------------------| | 110 | User access | User access privileges bitmap (see Access Privileges) | **Reply is not sent.** @@ -1355,9 +1355,9 @@ Broadcast the message to all users on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | | +| ID | Field Name | Note | +|-----|------------|------| +| 101 | Data | | **Fields used in the reply:** None @@ -1367,9 +1367,9 @@ The server can also be an initiator of this transaction. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 101 | Data | Administrator message | +| ID | Field Name | Note | +|-----|------------|-----------------------| +| 101 | Data | Administrator message | **Reply is not sent.** @@ -1384,23 +1384,23 @@ Get the list of category names at the specified news path. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | Optional | +| ID | Field Name | Note | +|-----|------------|----------| +| 325 | News path | Optional | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 323 | News category list data | Optional | -| 323… | News category list data… | Optional - More news categories | +| ID | Field Name | Note | +|------|---------------------------|----------------------------------| +| 323 | News category list data | Optional | +| 323… | News category list data… | Optional - More news categories | If version of client/server is 1.5 (prior to April 15, 1999?), instead of the previous reply, the following is sent: -| ID | Field Name | Note | -|----|------------|------| -| 320 | News category list data | Optional | -| 320… | News category list data… | Optional - More news categories | +| ID | Field Name | Note | +|------|---------------------------|----------------------------------| +| 320 | News category list data | Optional | +| 320… | News category list data… | Optional - More news categories | --- @@ -1413,14 +1413,14 @@ Get the list of article names at the specified news path. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | Optional | +| ID | Field Name | Note | +|-----|------------|----------| +| 325 | News path | Optional | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| +| ID | Field Name | Note | +|-----|------------------------|----------| | 321 | News article list data | Optional | --- @@ -1435,9 +1435,9 @@ Delete an existing news item from the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | | +| ID | Field Name | Note | +|-----|------------|------| +| 325 | News path | | **Fields used in the reply:** None @@ -1453,10 +1453,10 @@ Create new news folder on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 201 | File name | | -| 325 | News path | | +| ID | Field Name | Note | +|-----|------------|------| +| 201 | File name | | +| 325 | News path | | **Fields used in the reply:** None @@ -1472,10 +1472,10 @@ Create new news category on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 322 | News category name | | -| 325 | News path | | +| ID | Field Name | Note | +|-----|--------------------| -----| +| 322 | News category name | | +| 325 | News path | | **Fields used in the reply:** None @@ -1491,25 +1491,25 @@ Request information about the specific news article. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | | -| 326 | News article ID | | -| 327 | News article data flavor | | +| ID | Field Name | Note | +|-----|--------------------------|------| +| 325 | News path | | +| 326 | News article ID | | +| 327 | News article data flavor | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| 328 | News article title | | -| 329 | News article poster | | -| 330 | News article date | | -| 331 | Previous article ID | | -| 332 | Next article ID | | -| 335 | Parent article ID | | -| 336 | First child article ID | | -| 327 | News article data flavor | Should be "text/plain" - Other values are currently ignored | -| 333 | News article data | Optional (if data flavor is "text/plain") | +| ID | Field Name | Note | +|-----|--------------------------|--------------------------------------------------------------| +| 328 | News article title | | +| 329 | News article poster | | +| 330 | News article date | | +| 331 | Previous article ID | | +| 332 | Next article ID | | +| 335 | Parent article ID | | +| 336 | First child article ID | | +| 327 | News article data flavor | Should be "text/plain" - Other values are currently ignored | +| 333 | News article data | Optional (if data flavor is "text/plain") | --- @@ -1523,14 +1523,14 @@ Post new news article on the server. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | | -| 326 | News article ID | ID of the parent article? | -| 328 | News article title | | -| 334 | News article flags | | -| 327 | News article data flavor | Currently "text/plain" | -| 333 | News article data | | +| ID | Field Name | Note | +|-----|--------------------------|---------------------------| +| 325 | News path | | +| 326 | News article ID | ID of the parent article? | +| 328 | News article title | | +| 334 | News article flags | | +| 327 | News article data flavor | Currently "text/plain" | +| 333 | News article data | | **Fields used in the reply:** None @@ -1546,11 +1546,11 @@ Delete the specific news article. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| 325 | News path | | -| 326 | News article ID | | -| 337 | News article – recursive delete | Delete child articles (1) or not (0) | +| ID | Field Name | Note | +|-----|----------------------------------|--------------------------------------| +| 325 | News path | | +| 326 | News article ID | | +| 337 | News article – recursive delete | Delete child articles (1) or not (0) | **Fields used in the reply:** None @@ -1562,46 +1562,46 @@ Transactions 202 (Download File), 203 (Upload File), 210 (Download Folder) and 2 ### Flat File Header -| Description | Size | Data | Note | -|-------------|------|------|------| -| Format | 4 | 'FILP' | 0x46494C50 | -| Version | 2 | 1 | | -| RSVD | 16 | | | -| Fork count | 2 | 2 | | +| Description | Size | Data | Note | +|-------------|------|--------|------------| +| Format | 4 | 'FILP' | 0x46494C50 | +| Version | 2 | 1 | | +| RSVD | 16 | | | +| Fork count | 2 | 2 | | ### Flat File Information Fork Header -| Description | Size | Data | Note | -|-------------|------|------|------| -| Fork type | 4 | 'INFO' | 0x494E464F | -| Compression type | 4 | 0 | Currently no compression | -| RSVD | 4 | | | -| Data size | 4 | | Size of the flat file information fork | +| Description | Size | Data | Note | +|------------------|------|--------|----------------------------------------| +| Fork type | 4 | 'INFO' | 0x494E464F | +| Compression type | 4 | 0 | Currently no compression | +| RSVD | 4 | | | +| Data size | 4 | | Size of the flat file information fork | ### Flat File Information Fork -| Description | Size | Data | Note | -|-------------|------|------|------| -| Platform | 4 | 'AMAC' or 'MWIN' | Operating system used | -| Type signature | 4 | | File type signature | -| Creator signature | 4 | | File creator signature | -| Flags | 4 | | | -| Platform flags | 4 | | | -| RSVD | 32 | | | -| Create date | 8 | | See description for the File Create Date field (208) | -| Modify date | 8 | | See description for the File Modify Date field (209) | -| Name script | 2 | | | -| Name size | 2 | | | -| Name | size | | Maximum 128 characters | +| Description | Size | Data | Note | +|-------------------|------|------------------|-------------------------------------------------------| +| Platform | 4 | 'AMAC' or 'MWIN' | Operating system used | +| Type signature | 4 | | File type signature | +| Creator signature | 4 | | File creator signature | +| Flags | 4 | | | +| Platform flags | 4 | | | +| RSVD | 32 | | | +| Create date | 8 | | See description for the File Create Date field (208) | +| Modify date | 8 | | See description for the File Modify Date field (209) | +| Name script | 2 | | | +| Name size | 2 | | | +| Name | size | | Maximum 128 characters | ### Flat File Data Fork Header -| Description | Size | Data | Note | -|-------------|------|------|------| -| Fork type | 4 | 'DATA' | 0x44415441 | -| Compression type | 4 | 0 | Currently no compression | -| RSVD | 4 | | | -| Data size | 4 | | Actual file content size | +| Description | Size | Data | Note | +|------------------|------|--------|---------------------------| +| Fork type | 4 | 'DATA' | 0x44415441 | +| Compression type | 4 | 0 | Currently no compression | +| RSVD | 4 | | | +| Data size | 4 | | Actual file content size | --- @@ -1663,12 +1663,12 @@ This field is represented as 64-bit bitmap. The specific bit meaning is describe User flags field is a bitmap with the following values: -| Bit | Value | Description | -|-----|-------|-------------| -| 0 | 1 | User is away | -| 1 | 2 | User is admin (or disconnected?) | -| 2 | 4 | User refuses private messages | -| 3 | 8 | User refuses private chat | +| Bit | Value | Description | +|-----|-------|-----------------------------------| +| 0 | 1 | User is away | +| 1 | 2 | User is admin (or disconnected?) | +| 2 | 4 | User refuses private messages | +| 3 | 8 | User refuses private chat | ### Options (113) - **Constant:** myField_Options @@ -1701,11 +1701,11 @@ This field can have one of the following values: | Value | Equivalent Value | Description | |-------|------------------|-------------| -| 1 | 'URL ' | URL link | -| 3 | 'JPEG' | JPEG file | -| 4 | 'GIFf' | GIF file | -| 5 | 'BMP ' | BMP file | -| 6 | 'PICT' | PICT file | +| 1 | 'URL ' | URL link | +| 3 | 'JPEG' | JPEG file | +| 4 | 'GIFf' | GIF file | +| 5 | 'BMP ' | BMP file | +| 6 | 'PICT' | PICT file | ### Server Banner URL (153) - **Constant:** myField_ServerBannerUrl @@ -1735,15 +1735,15 @@ The value of this field is 1 if there is no agreement to be sent. File name with info field content is presented in this structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Type | 4 | | Folder ('fldr') or other | -| Creator | 4 | | | -| File size | 4 | | | -| | 4 | | Reserved? | -| Name script | 2 | | | -| Name size | 2 | | | -| Name data | size | | | +| Description | Size | Data | Note | +|-------------|------|------|--------------------------| +| Type | 4 | | Folder ('fldr') or other | +| Creator | 4 | | | +| File size | 4 | | | +| | 4 | | Reserved? | +| Name script | 2 | | | +| Name size | 2 | | | +| Name data | size | | | ### File Name (201) - **Constant:** myField_FileName @@ -1759,22 +1759,22 @@ File name with info field content is presented in this structure: File resume data field content is presented in this structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Format | 4 | 'RFLT' | | -| Version | 2 | 1 | Currently 1 | -| RSVD | 34 | | ? | -| Fork count | 2 | 2 | Currently 2 | -| Fork info list… | | | | +| Description | Size | Data | Note | +|------------------|------|--------|-------------| +| Format | 4 | 'RFLT' | | +| Version | 2 | 1 | Currently 1 | +| RSVD | 34 | | ? | +| Fork count | 2 | 2 | Currently 2 | +| Fork info list… | | | | Fork info list contains one or more records with the following structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Fork | 4 | 'DATA' | | -| Data size | 4 | | Current file size | -| RSVD A | 4 | | ? | -| RSVD B | 4 | | ? | +| Description | Size | Data | Note | +|-------------|------|--------|-------------------| +| Fork | 4 | 'DATA' | | +| Data size | 4 | | Current file size | +| RSVD A | 4 | | ? | +| RSVD B | 4 | | ? | ### File Transfer Options (204) - **Constant:** myField_FileXferOptions @@ -1796,21 +1796,21 @@ Fork info list contains one or more records with the following structure: - **Constant:** myField_FileCreateDate - **Type:** Binary -| Description | Size | Data | Note | -|-------------|------|------|------| -| Year | 2 | | | -| Milliseconds | 2 | | | -| Seconds | 4 | | | +| Description | Size | Data | Note | +|--------------|------|------|------| +| Year | 2 | | | +| Milliseconds | 2 | | | +| Seconds | 4 | | | ### File Modify Date (209) - **Constant:** myField_FileModifyDate - **Type:** Binary -| Description | Size | Data | Note | -|-------------|------|------|------| -| Year | 2 | | | -| Milliseconds | 2 | | | -| Seconds | 4 | | | +| Description | Size | Data | Note | +|--------------|------|------|------| +| Year | 2 | | | +| Milliseconds | 2 | | | +| Seconds | 4 | | | ### File Comment (210) - **Constant:** myField_FileComment @@ -1828,9 +1828,9 @@ Fork info list contains one or more records with the following structure: - **Constant:** myField_FileType - **Type:** Binary -| Description | Size | Data | Note | -|-------------|------|------|------| -| File type | 4 | | File type code ('fldr' or other) | +| Description | Size | Data | Note | +|-------------|------|------|----------------------------------| +| File type | 4 | | File type code ('fldr' or other) | ### Quoting Message (214) - **Constant:** myField_QuotingMsg @@ -1848,13 +1848,13 @@ Fork info list contains one or more records with the following structure: - **Constant:** myField_UserNameWithInfo - **Type:** Binary -| Description | Size | Data | Note | -|-------------|------|------|------| -| User ID | 2 | | | -| Icon ID | 2 | | | -| User flags | 2 | | | -| User name size | 2 | | | -| User name | size | | User name string | +| Description | Size | Data | Note | +|----------------|------|------|------------------| +| User ID | 2 | | | +| Icon ID | 2 | | | +| User flags | 2 | | | +| User name size | 2 | | | +| User name | size | | User name string | ### News Category GUID (319) - **Constant:** myField_NewsCatGUID @@ -1865,10 +1865,10 @@ Fork info list contains one or more records with the following structure: News category list data field contains this structure (for client/server version 1.5): -| Description | Size | Data | Note | -|-------------|------|------|------| -| Type | 1 | 1, 10 or 255 | Category folder (1), category (10) or other (255) | -| Category name | rest | | | +| Description | Size | Data | Note | +|---------------|------|--------------|---------------------------------------------------| +| Type | 1 | 1, 10 or 255 | Category folder (1), category (10) or other (255) | +| Category name | rest | | | ### News Article List Data (321) - **Constant:** myField_NewsArtListData @@ -1876,38 +1876,38 @@ News category list data field contains this structure (for client/server version News article list data field contains this structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| ID | 4 | | | -| Article count | 4 | | Number of articles | -| Name size | 1 | | | -| Name | size | | Name string | -| Description size | 1 | | | -| Description | size | | Description string | -| List of articles… | | | Optional (if article count > 0) | +| Description | Size | Data | Note | +|--------------------|------|------|---------------------------------| +| ID | 4 | | | +| Article count | 4 | | Number of articles | +| Name size | 1 | | | +| Name | size | | Name string | +| Description size | 1 | | | +| Description | size | | Description string | +| List of articles… | | | Optional (if article count > 0) | List of articles contains: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Article ID | 4 | | | -| Time stamp | 8 | | Year (2 bytes), milliseconds (2 bytes) and seconds (4 bytes) | -| Parent article ID | 4 | | | -| Article flags | 4 | | | -| Flavor count | 2 | | | -| Title size | 1 | | | -| Title | size | | Title string | -| Poster size | 1 | | | -| Poster | size | | Poster string | -| Flavor list… | | | Optional (if flavor count > 0) | +| Description | Size | Data | Note | +|-------------------|------|------|--------------------------------------------------------------| +| Article ID | 4 | | | +| Time stamp | 8 | | Year (2 bytes), milliseconds (2 bytes) and seconds (4 bytes) | +| Parent article ID | 4 | | | +| Article flags | 4 | | | +| Flavor count | 2 | | | +| Title size | 1 | | | +| Title | size | | Title string | +| Poster size | 1 | | | +| Poster | size | | Poster string | +| Flavor list… | | | Optional (if flavor count > 0) | Flavor list has the following structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Flavor size | 1 | | | -| Flavor text | size | | MIME type string | -| Article size | 2 | | | +| Description | Size | Data | Note | +|--------------|------|------|------------------| +| Flavor size | 1 | | | +| Flavor text | size | | MIME type string | +| Article size | 2 | | | ### News Category Name (322) - **Constant:** myField_NewsCatName @@ -1919,28 +1919,28 @@ Flavor list has the following structure: News category list data field contains this structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Type | 2 | 2 or 3 | Bundle (2) or category (3) | +| Description | Size | Data | Note | +|-------------|------|--------|----------------------------| +| Type | 2 | 2 or 3 | Bundle (2) or category (3) | If type value indicates a bundle, what follows the type is: | Description | Size | Data | Note | |-------------|------|------|------| -| Count | 2 | | | -| Name size | 1 | | | -| Name data | size | | | +| Count | 2 | | | +| Name size | 1 | | | +| Name data | size | | | In the case of a category type, type value is followed by: | Description | Size | Data | Note | |-------------|------|------|------| -| Count | 2 | | | -| GUID | | | | -| Add SN | 4 | | | -| Delete SN | 4 | | | -| Name size | 1 | | | -| Name data | size | | | +| Count | 2 | | | +| GUID | | | | +| Add SN | 4 | | | +| Delete SN | 4 | | | +| Name size | 1 | | | +| Name data | size | | | ### News Path (325) - **Constant:** myField_NewsPath @@ -1966,11 +1966,11 @@ In the case of a category type, type value is followed by: - **Constant:** myField_NewsArtDate - **Type:** Binary -| Description | Size | Data | Note | -|-------------|------|------|------| -| Year | 2 | | | -| Milliseconds | 2 | | | -| Seconds | 4 | | | +| Description | Size | Data | Note | +|--------------|------|------|------| +| Year | 2 | | | +| Milliseconds | 2 | | | +| Seconds | 4 | | | ### News Article – Previous Article (331) - **Constant:** myField_NewsArtPrevArt @@ -2006,46 +2006,46 @@ In the case of a category type, type value is followed by: The following is the list of access privileges currently employed by the application. There are 3 types of access privileges: **general**, **folder** and **bundle**. Folder privileges are set per folder. Bundle access is related to the logical grouping of the information. General access privileges are used to set privileges for a user. -| Bit | Name | Constant | Type | -|-----|------|----------|------| -| 0 | Delete File | myAcc_DeleteFile | folder | -| 1 | Upload File | myAcc_UploadFile | folder, general | -| 2 | Download File | myAcc_DownloadFile | folder, general | -| 3 | Rename File | myAcc_RenameFile | | -| 4 | Move File | myAcc_MoveFile | | -| 5 | Create Folder | myAcc_CreateFolder | folder | -| 6 | Delete Folder | myAcc_DeleteFolder | folder | -| 7 | Rename Folder | myAcc_RenameFolder | | -| 8 | Move Folder | myAcc_MoveFolder | | -| 9 | Read Chat | myAcc_ReadChat | general | -| 10 | Send Chat | myAcc_SendChat | general | -| 11 | Open Chat | myAcc_OpenChat | | -| 12 | Close Chat | myAcc_CloseChat | | -| 13 | Show in List | myAcc_ShowInList | | -| 14 | Create User | myAcc_CreateUser | | -| 15 | Delete User | myAcc_DeleteUser | | -| 16 | Open User | myAcc_OpenUser | | -| 17 | Modify User | myAcc_ModifyUser | | -| 18 | Change Own Password | myAcc_ChangeOwnPass | | -| 19 | Send Private Message | myAcc_SendPrivMsg | | -| 20 | News Read Article | myAcc_NewsReadArt | bundle, general | -| 21 | News Post Article | myAcc_NewsPostArt | general, bundle | -| 22 | Disconnect User | myAcc_DisconUser | general | -| 23 | Cannot be Disconnected | myAcc_CannotBeDiscon | | -| 24 | Get Client Info | myAcc_GetClientInfo | general | -| 25 | Upload Anywhere | myAcc_UploadAnywhere | | -| 26 | Any Name | myAcc_AnyName | general | -| 27 | No Agreement | myAcc_NoAgreement | | -| 28 | Set File Comment | myAcc_SetFileComment | folder | -| 29 | Set Folder Comment | myAcc_SetFolderComment | folder | -| 30 | View Drop Boxes | myAcc_ViewDropBoxes | | -| 31 | Make Alias | myAcc_MakeAlias | folder | -| 32 | Broadcast | myAcc_Broadcast | general | -| 33 | News Delete Article | myAcc_NewsDeleteArt | bundle | -| 34 | News Create Category | myAcc_NewsCreateCat | bundle | -| 35 | News Delete Category | myAcc_NewsDeleteCat | bundle | -| 36 | News Create Folder | myAcc_NewsCreateFldr | bundle | -| 37 | News Delete Folder | myAcc_NewsDeleteFldr | bundle | +| Bit | Name | Constant | Type | +|-----|------------------------|------------------------|-----------------| +| 0 | Delete File | myAcc_DeleteFile | folder | +| 1 | Upload File | myAcc_UploadFile | folder, general | +| 2 | Download File | myAcc_DownloadFile | folder, general | +| 3 | Rename File | myAcc_RenameFile | | +| 4 | Move File | myAcc_MoveFile | | +| 5 | Create Folder | myAcc_CreateFolder | folder | +| 6 | Delete Folder | myAcc_DeleteFolder | folder | +| 7 | Rename Folder | myAcc_RenameFolder | | +| 8 | Move Folder | myAcc_MoveFolder | | +| 9 | Read Chat | myAcc_ReadChat | general | +| 10 | Send Chat | myAcc_SendChat | general | +| 11 | Open Chat | myAcc_OpenChat | | +| 12 | Close Chat | myAcc_CloseChat | | +| 13 | Show in List | myAcc_ShowInList | | +| 14 | Create User | myAcc_CreateUser | | +| 15 | Delete User | myAcc_DeleteUser | | +| 16 | Open User | myAcc_OpenUser | | +| 17 | Modify User | myAcc_ModifyUser | | +| 18 | Change Own Password | myAcc_ChangeOwnPass | | +| 19 | Send Private Message | myAcc_SendPrivMsg | | +| 20 | News Read Article | myAcc_NewsReadArt | bundle, general | +| 21 | News Post Article | myAcc_NewsPostArt | general, bundle | +| 22 | Disconnect User | myAcc_DisconUser | general | +| 23 | Cannot be Disconnected | myAcc_CannotBeDiscon | | +| 24 | Get Client Info | myAcc_GetClientInfo | general | +| 25 | Upload Anywhere | myAcc_UploadAnywhere | | +| 26 | Any Name | myAcc_AnyName | general | +| 27 | No Agreement | myAcc_NoAgreement | | +| 28 | Set File Comment | myAcc_SetFileComment | folder | +| 29 | Set Folder Comment | myAcc_SetFolderComment | folder | +| 30 | View Drop Boxes | myAcc_ViewDropBoxes | | +| 31 | Make Alias | myAcc_MakeAlias | folder | +| 32 | Broadcast | myAcc_Broadcast | general | +| 33 | News Delete Article | myAcc_NewsDeleteArt | bundle | +| 34 | News Create Category | myAcc_NewsCreateCat | bundle | +| 35 | News Delete Category | myAcc_NewsDeleteCat | bundle | +| 36 | News Create Folder | myAcc_NewsCreateFldr | bundle | +| 37 | News Delete Folder | myAcc_NewsDeleteFldr | bundle | --- @@ -2094,49 +2094,49 @@ All string values use 8-bit ASCII character set encoding. After establishing a connection with tracker, the following information is sent: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Magic number | 4 | 'HTRK' | | -| Version | 2 | 1 or 2 | Old protocol (1) or new (2) | +| Description | Size | Data | Note | +|--------------|------|--------|-----------------------------| +| Magic number | 4 | 'HTRK' | | +| Version | 2 | 1 or 2 | Old protocol (1) or new (2) | When version number is 2, request also includes additional data: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Login size | 1 | >= 31 | Login string size | -| Login | size | | Login string (padded with 0) | -| Password size | 1 | >= 31 | Password string size | -| Password | size | | Password string (padded with 0) | +| Description | Size | Data | Note | +|---------------|------|-------|------------------------------| +| Login size | 1 | >= 31 | Login string size | +| Login | size | | Login string (padded with 0) | +| Password size | 1 | >= 31 | Password string size | +| Password | size | | Password string (padded with 0) | Reply received from the tracker starts with a header: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Magic number | 4 | 'HTRK' | 0x4854524B | -| Version | 2 | 1 or 2 | Old protocol (1) or new (2) | +| Description | Size | Data | Note | +|--------------|------|--------|-----------------------------| +| Magic number | 4 | 'HTRK' | 0x4854524B | +| Version | 2 | 1 or 2 | Old protocol (1) or new (2) | Server information header follows: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Message type | 2 | 1 | Sending list of servers | -| Message data size | 2 | | Remaining size of this request | -| Number of servers | 2 | | Number of servers in the server list | -| Number of servers | 2 | | Same as previous field | -| Server list… | | | | +| Description | Size | Data | Note | +|-------------------|------|------|---------------------------------------| +| Message type | 2 | 1 | Sending list of servers | +| Message data size | 2 | | Remaining size of this request | +| Number of servers | 2 | | Number of servers in the server list | +| Number of servers | 2 | | Same as previous field | +| Server list… | | | | A record in the server list has the following structure: -| Description | Size | Data | Note | -|-------------|------|------|------| -| IP address | 4 | | Server's IP address | -| IP port number | 2 | | Server's IP port number | -| Number of users | 2 | | Number of users connected to this particular server | -| | 2 | 0 | | -| Name size | 1 | | Server's name string size | -| Name | size | | Server's name | -| Description size | 1 | | Server's description string size | -| Description | size | | Description of the server | +| Description | Size | Data | Note | +|------------------|------|------|-----------------------------------------------------| +| IP address | 4 | | Server's IP address | +| IP port number | 2 | | Server's IP port number | +| Number of users | 2 | | Number of users connected to this particular server | +| | 2 | 0 | | +| Name size | 1 | | Server's name string size | +| Name | size | | Server's name | +| Description size | 1 | | Server's description string size | +| Description | size | | Description of the server | If the number of servers in the server list is less than number of servers specified in the server information header, client will expect an additional server information, starting with the new server information header. The field containing number of servers in the new header should have the same value as the previous one. @@ -2146,33 +2146,33 @@ When a client is connected to the tracker over the HTTP tunneling protocol, the Server sets up UDP port that is used to periodically send the following information to the trackers: -| Description | Size | Data | Note | -|-------------|------|------|------| -| | 2 | 1 | | -| IP port number | 2 | | Server's listening UDP port number | -| Number of users | 2 | | Number of users connected to this particular server | -| | 2 | 0 | | -| Pass ID | 4 | | Random number generated by the server | -| Name size | 1 | | Server's name string size | -| Name | size | | Server's name | -| Description size | 1 | | Server's description string size | -| Description | size | | Description of the server | +| Description | Size | Data | Note | +|------------------|------|------|-----------------------------------------------------| +| | 2 | 1 | | +| IP port number | 2 | | Server's listening UDP port number | +| Number of users | 2 | | Number of users connected to this particular server | +| | 2 | 0 | | +| Pass ID | 4 | | Random number generated by the server | +| Name size | 1 | | Server's name string size | +| Name | size | | Server's name | +| Description size | 1 | | Server's description string size | +| Description | size | | Description of the server | In the case when old (?) tracker is used, the additional information is formatted as follows: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Password size | 1 | | Server's tracker password string size | -| Password | size | | Server's tracker password | +| Description | Size | Data | Note | +|---------------|------|------|---------------------------------------| +| Password size | 1 | | Server's tracker password string size | +| Password | size | | Server's tracker password | For a new version of the tracker: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Login size | 1 | | Server's tracker login string size | -| Login | size | | Server's tracker login | -| Password size | 1 | | Server's tracker password string size | -| Password | size | | Server's tracker password | +| Description | Size | Data | Note | +|---------------|------|------|---------------------------------------| +| Login size | 1 | | Server's tracker login string size | +| Login | size | | Server's tracker login | +| Password size | 1 | | Server's tracker password string size | +| Password | size | | Server's tracker password | --- @@ -2241,11 +2241,11 @@ tracker.com:5497 Additional header precedes every transaction that is sent over these two connections: -| Description | Size | Data | Note | -|-------------|------|------|------| -| Data code | 4 | | Disconnect (0), data (1), padding (2) | -| Data size | 4 | | | -| Data… | size | | | +| Description | Size | Data | Note | +|-------------|------|------|---------------------------------------| +| Data code | 4 | | Disconnect (0), data (1), padding (2) | +| Data size | 4 | | | +| Data… | size | | | Data content depends on the data code specified: - **Code 1 (http_Data):** Transaction data as described in this specification (includes tracker protocol) @@ -2262,22 +2262,22 @@ Hotline servers will be able to create an account on the global server by provid Global server will provide servers with the ability to store a predefined set of data fields: -| Data | Options | Note | -|------|---------|------| -| Server ID | | Assigned by the global server | -| Server name | | Used as login | -| Access password | | | -| Server alias | | Region specific alias | -| Description | | | -| Classification | | | -| Icon | | Graphical icon | -| Rating | | | -| Public encryption key | | | -| IP address | Original, Current | Include the port number | -| Attributes | Searchable, Allow rating | | -| Status flags | Active, On-line | Active or not, On-line or off-line | -| Number of users | | | -| Date | Account created, Last access | | +| Data | Options | Note | +|-----------------------|------------------------------|------------------------------------| +| Server ID | | Assigned by the global server | +| Server name | | Used as login | +| Access password | | | +| Server alias | | Region specific alias | +| Description | | | +| Classification | | | +| Icon | | Graphical icon | +| Rating | | | +| Public encryption key | | | +| IP address | Original, Current | Include the port number | +| Attributes | Searchable, Allow rating | | +| Status flags | Active, On-line | Active or not, On-line or off-line | +| Number of users | | | +| Date | Account created, Last access | | ### 1.2 Global Server Transactions @@ -2289,11 +2289,11 @@ This transaction is used every time the server logins to the global server. It m **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| | Server name | | -| | Access password | | -| | New account indicator | Optional - Indicates if this is a new account | +| ID | Field Name | Note | +|----|-----------------------|-----------------------------------------------| +| | Server name | | +| | Access password | | +| | New account indicator | Optional - Indicates if this is a new account | **Fields used in the reply:** None @@ -2307,18 +2307,18 @@ Update server information on the global server. All fields in this request are o **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| | Access password | | -| | Server name | | -| | Server alias | | -| | Description | | -| | Classification | | -| | Icon | | -| | Attributes | | -| | Status flags | | -| | IP port number | Hotline protocol port number | -| | Number of users | Current number of users | +| ID | Field Name | Note | +|----|-----------------|------------------------------| +| | Access password | | +| | Server name | | +| | Server alias | | +| | Description | | +| | Classification | | +| | Icon | | +| | Attributes | | +| | Status flags | | +| | IP port number | Hotline protocol port number | +| | Number of users | Current number of users | **Fields used in the reply:** None @@ -2331,9 +2331,9 @@ Delete server account from the database. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| | Server name | | +| ID | Field Name | Note | +|----|-------------|------| +| | Server name | | **Fields used in the reply:** None @@ -2343,10 +2343,10 @@ Delete server account from the database. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| | Server name | | -| | Rating | | +| ID | Field Name | Note | +|----|-------------|------| +| | Server name | | +| | Rating | | **Fields used in the reply:** None @@ -2358,17 +2358,17 @@ Create a query for the server database. All fields in this request are optional. **Fields used in the request:** -| ID | Field Name | Note | -|----|------------|------| -| | Search string | Optional | -| | Classification | Optional | +| ID | Field Name | Note | +|----|----------------|----------| +| | Search string | Optional | +| | Classification | Optional | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| | Server ID | | -| | Server ID… | Optional - More server IDs | +| ID | Field Name | Note | +|----|-------------|----------------------------| +| | Server ID | | +| | Server ID… | Optional - More server IDs | #### 1.2.6 Get Server Information @@ -2380,17 +2380,17 @@ Get information about the specific server. | ID | Field Name | Note | |----|------------|------| -| | Server ID | | +| | Server ID | | **Fields used in the reply:** -| ID | Field Name | Note | -|----|------------|------| -| | Server name | | -| | Server alias | | -| | Description | | -| | Current IP address | Including port number | -| | Classification | | -| | Icon | | -| | Status flags | | -| | Number of users | | +| ID | Field Name | Note | +|----|--------------------|-----------------------| +| | Server name | | +| | Server alias | | +| | Description | | +| | Current IP address | Including port number | +| | Classification | | +| | Icon | | +| | Status flags | | +| | Number of users | | |