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);