github Novik/ruTorrent v5.3.12

7 hours ago

Highlights

(see detailed list below for the contributor credits)

rtorrent settings (#3140/#3145 line of work)

  • Max open files / max open HTTP connections actually take effect on 0.16.19+ (was writing max_alloc, a ceiling that can't raise)
  • Reports the effective HTTP limit back, and rolls back an allocation rtorrent rejected
  • Says why a settings write was refused instead of silently reverting; every write is logged
  • Corrected the 0.10.2 alias gate, and direct d.multicall on 0.16.16+

Security

  • XMLRPC proxy: load.* parameter handling hardened, proxy decision separated from the send (#3181/#3183)
  • snoopy: opt-in guard against fetches into private networks; protocol-relative Location resolved against its own host (SSRF surface)

erasedata

  • Deletes the data of downloads rtorrent never opened — the long-standing "files stay on disk until a Force Recheck" report

mobile

  • Theme, accent colour and sort order now persist across reload and new sessions
  • Seeding Time rendered as the duration it already is; clock-offset fix covers the mobile pane too

rutracker_check / kinozal

  • A page reload no longer postpones the hourly check
  • Kinozal login wall re-detected instead of being reported as deletions; stops re-asking once the session is known gone
  • A missing ratio view no longer breaks the replacement load
  • Plugin debug flag settable from conf/config.php

Time and clock

  • Stale time deltas after browser sleep / tab suspension fixed
  • Clock skew no longer shifts absolute dates; the offset is taken from the header meant for it

Concurrency / data integrity

  • History: concurrent writers no longer erase each other's records
  • Cache: concurrent writes merged under a per-key lock
  • History no longer logs rTorrent's magnet placeholder as a user event

Diagnostics

  • env_check.php detects that ruTorrent has never registered its handlers with rtorrent — the cause behind "torrents added by autobrr/*arr get no ratio group, added time or history"

UI / rendering

  • Tracker status messages render clickable URLs with XSS sanitization
  • Finished partial downloads get their own status
  • Details pane drops when its torrent disappears; detail polls fail quietly
  • Oblivion/OblivionBlue scrollbars fixed for Firefox 153
  • RSS: legacy XML encodings normalized

Process hygiene

  • Plugin background spawns are detached instead of using execute.nothrow.bg (zombie processes)

What's Changed

  • options: force a row break before the numeric settings fields by @xirvik in #3143
  • feat(webui): make HTTP/HTTPS URLs clickable in Tracker Status by @jakobbg in #3141
  • tests: cover the global helpers in js/common.js by @xirvik in #3144
  • fix(webui): exclude trailing HTML entities, escaped quotes, and brackets from tracker status URLs by @jakobbg in #3147
  • Detach plugin background spawns instead of using execute.nothrow.bg by @xirvik in #3146
  • Fix/max open files settings by @xirvik in #3145
  • Fix grammatical errors in user-facing English text by @xirvik in #3150
  • Fix stale time deltas after browser sleep/tab suspension by @jakobbg in #3149
  • erasedata: delete the data of downloads rtorrent has not opened by @xirvik in #3154
  • Fix Oblivion scrollbars in Firefox 153 by @chiphead2332 in #3153
  • mobile: remember the theme, accent color and sort order by @xirvik in #3157
  • Say what is expected of a pull request, and drop the develop download by @xirvik in #3161
  • rutracker_check: stop a page reload from postponing the hourly check by @IvanShift in #3163
  • Stop page reloads from postponing the remaining plugin schedules by @xirvik in #3171
  • Add an opt-in guard against fetches into private networks by @xirvik in #3160
  • lint: use the config filename editorconfig-checker 5 actually reads by @IvanShift in #3164
  • Give the test runner an absolute DIR, and say so when a fixture i… by @xirvik in #3172
  • webui: stop clock skew from shifting absolute dates by @IvanShift in #3166
  • Take the clock offset from the header meant for it, and cover the mobile panel by @xirvik in #3173
  • rss: normalize legacy XML document encodings before parsing by @IvanShift in #3170
  • Snoopy: resolve a protocol-relative Location against its own host by @IvanShift in #3165
  • webui: drop the details pane when its torrent disappears, and let detail polls fail quietly by @IvanShift in #3168
  • cache: merge concurrent writes under a per-key lock by @IvanShift in #3169
  • rtorrent: fix the 0.10.2 alias gate and d.multicall routing, pin the command tables with a regression test by @IvanShift in #3167
  • rutracker_check: let conf/config.php set the plugin's debug flag by @IvanShift in #3174
  • rutracker_check: reuse an NNMClub torrent's own passkey on update by @IvanShift in #3175
  • kinozal: stop reporting live topics as deleted when the session has expired by @IvanShift in #3176
  • rutracker_check: a missing ratio view must not break the replacement load by @IvanShift in #3177
  • history: stop logging rTorrent's magnet placeholder as a user event by @IvanShift in #3178
  • feat:webui: give a finished partial download its own status by @IvanShift in #3179
  • Harden the XMLRPC proxy's load parameter handling by @xirvik in #3181
  • Check that ruTorrent has registered its handlers with rtorrent by @xirvik in #3182
  • Separate the XMLRPC proxy decision from the sending of it by @xirvik in #3183
  • Bump version to 5.3.12 by @xirvik in #3184

New Contributors

Full Changelog: v5.3.11...v5.3.12

Don't miss a new ruTorrent release

NewReleases is sending notifications on new releases.