[freenet-cvs] r16272 - trunk/freenet/src/freenet/node

toad at freenetproject.org toad at freenetproject.org
Tue Dec 4 18:24:56 UTC 2007


Author: toad
Date: 2007-12-04 18:24:55 +0000 (Tue, 04 Dec 2007)
New Revision: 16272

Modified:
   trunk/freenet/src/freenet/node/AnnounceSender.java
Log:
in fact that's wrong.
send our noderef upstream when received the incoming announcement.
don't send a noderef in response to a reply we get.

Modified: trunk/freenet/src/freenet/node/AnnounceSender.java
===================================================================
--- trunk/freenet/src/freenet/node/AnnounceSender.java	2007-12-04 18:20:37 UTC (rev 16271)
+++ trunk/freenet/src/freenet/node/AnnounceSender.java	2007-12-04 18:24:55 UTC (rev 16272)
@@ -289,7 +289,6 @@
 			try {
 				OpennetPeerNode pn = node.addNewOpennetNode(fs);
 				cb.addedNode(pn);
-				sendOurRef(source);
 			} catch (FSParseException e) {
 				Logger.normal(this, "Failed to parse reply: "+e, e);
 				if(cb != null) cb.bogusNoderef("parse failed: "+e);
@@ -299,11 +298,6 @@
 			} catch (ReferenceSignatureVerificationException e) {
 				Logger.normal(this, "Failed to parse reply: "+e, e);
 				if(cb != null) cb.bogusNoderef("parse failed: "+e);
-			} catch (NotConnectedException e) {
-				Logger.normal(this, "Added their ref but then lost connection");
-				// It will be dropped soon. :(
-				// FIXME maybe we should remove it here.
-				return false;
 			}
 		}
 		return true;
@@ -367,6 +361,26 @@
 			om.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this);
 			return false;
 		}
+		// If we want it, add it and send it.
+		try {
+			if(om.addNewOpennetNode(fs) != null) {
+				sendOurRef(source);
+			} else {
+				// Okay, just route it.
+			}
+		} catch (FSParseException e) {
+			om.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this);
+			return false;
+		} catch (PeerParseException e) {
+			om.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this);
+			return false;
+		} catch (ReferenceSignatureVerificationException e) {
+			om.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this);
+			return false;
+		} catch (NotConnectedException e) {
+			Logger.normal(this, "Could not receive noderef, disconnected");
+			return false;
+		}
 		return true;
 	}
 




More information about the cvs mailing list