Author: toad
Date: 2007-09-21 16:46:14 +0000 (Fri, 21 Sep 2007)
New Revision: 15240

Modified:
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
Always send an FNPOpennetCompletedAck if we don't send a noderef. Then 
downstream opennet nodes won't timeout even if we are pure darknet.

Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java  2007-09-21 16:41:09 UTC 
(rev 15239)
+++ trunk/freenet/src/freenet/node/RequestHandler.java  2007-09-21 16:46:14 UTC 
(rev 15240)
@@ -262,7 +262,15 @@
        }

        private void finishOpennetChecked() {
-               if(!(node.passOpennetRefsThroughDarknet() || 
source.isOpennet())) return;
+               if(!(node.passOpennetRefsThroughDarknet() || 
source.isOpennet())) {
+                       Message msg = DMT.createFNPOpennetCompletedAck(uid);
+                       try {
+                               source.sendAsync(msg, null, 0, this);
+                       } catch (NotConnectedException e) {
+                               // Oh well...
+                       }
+                       return;
+               }
                finishOpennetInner();
        }

@@ -282,7 +290,15 @@
     }

        private void finishOpennetNoRelayChecked() {
-               if(!(node.passOpennetRefsThroughDarknet() || 
source.isOpennet())) return;
+               if(!(node.passOpennetRefsThroughDarknet() || 
source.isOpennet())) {
+                       Message msg = DMT.createFNPOpennetCompletedAck(uid);
+                       try {
+                               source.sendAsync(msg, null, 0, this);
+                       } catch (NotConnectedException e) {
+                               // Oh well...
+                       }
+                       return;
+               }
                finishOpennetNoRelayInner();
        }



Reply via email to