From 94becebafa246b3d7dd9c4975da7f33f1b33d3f3 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Sun, 1 Aug 2004 20:37:44 +0000
Subject: [PATCH] increase the (essentially) arbitrary choke on message send
 times (which has caused some reliability problems under load)

---
 .../src/net/i2p/router/transport/tcp/TCPConnection.java  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

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 72c27cf373..4162fb58a5 100644
--- a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
+++ b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java
@@ -432,6 +432,13 @@ class TCPConnection implements I2NPMessageReader.I2NPMessageEventListener {
             _log.warn("Error reading from stream to " + _remoteIdentity.getHash().toBase64(), error);
     }
     
+    /**
+     * If we are taking an absurdly long time to send out a message, drop it 
+     * since we're overloaded.
+     *
+     */
+    private static final long MAX_LIFETIME_BEFORE_OUTBOUND_EXPIRE = 15*1000;
+    
     class ConnectionRunner implements Runnable {
         private boolean _running;
         public void run() {
@@ -494,7 +501,7 @@ class TCPConnection implements I2NPMessageReader.I2NPMessageEventListener {
                     long lifetime = cur.timestamp("TCPConnection.runner.locked_expireOldMessages still ok with " 
                                                   + (i) + " ahead and " + (_toBeSent.size()-i-1) 
                                                   + " behind on the queue");
-                    if (lifetime > 5*1000) {
+                    if (lifetime > MAX_LIFETIME_BEFORE_OUTBOUND_EXPIRE) {
                         cur.timestamp("TCPConnection.runner.locked_expireOldMessages lifetime too long - " + lifetime);
                         if (timedOut == null)
                             timedOut = new ArrayList(2);
-- 
GitLab