<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mobius/hotline/server.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/server.go?h=main</id>
<link rel='self' href='https://git.r.bdr.sh/mobius/atom/hotline/server.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>Add optional TLS support for encrypted client connections</title>
<updated>2025-11-23T03:43:12Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-11-23T03:42:32Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=357baa94bf9b1d4b623f8a9c04b9d591e9f60406'/>
<id>urn:sha1:357baa94bf9b1d4b623f8a9c04b9d591e9f60406</id>
<content type='text'>
- Add TLSConfig and TLSPort fields to Server struct
- Add WithTLS option function for configuration
- Add ServeWithTLS and ServeFileTransfersWithTLS methods
- Update ListenAndServe to start TLS listeners when configured
- Add -tls-cert, -tls-key, -tls-port command-line flags
- Fix data race in rateLimiters map access with mutex
- Add TLS documentation with certificate generation instructions
</content>
</entry>
<entry>
<title>Fix string splitting bug and add comprehensive tracker registration tests</title>
<updated>2025-07-05T23:02:33Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-07-05T23:02:33Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=cab4e2192d5b39e51933ced3dd569de9fc182a04'/>
<id>urn:sha1:cab4e2192d5b39e51933ced3dd569de9fc182a04</id>
<content type='text'>
- Fix critical bug in tracker address parsing: strings.Split(t, ":") instead of strings.Split(":", t)
- Add dependency injection for TrackerRegistrar to improve testability
- Extract registerWithAllTrackers() helper function to eliminate code duplication
- Add comprehensive test suite covering:
  * Unit tests for parseTrackerPassword with edge cases and special characters
  * Integration tests for registerWithTrackers with mocking
  * Context cancellation and graceful shutdown testing
  * Error handling for network failures and malformed addresses
  * Edge cases like zero ports, long names, and empty configurations
- Improve password parsing to handle colons in passwords correctly
- Add MockTrackerRegistrar for isolated testing without network dependencies

The string splitting bug would have prevented tracker registration from working
with password-protected trackers. All tests pass and verify the fix works correctly.
</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 IPv6 address parsing in IP extraction</title>
<updated>2025-06-30T00:49:35Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2025-06-30T00:49:35Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=d2e125bd255e807aa4d374b23eb9c2bb02fe63a3'/>
<id>urn:sha1:d2e125bd255e807aa4d374b23eb9c2bb02fe63a3</id>
<content type='text'>
Replace string splitting with net.SplitHostPort to properly handle
both IPv4 and IPv6 addresses. Fixes issue where IPv6 addresses like
[::1]:8080 were incorrectly parsed as "[" instead of "::1".
</content>
</entry>
<entry>
<title>Update server.go</title>
<updated>2025-05-22T19:00:40Z</updated>
<author>
<name>Theo Knez</name>
<email>27211475+Knezzen@users.noreply.github.com</email>
</author>
<published>2025-05-10T18:36:09Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=24d753e4ecb06c467784732d7159b0db1b48aa9a'/>
<id>urn:sha1:24d753e4ecb06c467784732d7159b0db1b48aa9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Account for 16 vs 32 bit integers in folder upload</title>
<updated>2025-02-06T21:25:26Z</updated>
<author>
<name>Ruben Beltran del Rio</name>
<email>git@r.bdr.sh</email>
</author>
<published>2025-02-05T14:06:22Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=3f9221420a57b0b7534a0877925e363855274b1a'/>
<id>urn:sha1:3f9221420a57b0b7534a0877925e363855274b1a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix tracker registration logging</title>
<updated>2024-07-28T19:54:41Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-07-28T19:54:41Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=dd88b8567d1377f50ab6955f6a30db830d94ebd9'/>
<id>urn:sha1:dd88b8567d1377f50ab6955f6a30db830d94ebd9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add logging of tracker registration</title>
<updated>2024-07-27T22:12:29Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-07-27T22:12:29Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=117c2040b807dfd3cc578e8b5ba07ce504b102fe'/>
<id>urn:sha1:117c2040b807dfd3cc578e8b5ba07ce504b102fe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Wrap file transfer errors with more context</title>
<updated>2024-07-26T00:00:43Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2024-07-26T00:00:43Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=6e4935b32843d1007b1070275d4e99edb345d6bc'/>
<id>urn:sha1:6e4935b32843d1007b1070275d4e99edb345d6bc</id>
<content type='text'>
</content>
</entry>
</feed>
