diff --git a/build.xml b/build.xml
index 81cce7c467..630a46ce21 100644
--- a/build.xml
+++ b/build.xml
@@ -26,6 +26,7 @@
+
@@ -55,6 +56,7 @@
+
@@ -102,6 +104,7 @@
+
@@ -178,6 +181,15 @@
+
+
+
@@ -239,6 +251,12 @@
+
+
+
diff --git a/history.txt b/history.txt
index 691d7a15b6..2ff4b0ce9f 100644
--- a/history.txt
+++ b/history.txt
@@ -1,4 +1,9 @@
-$Id: history.txt,v 1.119 2004/12/29 10:53:30 jrandom Exp $
+$Id: history.txt,v 1.120 2004/12/29 15:06:43 jrandom Exp $
+
+2004-12-29 jrandom
+ * Imported Ragnarok's addressbook source (2.0.2) which is built but not
+ deployed in the i2pinstall.jar/i2pupdate.zip (yet).
+ * Don't treat connection inactivity closure as a connection error.
2004-12-29 jrandom
* Add in a new keepalive event on each TCP connection, proactively sending
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index 1e1b45724b..3377274001 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.124 $ $Date: 2004/12/29 10:53:28 $";
+ public final static String ID = "$Revision: 1.125 $ $Date: 2004/12/29 15:06:44 $";
public final static String VERSION = "0.4.2.5";
- public final static long BUILD = 2;
+ public final static long BUILD = 3;
public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION);
System.out.println("Router ID: " + RouterVersion.ID);
diff --git a/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java b/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
index 6832c2539f..cd1c57262f 100644
--- a/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
+++ b/router/java/src/net/i2p/router/transport/tcp/ConnectionRunner.java
@@ -168,7 +168,7 @@ class ConnectionRunner implements Runnable {
+ " due to " + DataHelper.formatDuration(timeSinceWrite)
+ " of inactivity after "
+ DataHelper.formatDuration(_con.getLifetime()));
- _con.closeConnection();
+ _con.closeConnection(false);
return;
}
if (_lastTimeSend < _context.clock().now() - 2*TIME_SEND_FREQUENCY)
diff --git a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
index 79e87bfcfa..693bae4ad8 100644
--- a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
+++ b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
@@ -111,7 +111,8 @@ public class TCPConnection {
* be called multiple times safely.
*
*/
- public synchronized void closeConnection() {
+ public synchronized void closeConnection() { closeConnection(true); }
+ public synchronized void closeConnection(boolean wasError) {
if (_log.shouldLog(Log.INFO)) {
if (_ident != null)
_log.info("Connection between " + _ident.getHash().toBase64().substring(0,6)
@@ -140,10 +141,12 @@ public class TCPConnection {
msg.timestamp("closeConnection");
_transport.afterSend(msg, false, true, -1);
}
- _context.profileManager().commErrorOccurred(_ident.getHash());
- _transport.addConnectionErrorMessage("Connection closed with "
- + _ident.getHash().toBase64().substring(0,6)
- + " after " + DataHelper.formatDuration(getLifetime()));
+ if (wasError) {
+ _context.profileManager().commErrorOccurred(_ident.getHash());
+ _transport.addConnectionErrorMessage("Connection closed with "
+ + _ident.getHash().toBase64().substring(0,6)
+ + " after " + DataHelper.formatDuration(getLifetime()));
+ }
_transport.connectionClosed(this);
}