diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 975abfd78..e1b192e9f 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -507,11 +507,12 @@ public class I2PSnarkServlet extends BasicServlet { } catch (NumberFormatException nfe) {} } int pageSize = Math.max(_manager.getPageSize(), 5); + String stParamStr = stParam == null ? "" : "&st=" + stParam; for (int i = 0; i < total; i++) { Snark snark = (Snark)snarks.get(i); boolean showPeers = showDebug || "1".equals(peerParam) || Base64.encode(snark.getInfoHash()).equals(peerParam); boolean hide = i < start || i >= start + pageSize; - displaySnark(out, snark, uri, i, stats, showPeers, isDegraded, noThinsp, showDebug, hide); + displaySnark(out, snark, uri, i, stats, showPeers, isDegraded, noThinsp, showDebug, hide, stParam); } if (total == 0) { @@ -943,7 +944,7 @@ public class I2PSnarkServlet extends BasicServlet { url = url.substring(0, url.length() - 5); buf.append(url); if (p.length() > 0) - buf.append(p); + buf.append(p.replace("&", "&")); // no you don't html escape the redirect header resp.setHeader("Location", buf.toString()); resp.sendError(302, "Moved"); } @@ -1113,9 +1114,11 @@ public class I2PSnarkServlet extends BasicServlet { * * @param stats in/out param (totals) * @param statsOnly if true, output nothing, update stats only + * @param stParam non null; empty or e.g. &st=10 */ private void displaySnark(PrintWriter out, Snark snark, String uri, int row, long stats[], boolean showPeers, - boolean isDegraded, boolean noThinsp, boolean showDebug, boolean statsOnly) throws IOException { + boolean isDegraded, boolean noThinsp, boolean showDebug, boolean statsOnly, + String stParam) throws IOException { // stats long uploaded = snark.getUploaded(); stats[0] += snark.getDownloaded(); @@ -1225,7 +1228,7 @@ public class I2PSnarkServlet extends BasicServlet { if (curPeers > 0 && !showPeers) statusString = "\"\"" + "" + txt + - ": " + + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else @@ -1241,7 +1244,7 @@ public class I2PSnarkServlet extends BasicServlet { if (isRunning && curPeers > 0 && downBps > 0 && !showPeers) statusString = "\"\"" + "" + _("OK") + - ": " + + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else if (isRunning && curPeers > 0 && downBps > 0) @@ -1252,7 +1255,7 @@ public class I2PSnarkServlet extends BasicServlet { else if (isRunning && curPeers > 0 && !showPeers) statusString = "\"\"" + "" + _("Stalled") + - ": " + + ": " + curPeers + thinsp(noThinsp) + ngettext("1 peer", "{0} peers", knownPeers) + ""; else if (isRunning && curPeers > 0) @@ -1366,16 +1369,13 @@ public class I2PSnarkServlet extends BasicServlet { out.write(formatSize(upBps) + "ps"); out.write("\n\t"); out.write(""); - String parameters = "&nonce=" + _nonce + "&torrent=" + Base64.encode(snark.getInfoHash()); String b64 = Base64.encode(snark.getInfoHash()); - if (showPeers) - parameters = parameters + "&p=1"; if (snark.isChecking()) { // show no buttons } else if (isRunning) { // Stop Button if (isDegraded) - out.write("