Author: toad
Date: 2008-01-31 23:05:47 +0000 (Thu, 31 Jan 2008)
New Revision: 17450
Modified:
trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
Log:
Don't count nodes on any of our IP addresses either.
Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-01-31
23:02:46 UTC (rev 17449)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-01-31
23:05:47 UTC (rev 17450)
@@ -301,7 +301,7 @@
} else {
- if(shouldDetectWithPeers(now, peers, conns))
startDetect();
+ if(shouldDetectWithPeers(now, peers, conns,
nodeAddrs)) startDetect();
}
}
@@ -332,7 +332,7 @@
* @param conns The node's connected peers.
* @return True if we should run a detection.
*/
- private boolean shouldDetectWithPeers(long now, PeerNode[] peers,
PeerNode[] conns) {
+ private boolean shouldDetectWithPeers(long now, PeerNode[] peers,
PeerNode[] conns, FreenetInetAddress[] nodeAddrs) {
boolean detect = false;
@@ -348,9 +348,20 @@
PeerNode p = peers[i];
if(p.isDisabled()) continue;
// Don't count localhost, LAN addresses.
- InetAddress addr =
p.getPeer().getAddress(false);
- if(addr != null) {
- if(!IPUtil.isValidAddress(addr, false))
continue;
+ FreenetInetAddress a =
p.getPeer().getFreenetAddress();
+ if(a != null) {
+ InetAddress addr = a.getAddress(false);
+ if(addr != null) {
+ if(!IPUtil.isValidAddress(addr,
false)) continue;
+ }
+ boolean skip = false;
+ for(int j=0;j<nodeAddrs.length;j++) {
+ if(a.equals(nodeAddrs[j])) {
+ skip = true;
+ break;
+ }
+ }
+ if(skip) continue;
}
maybeUrgent = true;
if(logMINOR) Logger.minor(this, "No
connections, but have peers, may detect...");