aboutsummaryrefslogtreecommitdiff
path: root/hotline
AgeCommit message (Collapse)Author
2025-06-29Fix IPv6 address parsing in IP extractionJeff Halter
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".
2025-06-26Refactor FormattedPath to use scanner interface and add comprehensive testsJeff Halter
- Replace manual byte slicing with bufio.Scanner for safer parsing - Add pathSegmentScanner implementing bufio.SplitFunc pattern - Add comprehensive table tests covering edge cases and special characters - Improve code safety with proper bounds checking - Follow established codebase patterns for binary data parsing
2025-06-26Replace filepath.Join with path.Join for Windows compatibilityJeff Halter
Replace all instances of filepath.Join with path.Join across the codebase to improve Windows compatibility following the guidance from https://github.com/golang/go/issues/44305. Key changes: - Replaced filepath.Join with path.Join in 14 files - Updated import statements appropriately - Resolved variable shadowing issues where function parameters named 'path' were conflicting with the path package - Maintained filepath imports where needed for OS-specific functions like filepath.Walk, filepath.IsAbs, filepath.Dir, and filepath.Base All tests pass, confirming the changes maintain functionality while improving cross-platform compatibility.
2025-06-19Ensure temporary upload files are closed before renameJeff Halter
This seems to be important on Windows! See #161
2025-05-22Update server.goTheo Knez
2025-02-06Account for 16 vs 32 bit integers in folder uploadRuben Beltran del Rio
2024-10-06Fix tracker resultsJeff Halter
2024-07-30Fix commentsJeff Halter
2024-07-28Fix tracker registration loggingJeff Halter
2024-07-28Improve human readability of account config filesJeff Halter
2024-07-27Add logging of tracker registrationJeff Halter
2024-07-26Make Bonjour optional and disabled by defaultJeff Halter
Bonjour doesn't seem happy inside Docker, so I'm making it optional and off by default.
2024-07-25Wrap file transfer errors with more contextJeff Halter
2024-07-23Add client connection rate limitJeff Halter
2024-07-21Clean up loggingJeff Halter
2024-07-19Add option for account-specific file rootJeff Halter
2024-07-19Appease linterJeff Halter
2024-07-19Fix failing test, replace use of reflect package with assertJeff Halter
2024-07-18Add support for trackers that require a passwordJeff Halter
2024-07-18Add initial HTTP API endpointsJeff Halter
2024-07-17Extensive refactor, quality of life enhancementsJeff Halter
* Added ability to reload config, agreement, news, and user accounts without restarting the server by sending SIGHUP to the running process * Added ability to use modern unix or windows line breaks in Agreement.txt and MessageBoard.txt instead of classic MacOS `\r` breaks. * Extensive refactor towards swappable backends for the active server state * Extensive refactored towards making the hotline package generic and re-usable for alternate server implemenations * Fix bug where users whose accounts have been deleted would not be disconnected
2024-07-13Re-add UserList field to clientJeff Halter
2024-07-09Extensive refactor and clean upJeff Halter
2024-06-27Limit chat message size to 8192 bytesJeff Halter
2024-06-24Refactoring, cleanup, test backfillingJeff Halter
2024-06-18Adopt more fixed size array types for struct fieldsJeff Halter
2024-06-17Use fixed size array types in Transaction fieldsJeff Halter
2024-06-17Clean up various linter warningsJeff Halter
2024-06-17Fix io.Reader implementations and wrap more errorsJeff Halter
2024-06-17Fix corrupt file info forksJeff Halter
This fixes a bug that happens when: 1. Optional "Enable Resource Forks" feature is true 2. A file comment is added 3. The comment is updated to be shorter than the original The expected behavior is that the hidden .info file is replaced with the new data, but this wasn't happening because the file flag was not set to truncate on write.
2024-06-17Fix io.Reader implementation for FileNameWithInfoJeff Halter
2024-06-17Update failing news testJeff Halter
2024-06-16Fix broken io.Reader implementationsJeff Halter
2024-06-15Replace hardcoded version with ldflag usageJeff 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-10Replace zap logger with slogJeff Halter
2024-06-10Read banner once at startupJeff Halter
2024-06-09Remove redundant text encoding funcJeff Halter
2024-06-09Convert more bespoke methods to io.Reader/io.Writer interfacesJeff Halter
2024-06-09Convert bespoke methods to io.Reader/io.Writer interfacesJeff Halter
2024-06-09Replace custom slice concat func with slices.ConcatJeff Halter
2024-06-09Refactor TrackerRegistration Read to io.Reader interfaceJeff Halter
2024-06-08Ignore files with incompatible namesJeff Halter
2024-06-08Add support for account login renameJeff Halter
2024-06-01patch: v0.12.3Jeff Halter
2024-06-01Fix account management edge casesJeff Halter
2024-05-05patch: v0.12.2Jeff Halter
2024-05-05Fix bug that clears account password on permission editJeff Halter
2024-05-05Fix handling of refuse PM flagJeff Halter
2024-04-29Fix testJeff Halter