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

toad at freenetproject.org toad at freenetproject.org
Tue Dec 4 18:20:37 UTC 2007


Author: toad
Date: 2007-12-04 18:20:37 +0000 (Tue, 04 Dec 2007)
New Revision: 16271

Modified:
   trunk/freenet/src/freenet/node/AnnounceSender.java
Log:
Implement sendOurRef() and call it from the right places

Modified: trunk/freenet/src/freenet/node/AnnounceSender.java
===================================================================
--- trunk/freenet/src/freenet/node/AnnounceSender.java	2007-12-04 18:14:40 UTC (rev 16270)
+++ trunk/freenet/src/freenet/node/AnnounceSender.java	2007-12-04 18:20:37 UTC (rev 16271)
@@ -289,6 +289,7 @@
 			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);
@@ -298,6 +299,11 @@
 			} 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;
@@ -361,30 +367,11 @@
 			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();
-			} 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;
-		}
 		return true;
 	}
 
-	private void sendOurRef() {
-		// FIXME transmit our noderef back to the node
-		// TODO Auto-generated method stub
-		
+	private void sendOurRef(PeerNode next) throws NotConnectedException {
+		om.sendAnnouncementReply(uid, next, om.crypto.myCompressedFullRef(), this);
 	}
 
 	private volatile Object totalBytesSync = new Object();




More information about the cvs mailing list