diff --git a/apps/i2psnark/java/build.xml b/apps/i2psnark/java/build.xml index 627f68e42..517c40fae 100644 --- a/apps/i2psnark/java/build.xml +++ b/apps/i2psnark/java/build.xml @@ -57,7 +57,8 @@ - + + diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCheckerTask.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCheckerTask.java index 532d48aab..78efa094e 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerCheckerTask.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCheckerTask.java @@ -197,5 +197,8 @@ class PeerCheckerTask extends TimerTask coordinator.peers.addAll(removed); coordinator.peerCount = coordinator.peers.size(); } + if (coordinator.halted()) { + cancel(); + } } } diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java index 405e3785e..0c771879f 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java +++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java @@ -30,7 +30,7 @@ public class SnarkManager implements Snark.CompleteListener { public static final String PROP_DIR = "i2psnark.dir"; public static final String PROP_AUTO_START = "i2snark.autoStart"; - public static final String DEFAULT_AUTO_START = "true"; + public static final String DEFAULT_AUTO_START = "false"; private SnarkManager() { _snarks = new HashMap(); diff --git a/apps/i2psnark/jetty-i2psnark.xml b/apps/i2psnark/jetty-i2psnark.xml index bb0aab700..125db8b6d 100644 --- a/apps/i2psnark/jetty-i2psnark.xml +++ b/apps/i2psnark/jetty-i2psnark.xml @@ -19,7 +19,7 @@ - 0.0.0.0 + 127.0.0.1 8002 @@ -88,7 +88,7 @@ i2psnark / - i2psnark.war + webapps/i2psnark.war diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java index c8babe8f4..e7cf73354 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java @@ -89,6 +89,8 @@ public class ConnectionOptions extends I2PSocketOptionsImpl { setInboundBufferSize(opts.getInboundBufferSize()); setCongestionAvoidanceGrowthRateFactor(opts.getCongestionAvoidanceGrowthRateFactor()); setSlowStartGrowthRateFactor(opts.getSlowStartGrowthRateFactor()); + setWriteTimeout(opts.getWriteTimeout()); + setReadTimeout(opts.getReadTimeout()); } } diff --git a/apps/streaming/java/src/net/i2p/client/streaming/MessageOutputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/MessageOutputStream.java index 89fd9d7a7..390cb9324 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/MessageOutputStream.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/MessageOutputStream.java @@ -256,8 +256,12 @@ public class MessageOutputStream extends OutputStream { long begin = _context.clock().now(); WriteStatus ws = null; synchronized (_dataLock) { - if (_buf == null) throw new IOException("closed (buffer went away)"); + if (_buf == null) { + _dataLock.notifyAll(); + throw new IOException("closed (buffer went away)"); + } if (_dataReceiver == null) { + _dataLock.notifyAll(); throwAnyError(); return; } @@ -293,7 +297,10 @@ public class MessageOutputStream extends OutputStream { } public void close() throws IOException { - if (_closed) return; + if (_closed) { + synchronized (_dataLock) { _dataLock.notifyAll(); } + return; + } _closed = true; flush(); _log.debug("Output stream closed after writing " + _written); @@ -305,6 +312,7 @@ public class MessageOutputStream extends OutputStream { _valid = 0; locked_updateBufferSize(); } + _dataLock.notifyAll(); } if (ba != null) { _dataCache.release(ba); diff --git a/build.xml b/build.xml index ffc1b1afe..c9a711cd2 100644 --- a/build.xml +++ b/build.xml @@ -32,7 +32,7 @@ - + @@ -253,6 +253,8 @@ + + @@ -363,6 +365,8 @@ + + diff --git a/core/java/src/net/i2p/CoreVersion.java b/core/java/src/net/i2p/CoreVersion.java index 8c24e7625..6be96b62f 100644 --- a/core/java/src/net/i2p/CoreVersion.java +++ b/core/java/src/net/i2p/CoreVersion.java @@ -14,8 +14,8 @@ package net.i2p; * */ public class CoreVersion { - public final static String ID = "$Revision: 1.49 $ $Date: 2005/11/26 13:26:22 $"; - public final static String VERSION = "0.6.1.7"; + public final static String ID = "$Revision: 1.50 $ $Date: 2005/12/01 12:16:54 $"; + public final static String VERSION = "0.6.1.8"; public static void main(String args[]) { System.out.println("I2P Core version: " + VERSION); diff --git a/history.txt b/history.txt index f78151fd4..19a869c6e 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,16 @@ -$Id: history.txt,v 1.367 2005/12/22 05:04:15 jrandom Exp $ +$Id: history.txt,v 1.368 2005/12/22 05:10:39 jrandom Exp $ + +* 2005-12-22 0.6.1.8 released + +2005-12-22 jrandom + * Bundle the standalone I2PSnark launcher in the installer and update + process (launch as "java -jar launch-i2psnark.jar", viewing the + interface on http://localhost:8002/) + * Don't autostart swarming torrents by default so that you can run a + standalone I2PSnark from the I2P install dir and not have the embedded + I2PSnark autolaunch the torrents that the standalone instance is running + * Fixed a rare streaming lib bug that could let a blocking call wait + forever. 2005-12-22 jrandom * Cleaned up some buffer synchronization issues in I2PSnark that could diff --git a/initialNews.xml b/initialNews.xml index 01b0a12ae..93e411f0a 100644 --- a/initialNews.xml +++ b/initialNews.xml @@ -1,5 +1,5 @@ - - + i2p - 0.6.1.7 + 0.6.1.8 diff --git a/news.xml b/news.xml index d9b95bf2a..7180dd9f7 100644 --- a/news.xml +++ b/news.xml @@ -1,5 +1,5 @@ - - + -• Tip: if an eepsite isn't reachable, it may not be online - orion or - polecat tells whether they can reach the site as well
-• I2Phex users should keep track of the progress on the forum
+• In the latest release, there's an integrated multisource bittorrent client - I2PSnark
+• Syndie now has a blog interface, giving you an overview of recent activity
diff --git a/readme.html b/readme.html index c7b0e3701..a21457f20 100644 --- a/readme.html +++ b/readme.html @@ -17,7 +17,7 @@ you can:

  • search.i2p: an anonymously hosted search engine of eepsites
  • ugha.i2p: ugha's eepsite, a wiki that anyone can edit, and lots of links
  • dev.i2p: a secure and anonymous connection to dev.i2p.net
  • -
  • Freenet proxies: fproxy.i2p and fproxy.tino.i2p
  • +
  • Freenet proxy: fproxy.tino.i2p
  • There are many more eepsites - just follow the links from the ones you see, bookmark your favorites, and visit them often! @@ -25,8 +25,10 @@ you can:

    up to your own HTTP proxy on port 4444 - simply set your browser's proxy to use it (as above) and go to any normal URL - your requests will be bounced through the I2P network. -
  • transfer files - there is an I2P port - of the BitTorrent application available.
  • +
  • transfer files - there is an integrated port of the + Snark BitTorrent + client, which is compatible with the Python + mainline I2P-BT.
  • use anonymous email - postman has created a mail system compatible with normal mail clients (POP3 / SMTP) that allows email within I2P as well as mail from and to the normal internet! get your account at hq.postman.i2p. diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 8d2e1b73b..9f85db93e 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.315 $ $Date: 2005/12/21 07:04:55 $"; - public final static String VERSION = "0.6.1.7"; - public final static long BUILD = 9; + public final static String ID = "$Revision: 1.316 $ $Date: 2005/12/22 05:04:13 $"; + public final static String VERSION = "0.6.1.8"; + public final static long BUILD = 0; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID);