From 9b3bff2ea0ee78e5b850a625d2e788cbe76011e5 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Tue, 30 Jun 2015 16:09:32 +0200 Subject: [PATCH] Ensure we never set the rTorrent XML-RPC size limit to some way too small value; use a minimum of 2MB for now. Fixes #221. --- .../java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java b/app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java index e2d9f660..43dc824d 100644 --- a/app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java +++ b/app/src/main/java/org/transdroid/daemon/Rtorrent/RtorrentAdapter.java @@ -78,6 +78,8 @@ public class RtorrentAdapter implements IDaemonAdapter { private static final String LOG_NAME = "rTorrent daemon"; private static final String DEFAULT_RPC_URL = "/RPC2"; + private static final int XMLRPC_MINIMUM_SIZE = 2 * 1024 * 1024; + private static final int XMLRPC_EXTRA_PADDING = 1280; private DaemonSettings settings; private XMLRPCClient rpcclient; @@ -176,8 +178,7 @@ public class RtorrentAdapter implements IDaemonAdapter { baos.write(buffer, 0, read); } byte[] bytes = baos.toByteArray(); - int size = (int) file.length() * 2; - final int XMLRPC_EXTRA_PADDING = 1280; + int size = Math.max(((int) file.length() * 2) + XMLRPC_EXTRA_PADDING, XMLRPC_MINIMUM_SIZE); if (version >= 907) { makeRtorrentCall(log, "network.xmlrpc.size_limit.set", new Object[]{size + XMLRPC_EXTRA_PADDING}); makeRtorrentCall(log, "load.raw_start", new Object[]{bytes});