diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 3065ed9bc..94dd809b6 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -99,14 +99,10 @@ - - - - @@ -119,7 +115,7 @@ - + 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 5e3aa5f2d..24094515c 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -158,6 +158,8 @@ public class I2PSnarkServlet extends Default { resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8"); PrintWriter out = resp.getWriter(); + //if (_log.shouldLog(Log.DEBUG)) + // _manager.addMessage((_context.clock().now() / 1000) + " xhr1 p=" + req.getParameter("p")); writeMessages(out); writeTorrents(out, req); return; @@ -204,7 +206,8 @@ public class I2PSnarkServlet extends Default { String peerParam = req.getParameter("p"); String peerString; - if (peerParam == null || !_manager.util().connected()) { + if (peerParam == null || (!_manager.util().connected()) || + peerParam.replaceAll("[a-zA-Z0-9~=-]", "").length() > 0) { // XSS peerString = ""; } else { peerString = "?p=" + peerParam; @@ -223,15 +226,20 @@ public class I2PSnarkServlet extends Default { int delay = 0; if (!isConfigure) { delay = _manager.getRefreshDelaySeconds(); - if (delay > 0) + if (delay > 0) { //out.write("\n"); - out.write("\n"); + out.write("\n" + + "\n"); + } } out.write(HEADER_A + _themePath + HEADER_B + "\n"); if (isConfigure || delay <= 0) out.write(""); else - out.write(""); + out.write(""); out.write("
"); if (isConfigure) { out.write("
\n"); @@ -418,6 +425,7 @@ public class I2PSnarkServlet extends Default { out.write(" "); } out.write("\n"); + String uri = "/i2psnark/"; for (int i = 0; i < snarks.size(); i++) { Snark snark = (Snark)snarks.get(i); boolean showDebug = "2".equals(peerParam); diff --git a/apps/i2psnark/js/i2psnark.js b/apps/routerconsole/jsp/js/ajax.js similarity index 71% rename from apps/i2psnark/js/i2psnark.js rename to apps/routerconsole/jsp/js/ajax.js index ba0e3f911..dab3164a0 100644 --- a/apps/i2psnark/js/i2psnark.js +++ b/apps/routerconsole/jsp/js/ajax.js @@ -1,9 +1,8 @@ -//var page = "home"; -function ajax(url,target) { +function ajax(url, target, refresh) { // native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); - req.onreadystatechange = function() {ajaxDone(target);}; + req.onreadystatechange = function() {ajaxDone(url, target, refresh);}; req.open("GET", url, true); req.send(null); // IE/Windows ActiveX version @@ -15,10 +14,9 @@ function ajax(url,target) { req.send(null); } } - //setTimeout("ajax(page,'scriptoutput')", 5000); } -function ajaxDone(target) { +function ajaxDone(url, target, refresh) { // only if req is "loaded" if (req.readyState == 4) { // only if "OK" @@ -30,8 +28,6 @@ function ajaxDone(target) { document.getElementById(target).innerHTML="Router is down"; document.getElementById("lowersection").style.display="none"; } + setTimeout(function() {ajax(url, target, refresh);}, refresh); } } - -function requestAjax1() { ajax("/i2psnark/.ajax/xhr1.html", "mainsection"); } -function initAjax(delayMs) { setInterval(requestAjax1, delayMs); }