HL Protocol
From Hotline Wiki
Jump to navigationJump to search
Core Documentation
Technical Specifications
Binary & Data
External Networking
Assets
Hotline Network Protocol – Version 1.9
Property of Hotsprings Inc. Publicly licensed under the GPL
Introduction
Hotline client is an application providing user interface for end-user services (chat, messaging, file services and other). Hotline server provides services and facilitates communication between all clients.
Port Assignments
Additional port numbers are determined by using the base port number:
| 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 |
Note: Numeric data is always in network byte order (big-endian).
Technical Documentation Index
Core Protocol
- Transactions – The master list of all 411 Transaction IDs and their constants.
- TransactionFields – Detailed list of Field IDs (100–337) and data types.
- AccessPriviledges – The 64-bit access privilege bitmap breakdown.
- TransactionSequence – Logic for Login and Invite-to-Chat sequences.
Data Structures
- BinaryStructure – Details on the Flattened File Object (FILP) and Resume data (RFLT).
- NewsStructure – Binary headers for news categories, articles, and posters.
External Interfaces
- TrackerInterface – How servers register with and clients query the Tracker (HTRK).
- HTTPTunneling – Encapsulation logic for GET/POST proxy traversal.
- GlobalServerTransactions – Management and querying of the Global Server database.
Session Initialization
After establishing TCP connection, both client and server start the TRTP handshake.
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 |
Server Reply
| Description | Size | Data | Note |
|---|---|---|---|
| Protocol ID | 4 | 'TRTP' | 0x54525450 |
| Error code | 4 | 0 = no error |