Author: toad
Date: 2008-03-11 15:02:36 +0000 (Tue, 11 Mar 2008)
New Revision: 18460

Modified:
   trunk/freenet/src/freenet/io/AddressTracker.java
   trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
   trunk/freenet/src/freenet/io/comm/Peer.java
   trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeIPDetector.java
   trunk/freenet/src/freenet/node/NodeIPPortDetector.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Add allowLocalAddresses to FreenetInetAddress.isRealInternetAddress().
Benefit: even if allow local addresses is enabled, we can still screen out 
silly addresses such as multicast and wildcard (0.x.y.z) addresses.

Modified: trunk/freenet/src/freenet/io/AddressTracker.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTracker.java    2008-03-11 15:00:44 UTC 
(rev 18459)
+++ trunk/freenet/src/freenet/io/AddressTracker.java    2008-03-11 15:02:36 UTC 
(rev 18460)
@@ -220,7 +220,7 @@
                for(int i=0;i<items.length;i++) {
                        PeerAddressTrackerItem item = items[i];
                        if(item.packetsReceived() <= 0) continue;
-                       if(!item.peer.isRealInternetAddress(false, false)) 
continue;
+                       if(!item.peer.isRealInternetAddress(false, false, 
false)) continue;
                        longestGap = Math.max(longestGap, 
item.longestGap(horizon, now));
                }
                return longestGap;

Modified: trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2008-03-11 
15:00:44 UTC (rev 18459)
+++ trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2008-03-11 
15:02:36 UTC (rev 18460)
@@ -352,14 +352,14 @@
                        return addr;
        }

-       public boolean isRealInternetAddress(boolean lookup, boolean 
defaultVal) {
+       public boolean isRealInternetAddress(boolean lookup, boolean 
defaultVal, boolean allowLocalAddresses) {
                if(_address != null) {
-                       return IPUtil.isValidAddress(_address, false);
+                       return IPUtil.isValidAddress(_address, 
allowLocalAddresses);
                } else {
                        if(lookup) {
                                InetAddress a = getAddress();
                                if(a != null)
-                                       return IPUtil.isValidAddress(a, false);
+                                       return IPUtil.isValidAddress(a, 
allowLocalAddresses);
                        }
                        return defaultVal;      
                }

Modified: trunk/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/Peer.java 2008-03-11 15:00:44 UTC (rev 
18459)
+++ trunk/freenet/src/freenet/io/comm/Peer.java 2008-03-11 15:02:36 UTC (rev 
18460)
@@ -228,8 +228,8 @@
                return addr;
        }

-       public boolean isRealInternetAddress(boolean lookup, boolean 
defaultVal) {
-               return addr.isRealInternetAddress(lookup, defaultVal);
+       public boolean isRealInternetAddress(boolean lookup, boolean 
defaultVal, boolean allowLocalAddresses) {
+               return addr.isRealInternetAddress(lookup, defaultVal, 
allowLocalAddresses);
        }

        /**

Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-03-11 
15:00:44 UTC (rev 18459)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-03-11 
15:02:36 UTC (rev 18460)
@@ -382,7 +382,7 @@
                        if(firstTimeUrgent <= 0)
                                firstTimeUrgent = now;

-                       if(detector.oldIPAddress != null && 
detector.oldIPAddress.isRealInternetAddress(false, false)) {
+                       if(detector.oldIPAddress != null && 
detector.oldIPAddress.isRealInternetAddress(false, false, false)) {
                                if(logDEBUG) Logger.debug(this, "Detecting in 2 
minutes as have oldIPAddress");
                                // Allow 2 minutes to get incoming connections 
and therefore detect from them.
                                // In the meantime, *hopefully* our 
oldIPAddress is valid.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2008-03-11 15:00:44 UTC (rev 
18459)
+++ trunk/freenet/src/freenet/node/Node.java    2008-03-11 15:02:36 UTC (rev 
18460)
@@ -3140,9 +3140,9 @@
         */
        public synchronized boolean dontDetect() {
                // Only return true if bindTo is set on all ports which are in 
use
-               if(!darknetCrypto.bindto.isRealInternetAddress(false, true)) 
return false;
+               if(!darknetCrypto.bindto.isRealInternetAddress(false, true, 
false)) return false;
                if(opennet != null) {
-                       if(opennet.crypto.bindto.isRealInternetAddress(false, 
true)) return false;
+                       if(opennet.crypto.bindto.isRealInternetAddress(false, 
true, false)) return false;
                }
                return true;
        }

Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-03-11 15:00:44 UTC 
(rev 18459)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-03-11 15:02:36 UTC 
(rev 18460)
@@ -103,7 +103,7 @@
                        // If the IP is overridden and the override is valid, 
the override has to be the first element.
                        // overrideIPAddress will be null if the override is 
invalid
                        addresses.add(overrideIPAddress);
-                       if(overrideIPAddress.isRealInternetAddress(false, true))
+                       if(overrideIPAddress.isRealInternetAddress(false, true, 
false))
                                addedValidIP = true;
                }

@@ -166,7 +166,7 @@
                        if(!addresses.contains(addr)) {
                                Logger.normal(this, "Detected IP address: 
"+addr);
                                addresses.add(addr);
-                               if(addr.isRealInternetAddress(false, false))
+                               if(addr.isRealInternetAddress(false, false, 
false))
                                        addedValidIP = true;
                        }
                }
@@ -179,7 +179,7 @@
                                if(!addresses.contains(a)) {
                                        Logger.normal(this, "Plugin detected IP 
address: "+a);
                                        addresses.add(a);
-                                       if(a.isRealInternetAddress(false, 
false))
+                                       if(a.isRealInternetAddress(false, 
false, false))
                                                addedValidIP = true;
                                }
                        }
@@ -187,7 +187,7 @@

                if((!addedValidIP) && (oldIPAddress != null) && 
!oldIPAddress.equals(overrideIPAddress)) {
                        addresses.add(oldIPAddress);
-                       if(oldIPAddress.isRealInternetAddress(false, true))
+                       if(oldIPAddress.isRealInternetAddress(false, true, 
false))
                                addedValidIP = true;
                }

@@ -217,7 +217,7 @@
                                FreenetInetAddress addr = (FreenetInetAddress) 
(it.next());
                                Logger.minor(this, "Everyone agrees we are 
"+addr);
                                if(!addresses.contains(addr)) {
-                                       if(addr.isRealInternetAddress(false, 
false))
+                                       if(addr.isRealInternetAddress(false, 
false, false))
                                                addedValidIP = true;
                                        addresses.add(addr);
                                }
@@ -244,14 +244,14 @@
                                                if(!addresses.contains(best)) {
                                                        Logger.normal(this, 
"Adding best peer "+best+" ("+bestPopularity+ ')');
                                                        addresses.add(best);
-                                                       
if(best.isRealInternetAddress(false, false))
+                                                       
if(best.isRealInternetAddress(false, false, false))
                                                                addedValidIP = 
true;
                                                }
                                                if((secondBest != null) && 
(secondBestPopularity > 1)) {
                                                        
if(!addresses.contains(secondBest)) {
                                                                
Logger.normal(this, "Adding second best peer "+secondBest+" ("+secondBest+ ')');
                                                                
addresses.add(secondBest);
-                                                               
if(secondBest.isRealInternetAddress(false, false))
+                                                               
if(secondBest.isRealInternetAddress(false, false, false))
                                                                        
addedValidIP = true;
                                                        }
                                                }

Modified: trunk/freenet/src/freenet/node/NodeIPPortDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPPortDetector.java      2008-03-11 
15:00:44 UTC (rev 18459)
+++ trunk/freenet/src/freenet/node/NodeIPPortDetector.java      2008-03-11 
15:02:36 UTC (rev 18460)
@@ -45,7 +45,7 @@
        FreenetInetAddress[] detectPrimaryIPAddress() {
                FreenetInetAddress[] addresses = 
ipDetector.detectPrimaryIPAddress();
                FreenetInetAddress addr = crypto.bindto;
-               if(addr.isRealInternetAddress(false, true)) {
+               if(addr.isRealInternetAddress(false, true, false)) {
                        for(int i=0;i<addresses.length;i++) {
                                if(addresses[i] == addr) return addresses;
                        }

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2008-03-11 15:00:44 UTC 
(rev 18459)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2008-03-11 15:02:36 UTC 
(rev 18460)
@@ -3507,7 +3507,7 @@
                                if(logMINOR) Logger.minor(this, "Not sending 
handshake to "+handshakeIPs[i]+" for "+getPeer()+" because the DNS lookup 
failed or it's a currently unsupported IPv6 address");
                                continue;
                        }
-                       if((!allowLocalAddresses()) && 
(!peer.isRealInternetAddress(false, false))) {
+                       if(!peer.isRealInternetAddress(false, false, 
allowLocalAddresses())) {
                                if(logMINOR) Logger.minor(this, "Not sending 
handshake to "+handshakeIPs[i]+" for "+getPeer()+" because it's not a real 
Internet address and metadata.allowLocalAddresses is not true");
                                continue;
                        }


Reply via email to