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

toad at freenetproject.org toad at freenetproject.org
Mon Feb 4 16:23:18 UTC 2008


Author: toad
Date: 2008-02-04 16:23:18 +0000 (Mon, 04 Feb 2008)
New Revision: 17506

Modified:
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
Log:
Reject probe requests with invalid targets.

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java	2008-02-04 14:32:22 UTC (rev 17505)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java	2008-02-04 16:23:18 UTC (rev 17506)
@@ -379,7 +379,18 @@
 			}
 			return true;
 		}
-		ResettingHTLProbeRequestHandler.start(m, source, node);
+		double target = m.getDouble(DMT.TARGET_LOCATION);
+		if(target > 1.0 || target < 0.0) {
+			Logger.normal(this, "Rejecting invalid (target="+target+") probe request from "+source.getPeer());
+			Message rejected = DMT.createFNPRejectedOverload(id, true);
+			try {
+				source.sendAsync(rejected, null, 0, null);
+			} catch (NotConnectedException e) {
+				Logger.normal(this, "Rejecting (invalid) insert request from "+source.getPeer()+": "+e);
+			}
+			return true;
+		}
+		ResettingHTLProbeRequestHandler.start(m, source, node, target);
 		return true;
 	}
 

Modified: trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java	2008-02-04 14:32:22 UTC (rev 17505)
+++ trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java	2008-02-04 16:23:18 UTC (rev 17506)
@@ -26,9 +26,8 @@
 		this.sender = sender;
 	}
 	
-	static void start(Message m, PeerNode source, Node n) {
+	static void start(Message m, PeerNode source, Node n, double target) {
 		long uid = m.getLong(DMT.UID);
-		double target = m.getDouble(DMT.TARGET_LOCATION);
 		double nearestLoc = m.getDouble(DMT.NEAREST_LOCATION);
 		double best = m.getDouble(DMT.BEST_LOCATION);
 		short htl = m.getShort(DMT.HTL);




More information about the cvs mailing list