Conversation
The Update Trackers context menu action sends d.tracker_announce directly via XMLRPC, which is rejected by rtorrent 0.16.8 untrusted connection model. Route it through httprpc like start/stop/pause/remove, using a trusted server-side SCGI connection.
- Bundle geoip2.phar v2.12.1 (MaxMind GeoIP2 PHP library) - Remove composer autoloader dependency from lookup.php and init.php - Update conf.php with setup documentation and GeoLite2 default paths - Users only need to download .mmdb database files from MaxMind Fixes #3028
Bundle the MaxMind GeoIP2 PHP library as geoip2.phar (v2.12.1) so the plugin works out of the box without composer. Users only need to download .mmdb database files from MaxMind.
Latest and final 2.x release (August 2020). Fixes class name construction for PHP-Scoper compatibility. Uses Box 4.0.1 for phar generation.
Update the bundled MaxMind GeoIP2 PHP library from v2.12.1 to v2.13.0 — the latest and final 2.x release (August 2020).
On servers without IPv6, api64.ipify.org returns the IPv4 address which fails IPv6 validation. This logged an error on every page load, spamming both PHP and nginx error logs. The failure is expected and already handled by returning null (status -1 to the UI). Ref: #3018 (comment)
innerHTML destroys event handlers on existing log nodes when saving and restoring content. Use removeChild/appendChild to preserve node references.
The same message can legitimately occur multiple times (e.g. repeated warnings, periodic status updates). The dedup prevented these from being saved.
Use DOM node manipulation instead of innerHTML — the previous innerHTML save/restore approach destroyed event handlers on existing log nodes. Now uses removeChild/appendChild to preserve node references.
Remove duplicate message check — the saveLog() function skipped messages that already existed in the log. This prevented legitimate repeated messages (e.g. periodic status updates, repeated warnings) from being saved.
Inspired by #3030 (which also addresses these issues but includes unrelated feature additions).
- Hook the Log tab Clear button to also clear saved log history via new ?clear=1 endpoint, so old entries do not reappear on reload - Make stripTimestamp() null-safe to prevent JS error when replaying entries with missing message field Fixes #3029
Hook the Log tab Clear button to also clear saved log history via new ?clear=1 endpoint, so old entries do not reappear on reload Make stripTimestamp() null-safe to prevent JS error when replaying entries with missing message field Fixes #3029
- settings.php: (integer) → (int) (deprecated since PHP 8.5) - _cloudflare/cloudflare.php: backtick operator → shell_exec() (deprecated since PHP 8.5) Fixes #2992
When dragging a .torrent from Firefox download panel, the browser sends both a file item and a text/uri-list item. The drop handler was matching the URI list first and trying to process it as a URL, which failed. Now checks for file items first and lets the filedrop jQuery plugin handle them directly. Fixes #2966
When dragging a .torrent from Firefox's download panel, the browser sends both a file item (application/x-bittorrent) and a text/uri-list item. The drop handler was matching the URI list first and trying to process it as a URL download, which silently failed. Now checks for file items first and lets the filedrop jQuery plugin handle them directly. URL-only drops (magnet links, torrent URLs from web pages) still work as before. Fixes #2966
Chrome fires mousemove events on mousedown/mouseup even when the mouse has not moved (movementX === 0, movementY === 0). This caused the DnD handler to set isMoving=true on every click, triggering column drag instead of sort. Guard against zero-movement events in onRun callback. Previously fixed in PR #1637 but lost during DnD class refactor. Fixes #3001
Chrome fires mousemove events on mousedown/mouseup even when the mouse hasn't physically moved (movementX === 0, movementY === 0). This caused the DnD handler's onRun callback to set isMoving = true on every click, triggering the column drag path instead of the sort path. Add a guard to ignore zero-movement events before setting isMoving. Previously fixed in PR #1637 but lost during the DnD class refactor. Fixes #3001 Note: Couldn't repro, so maybe Chrome already fixed the issue on their end, but the change is harmless so why not.
Add ./ as the first entry in the directory browser. Single-click selects the current directory path, double-click confirms and closes the dropdown. This was present in 5.1.x but lost during the 5.2.x UI refactor. Fixes #3002
Add ./ as the first entry in the directory browser dropdown. Single-click selects the current directory path, double-click confirms and closes the dropdown. This was present in 5.1.x but lost during the 5.2.x UI refactor. Without it, users have to click the text field and then click elsewhere to confirm the path. Fixes #3002
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v5.3.1
Bug fixes since v5.3.0.
Bug fixes
getMinFilePerms()broken octal comparison — always returned false, breaking plugin permission checks (@xirvik, fixes getMinFilePerms() always returns false due to broken octal comparison #3005, FileUtil::getMinFilePerms() is broken resulting in "Plugin will not work. rTorrent user can't access external program" error #2987)./entry in directory picker dropdown — lost during 5.2.x refactor (@xirvik, fixes no ./ option in ruTorrent 5.2.x "Add Torrent" dropdown #3002)PHP compatibility
(integer)cast and backtick operator (@xirvik, fixes PHP 8.5 compatibility #2992)