v1.6.3: Security, Stability and Testing Update
Added
- CI / CD Pipeline: Upgraded
.github/workflows/entry.yamlto run tests with the-racedetector and-shuffle=onflags to ensure test stability and concurrency safety before any build. - Security guards against Path Traversal: Added rigorous
filepath.Cleanandstrings.HasPrefixvalidation towatcher.goandclient.go. This prevents malicious symlinks or filenames like../../config.jsonfrom escaping thewatch_dirand overwriting sensitive files. - Memory Exhaustion Protections (RAM Bomb): Implemented
io.LimitReader(up to 5MB) when reading JSON API responses (likebittorrented) and.magnetfiles in the Watch Folder, preventing intentional OOM (Out Of Memory) attacks. - Directory Listing Prevention: Wrapped the
/files/endpoint innetutil.DisableDirListingto throwos.ErrNotExist(404) on directory access, strictly serving only specific files. - Scraper Mock Integration Tests: Built an entire mock-test suite in
internal/testsfor all 10 scrapers (1337x, BitTorrented, EZTV, FitGirl, Nyaa, PirateBay, RuTracker, SubsPlease, Torrents.csv, YTS). These tests act as a 1:1 simulation of Torlink's logic, asserting that Gorrent safely and accurately parses exact Torlink-style HTML/JSON payloads without ever hitting real internet services. Theinternal/testsfolder and*_test.gofiles are entirely isolated and blocked from Docker via.dockerignore.
Fixed
- 1337x Mirror Invalidations: Implemented a
sync.RWMutexcache for thelastWorkingHostso the scraper dynamically falls back on other domains if one fails, drastically increasing reliability. - Daemon GC deduplication loop: Files are now proactively moved to
handled/before callingAddMagnetinwatcher.go, preventing edge cases where the Daemon crashes between steps and downloads files twice.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.3-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.3-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.3-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.3-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.3-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.3 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG