diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java index 9abcdd0fd..9f4b0cf04 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java @@ -16,6 +16,8 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Properties; +import java.util.StringTokenizer; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -171,6 +173,33 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem } } + /** + * Update the outproxy list then call super. + * + * @since 0.9.12 + */ + @Override + public void optionsUpdated(I2PTunnel tunnel) { + if (getTunnel() != tunnel) + return; + Properties props = tunnel.getClientOptions(); + // see TunnelController.setSessionOptions() + String proxies = props.getProperty("proxyList"); + if (proxies != null) { + StringTokenizer tok = new StringTokenizer(proxies, ", "); + synchronized(_proxyList) { + _proxyList.clear(); + while (tok.hasMoreTokens()) + _proxyList.add(tok.nextToken().trim()); + } + } else { + synchronized(_proxyList) { + _proxyList.clear(); + } + } + super.optionsUpdated(tunnel); + } + /** * @since 0.9.4 */ diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java index 5936b6936..095c4171f 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java @@ -445,6 +445,10 @@ public class TunnelController implements Logging { String target = getTargetDestination(); if (target != null) opts.setProperty("targetDestination", target); + // Ditto outproxy list. Since 0.9.12. + String proxies = getProxyList(); + if (proxies != null) + opts.setProperty("proxyList", proxies); _tunnel.setClientOptions(opts); }