<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mobius/hotline/tracker.go, branch main</title>
<subtitle>Friendship Quest remix of mobius, a hotline server in go #cli</subtitle>
<id>https://git.r.bdr.sh/mobius/atom/hotline/tracker.go?h=main</id>
<link rel='self' href='https://git.r.bdr.sh/mobius/atom/hotline/tracker.go?h=main'/>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/'/>
<updated>2025-11-25T18:31:39Z</updated>
<entry>
<title>Add TLS port field to tracker registration protocol</title>
<updated>2025-11-25T18:31:39Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-11-25T18:30:30Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=8ddb9bb228389b198a76d6df21de005da4fad66b'/>
<id>urn:sha1:8ddb9bb228389b198a76d6df21de005da4fad66b</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Fix tracker server list parsing for batched responses</title>
<updated>2025-11-25T00:52:37Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-11-25T00:52:37Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=ab16c7d82c8381a4df80fef4b2fe81e7ff23dad8'/>
<id>urn:sha1:ab16c7d82c8381a4df80fef4b2fe81e7ff23dad8</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Fix file handle close warnings by ignoring return values</title>
<updated>2025-07-05T00:24:02Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-07-05T00:24:02Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=ee6629ad78ac62fa14371ea5ddb7474c1fe9c979'/>
<id>urn:sha1:ee6629ad78ac62fa14371ea5ddb7474c1fe9c979</id>
<content type='text'>
Updated all file close operations to use anonymous functions that ignore
return values to satisfy golangci-lint errcheck warnings.
</content>
</entry>
<entry>
<title>Fix tracker results</title>
<updated>2024-10-06T17:14:31Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-10-06T17:14:31Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=7c005672a40eb92110e32b37f41f59c027fa8598'/>
<id>urn:sha1:7c005672a40eb92110e32b37f41f59c027fa8598</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add support for trackers that require a password</title>
<updated>2024-07-19T00:30:34Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-07-19T00:28:17Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=6eaf9391526a808c0056427f056169311352446d'/>
<id>urn:sha1:6eaf9391526a808c0056427f056169311352446d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Extensive refactor and clean up</title>
<updated>2024-07-10T04:42:05Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-07-10T04:36:27Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=d9bc63a10d0978d9a5222cf7be74044e55f409b7'/>
<id>urn:sha1:d9bc63a10d0978d9a5222cf7be74044e55f409b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactoring, cleanup, test backfilling</title>
<updated>2024-06-24T23:23:56Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-06-24T23:23:56Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=a2ef262a164fc735b9b8471ac0c8001eea2b9bf6'/>
<id>urn:sha1:a2ef262a164fc735b9b8471ac0c8001eea2b9bf6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Adopt more fixed size array types for struct fields</title>
<updated>2024-06-18T22:34:50Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-06-18T22:34:50Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=a55350daaf83498b7a237c027ad0dd2377f06fee'/>
<id>urn:sha1:a55350daaf83498b7a237c027ad0dd2377f06fee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix io.Reader implementations and wrap more errors</title>
<updated>2024-06-17T20:50:28Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-06-17T20:50:28Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=45ca5d60383cbe270624c713b916da29af7ba88f'/>
<id>urn:sha1:45ca5d60383cbe270624c713b916da29af7ba88f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refactoring and cleanup</title>
<updated>2024-06-15T18:13:16Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-06-15T18:13:16Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=95159e5585762c06c654945070ba54262b7dcec9'/>
<id>urn:sha1:95159e5585762c06c654945070ba54262b7dcec9</id>
<content type='text'>
* 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
</content>
</entry>
</feed>
