Author: toad
Date: 2007-12-04 19:06:46 +0000 (Tue, 04 Dec 2007)
New Revision: 16282
Modified:
trunk/freenet/src/freenet/node/AnnounceSender.java
trunk/freenet/src/freenet/node/AnnouncementCallback.java
trunk/freenet/src/freenet/node/TextModeClientInterface.java
Log:
Relay them, and report them to the callback
Modified: trunk/freenet/src/freenet/node/AnnounceSender.java
===================================================================
--- trunk/freenet/src/freenet/node/AnnounceSender.java 2007-12-04 19:03:48 UTC
(rev 16281)
+++ trunk/freenet/src/freenet/node/AnnounceSender.java 2007-12-04 19:06:46 UTC
(rev 16282)
@@ -211,7 +211,8 @@
MessageFilter mfRejectedOverload =
MessageFilter.create().setSource(next).setField(DMT.UID,
uid).setTimeout(ANNOUNCE_TIMEOUT).setType(DMT.FNPRejectedOverload);
MessageFilter mfAnnounceReply =
MessageFilter.create().setSource(next).setField(DMT.UID,
uid).setTimeout(ANNOUNCE_TIMEOUT).setType(DMT.FNPOpennetAnnounceReply);
MessageFilter mfOpennetDisabled =
MessageFilter.create().setSource(next).setField(DMT.UID,
uid).setTimeout(ANNOUNCE_TIMEOUT).setType(DMT.FNPOpennetDisabled);
- MessageFilter mf =
mfAnnounceCompleted.or(mfRouteNotFound.or(mfRejectedOverload.or(mfAnnounceReply.or(mfOpennetDisabled))));
+ MessageFilter mfNotWanted =
MessageFilter.create().setSource(next).setField(DMT.UID,
uid).setTimeout(ANNOUNCE_TIMEOUT).setType(DMT.FNPOpennetAnnounceNodeNotWanted);
+ MessageFilter mf =
mfAnnounceCompleted.or(mfRouteNotFound.or(mfRejectedOverload.or(mfAnnounceReply.or(mfOpennetDisabled.or(mfNotWanted)))));
try {
msg = node.usm.waitFor(mf, this);
@@ -256,6 +257,18 @@
continue; // There may be more
}
+ if(msg.getSpec() == DMT.FNPOpennetAnnounceNodeNotWanted) {
+ if(cb != null)
+ cb.nodeNotWanted();
+ if(source != null)
+ try {
+ sendNotWanted();
+ } catch (NotConnectedException
e) {
+ Logger.error(this,
"Lost connection to source");
+ return;
+ }
+ }
+
Logger.error(this, "Unexpected message: "+msg);
}
}
Modified: trunk/freenet/src/freenet/node/AnnouncementCallback.java
===================================================================
--- trunk/freenet/src/freenet/node/AnnouncementCallback.java 2007-12-04
19:03:48 UTC (rev 16281)
+++ trunk/freenet/src/freenet/node/AnnouncementCallback.java 2007-12-04
19:06:46 UTC (rev 16282)
@@ -9,5 +9,6 @@
public void bogusNoderef(String reason);
public void nodeFailed(PeerNode pn, String reason);
public void addedNode(PeerNode pn);
+ public void nodeNotWanted();
}
Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java 2007-12-04
19:03:48 UTC (rev 16281)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java 2007-12-04
19:06:46 UTC (rev 16282)
@@ -945,6 +945,15 @@
// Ignore
}
}
+
+ public void nodeNotWanted() {
+ try {
+ out.write(("Hop doesn't want
me.").getBytes());
+ out.flush();
+ } catch (IOException e) {
+ // Ignore
+ }
+ }
});
} else {