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 {


Reply via email to