aboutsummaryrefslogtreecommitdiff
path: root/hotline/tracker.go
AgeCommit message (Collapse)Author
2025-11-25Add TLS port field to tracker registration protocolJeff Halter
Repurpose the previously unused 2-byte field in the tracker protocol to advertise the server's TLS port. This allows clients to discover which servers support TLS connections. Note: currently only the official, original, 1990's Tracker software sends this server provided 2-byte field to tracker clients. I'm adding this to Mobius in the hope that the modern day trackers might update their behavior to match the original software, which would put these unused 2 bytes to a useful purpose.
2025-11-24Fix tracker server list parsing for batched responsesJeff Halter
The tracker protocol splits large server lists into batches, with each batch preceded by a ServerInfoHeader. Previously, GetListing only read the initial header and failed when encountering subsequent headers mid-stream, causing the scanner to misinterpret header bytes as server record data. Changes: - Refactored GetListing to use bufio.Reader instead of bufio.Scanner to handle heterogeneous data (headers and server records) - Added readServerRecord helper function for sequential reading - Renamed ServerInfoHeader.SrvCountDup to BatchSize for clarity - Added comprehensive documentation explaining the batching protocol - Removed unused serverScanner function and tests - Added table tests covering multiple batch scenarios The BatchSize field indicates the number of servers in the current batch, while SrvCount indicates the total across all batches.
2025-07-04Fix file handle close warnings by ignoring return valuesJeff Halter
Updated all file close operations to use anonymous functions that ignore return values to satisfy golangci-lint errcheck warnings.
2024-10-06Fix tracker resultsJeff Halter
2024-07-18Add support for trackers that require a passwordJeff Halter
2024-07-09Extensive refactor and clean upJeff Halter
2024-06-24Refactoring, cleanup, test backfillingJeff Halter
2024-06-18Adopt more fixed size array types for struct fieldsJeff Halter
2024-06-17Fix io.Reader implementations and wrap more errorsJeff Halter
2024-06-15Refactoring and cleanupJeff Halter
* Split CLI client into separate project * Convert more functions to follow common Golang idioms e.g io.Reader, io.Writer * Use ldflags for versioning * Misc cleanup and simplification
2024-06-09Refactor TrackerRegistration Read to io.Reader interfaceJeff Halter
2023-05-28Handler tracker list errorsJeff Halter
2022-06-29Refactor and backfill tests for tracker listingJeff Halter
2022-06-07Fix hardcoded port in tracker registrationJeff Halter
2022-06-06Improve tracker loggingJeff Halter
2022-05-28Misc cleanupJeff Halter
* Removed some unnecessary user of pointers * Removed dead cruft * Reorganized code
2021-08-12More cleanupJeff Halter
2021-08-07Handle errJeff Halter
2021-08-04Remove unused varJeff Halter
2021-08-03Ran `gofmt -w .`Jeff Halter
2021-07-29Fix tracker bug in multiple read caseJeff Halter
2021-07-28Fix intermittent tracker read panicJeff Halter
2021-07-28Move code to hotline dirJeff Halter