From c770c6bc6ac90281c39fec98a06f7ba5fa274363 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 31 Mar 2015 11:21:32 +0000 Subject: [PATCH] i2ptunnel: Fix multiple SSL outproxies in HTTP client escape and truncate URL on error page --- .../net/i2p/i2ptunnel/I2PTunnelHTTPClient.java | 2 +- .../i2p/i2ptunnel/I2PTunnelHTTPClientBase.java | 16 +++++++++++----- history.txt | 3 +++ .../java/src/net/i2p/router/RouterVersion.java | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index 20973b40aa..e8912cd112 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -1224,7 +1224,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn String s = getTunnel().getClientOptions().getProperty(PROP_SSL_OUTPROXIES); if (s == null) return null; - String[] p = s.split(", "); + String[] p = s.split("[,; \r\n\t]"); if (p.length == 0) return null; // todo doesn't check for "" diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java index 37a3023602..ae2cf1fbd1 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java @@ -215,11 +215,14 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem // see TunnelController.setSessionOptions() String proxies = props.getProperty("proxyList"); if (proxies != null) { - StringTokenizer tok = new StringTokenizer(proxies, ", "); + StringTokenizer tok = new StringTokenizer(proxies, ",; \r\n\t"); synchronized(_proxyList) { _proxyList.clear(); - while (tok.hasMoreTokens()) - _proxyList.add(tok.nextToken().trim()); + while (tok.hasMoreTokens()) { + String p = tok.nextToken().trim(); + if (p.length() > 0) + _proxyList.add(tok.nextToken().trim()); + } } } else { synchronized(_proxyList) { @@ -664,11 +667,14 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem Writer out = new BufferedWriter(new OutputStreamWriter(outs, "UTF-8")); out.write(errMessage); if (targetRequest != null) { - String uri = targetRequest.replace("&", "&"); + String uri = DataHelper.escapeHTML(targetRequest); out.write(""); - out.write(uri); + if (targetRequest.length() > 80) + out.write(DataHelper.escapeHTML(targetRequest.substring(0, 75)) + "…"); + else + out.write(uri); out.write(""); if (usingWWWProxy) { out.write("

"); diff --git a/history.txt b/history.txt index e6fd8621b0..827ce26be0 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2015-03-31 zzz + * i2ptunnel: Fix multiple SSL outproxies in HTTP client + 2015-03-29 zzz * I2CP: Prevent NPE (ticket #1503) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 59b43357e5..affa6f41b1 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 13; + public final static long BUILD = 14; /** for example "-test" */ public final static String EXTRA = "-rc";