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 = "" +
"