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 2fbf10462e17ead696f1c168397d6fbce144a8f6..e8dcfd944f3f063c807d679073bba7bea3bd335c 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -662,10 +662,10 @@ public class I2PSnarkServlet extends HttpServlet { client = "Azureus"; else if ("CwsL".equals(ch)) client = "I2PSnarkXL"; - else if ("ZV".equals(ch.substring(2,4))) - client = "Robert"; - else if ("VUZP".equals(ch)) + else if ("ZV".equals(ch.substring(2,4)) || "VUZP".equals(ch)) client = "Robert"; + else if (ch.startsWith("LV")) // LVCS 1.0.2?; LVRS 1.0.4 + client = "Transmission"; else client = _("Unknown") + " (" + ch + ')'; out.write(client + " " + peer.toString().substring(5, 9)); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHandler.java index 62d60358d9e5ec6761108cb9bab6fc885e87e104..512471a101ebf4b0fa9b4cb4bc57b1febb0097d5 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHandler.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHandler.java @@ -124,6 +124,7 @@ public class ConfigUpdateHandler extends FormHandler { } if ( (_trustedKeys != null) && (_trustedKeys.length() > 0) ) { + _trustedKeys = _trustedKeys.replaceAll("\r\n", ",").replaceAll("\n", ","); String oldKeys = new TrustedUpdate(_context).getTrustedKeysString(); if ( (oldKeys == null) || (!_trustedKeys.equals(oldKeys)) ) { _context.router().setConfigSetting(PROP_TRUSTED_KEYS, _trustedKeys); diff --git a/installer/resources/initialNews.xml b/installer/resources/initialNews.xml index 8e33ec57dd7bf0442040ba02b564db6fee5d7059..18906b2ff7f6fff698afdbd6b06bebbaa9fa9fd3 100644 --- a/installer/resources/initialNews.xml +++ b/installer/resources/initialNews.xml @@ -1,5 +1,7 @@ +<!-- <i2p.news date="$Date: 2010-01-22 00:00:00 $"> <i2p.release version="0.7.10" date="2010/01/22" minVersion="0.6"/> +--> <h4><ul><li>Congratulations on getting I2P installed!</li></ul></h4> <p> <b>Welcome to I2P!</b> @@ -47,5 +49,4 @@ Verbinde deinen IRC Klienten mit dem Server auf <b>localhost:6668</b> und sage H <p> <b>Ðе забудьте заглÑнуть</b> в наш <a href="http://www.i2p2.i2p/faq_ru.html">FAQ</a>. </p> -</i2p.news> diff --git a/installer/resources/news.xml b/installer/resources/news.xml index cd8e9ecb88cf527850c117607a250aa1dcba7a89..3c84cacf7f8bed72bcc64853f808831fd14a6413 100644 --- a/installer/resources/news.xml +++ b/installer/resources/news.xml @@ -1,5 +1,7 @@ +<!-- <i2p.news date="$Date: 2010-01-22 00:00:00 $"> <i2p.release version="0.7.10" date="2010/01/22" minVersion="0.6" /> +--> <h4><ul><li>2010-01-22: <b>0.7.10 <a href="http://www.i2p2.i2p/release-0.7.10.html">Released</a></b></li></ul></h4> <p> 0.7.10 closes some recently-discovered vulnerabilities related to the @@ -17,4 +19,3 @@ or <a href="http://www.i2p2.i2p/donate.html">donate</a>! We are still looking for help on new and existing translations. Please volunteer on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a>. </p> -</i2p.news> diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index 41ad29e23cdd2e3a44ef1b6d21b4c53251c64829..afee2bac07159884052cb003497a18045aac1b94 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -421,7 +421,18 @@ public class NTCPTransport extends TransportImpl { private static final int NUM_CONCURRENT_READERS = 3; private static final int NUM_CONCURRENT_WRITERS = 3; + /** + * Called by TransportManager. + * Caller should stop the transport first, then + * verify stopped with isAlive() + * Unfortunately TransportManager doesn't do that, so we + * check here to prevent two pumpers. + * @return appears to be ignored by caller + */ public synchronized RouterAddress startListening() { + // try once again to prevent two pumpers which is fatal + if (_pumper.isAlive()) + return _myAddress != null ? _myAddress.toRouterAddress() : null; if (_log.shouldLog(Log.WARN)) _log.warn("Starting ntcp transport listening"); _finisher.start(); _pumper.startPumping(); @@ -433,7 +444,17 @@ public class NTCPTransport extends TransportImpl { return bindAddress(); } + /** + * Only called by CSFI. + * Caller should stop the transport first, then + * verify stopped with isAlive() + * @return appears to be ignored by caller + */ public synchronized RouterAddress restartListening(RouterAddress addr) { + // try once again to prevent two pumpers which is fatal + // we could just return null since the return value is ignored + if (_pumper.isAlive()) + return _myAddress != null ? _myAddress.toRouterAddress() : null; if (_log.shouldLog(Log.WARN)) _log.warn("Restarting ntcp transport listening"); _finisher.start(); _pumper.startPumping(); @@ -452,6 +473,7 @@ public class NTCPTransport extends TransportImpl { return _pumper.isAlive(); } + /** call from synchronized method */ private RouterAddress bindAddress() { if (_myAddress != null) { try {