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;
}