Author: toad
Date: 2007-10-26 16:29:34 +0000 (Fri, 26 Oct 2007)
New Revision: 15571

Modified:
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
some more trivial refactoring in the opennet code

Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java  2007-10-26 16:25:53 UTC 
(rev 15570)
+++ trunk/freenet/src/freenet/node/RequestHandler.java  2007-10-26 16:29:34 UTC 
(rev 15571)
@@ -288,7 +288,15 @@
                        return;
                }

-               finishOpennetNoRelayInner(om);
+               if(!finishOpennetNoRelayInner(om)) {
+                       Message msg = DMT.createFNPOpennetCompletedAck(uid);
+                       try {
+                               source.sendAsync(msg, null, 0, this);
+                       } catch (NotConnectedException e) {
+                               // Oh well...
+                       }
+                       return;
+               }
        }

        private void finishOpennetInner() {
@@ -306,7 +314,15 @@

                byte[] noderef = rs.waitForOpennetNoderef();
                if(noderef == null) {
-                       finishOpennetNoRelayInner(om);
+                       if(!finishOpennetNoRelayInner(om)) {
+                               Message msg = 
DMT.createFNPOpennetCompletedAck(uid);
+                               try {
+                                       source.sendAsync(msg, null, 0, this);
+                               } catch (NotConnectedException e) {
+                                       // Oh well...
+                               }
+                               return;
+                       }
                        return;
                }

@@ -321,8 +337,9 @@
        /**
         * Send our noderef to the request source, wait for a reply, if we get 
one add it. Called when either the request
         * wasn't routed, or the node it was routed to didn't return a noderef.
+        * @return True if success, or lost connection; false if we need to 
send an ack.
         */
-    private void finishOpennetNoRelayInner(OpennetManager om) {
+    private boolean finishOpennetNoRelayInner(OpennetManager om) {
        if(logMINOR)
                Logger.minor(this, "Finishing opennet: sending own reference");
                if(om.wantPeer(null, false)) {
@@ -332,7 +349,7 @@
                        } catch (NotConnectedException e) {
                                Logger.normal(this, "Can't send opennet ref 
because node disconnected on "+this);
                                // Oh well...
-                               return;
+                               return true;
                        }

                        // Wait for response
@@ -340,27 +357,13 @@
                        byte[] noderef = 
                                om.waitForOpennetNoderef(true, source, uid, 
this);

-                       if(noderef == null) {
-                               Message msg = 
DMT.createFNPOpennetCompletedAck(uid);
-                               try {
-                                       source.sendAsync(msg, null, 0, this);
-                               } catch (NotConnectedException e) {
-                                       // Oh well...
-                               }
-                               return;
-                       }
+                       if(noderef == null)
+                               return false;

                        SimpleFieldSet ref = om.validateNoderef(noderef, 0, 
noderef.length, source);

-                       if(ref == null) {
-                               Message msg = 
DMT.createFNPOpennetCompletedAck(uid);
-                               try {
-                                       source.sendAsync(msg, null, 0, this);
-                               } catch (NotConnectedException e) {
-                                       // Oh well...
-                               }
-                               return;
-                       }
+                       if(ref == null) 
+                               return false;

                    try {
                                if(!node.addNewOpennetNode(ref)) {
@@ -375,14 +378,9 @@
                        } catch (ReferenceSignatureVerificationException e) {
                                Logger.error(this, "Bad signature on opennet 
noderef for "+this+" from "+source+" : "+e, e);
                        }
-                       return;
+                       return true;
                }
-               Message msg = DMT.createFNPOpennetCompletedAck(uid);
-               try {
-                       source.sendAsync(msg, null, 0, this);
-               } catch (NotConnectedException e) {
-                       // Oh well...
-               }
+               return false;
     }

     /**


Reply via email to