Author: toad
Date: 2006-09-01 18:04:40 +0000 (Fri, 01 Sep 2006)
New Revision: 10326

Modified:
   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/NodeIPDetector.java
   trunk/freenet/src/freenet/transport/IPAddressDetector.java
   trunk/freenet/src/freenet/transport/IPUtil.java
Log:
Remove old checkAddress code. Java provides methods to classify IP addresses, 
use them.

Modified: trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2006-09-01 
17:54:51 UTC (rev 10325)
+++ trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2006-09-01 
18:04:40 UTC (rev 10326)
@@ -260,12 +260,12 @@

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

Modified: trunk/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/Peer.java 2006-09-01 17:54:51 UTC (rev 
10325)
+++ trunk/freenet/src/freenet/io/comm/Peer.java 2006-09-01 18:04:40 UTC (rev 
10326)
@@ -155,7 +155,7 @@
        public InetAddress getAddress(boolean doDNSRequest, boolean allowLocal) 
throws LocalAddressException {
                InetAddress a = addr.getAddress(doDNSRequest);
                if(a == null) return null;
-               if(allowLocal || IPUtil.checkAddress(a)) return a;
+               if(allowLocal || IPUtil.isValidAddress(a, false)) return a;
                throw new LocalAddressException();
        }


Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2006-09-01 
17:54:51 UTC (rev 10325)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2006-09-01 
18:04:40 UTC (rev 10326)
@@ -189,7 +189,7 @@
                                                // Unique IP address?
                                                Peer peer = p.getPeer();
                                                InetAddress addr = 
peer.getAddress(false);
-                                               if(p.isConnected() && (peer != 
null) && (addr != null) && IPUtil.checkAddress(peer.getAddress())) {
+                                               if(p.isConnected() && (peer != 
null) && (addr != null) && IPUtil.isValidAddress(peer.getAddress(), false)) {
                                                        // Connected node, on a 
real internet IP address.
                                                        // Is it internal?
                                                        boolean internal = 
false;
@@ -380,7 +380,7 @@
                                                failed = true;
                                                for(int i=0;i<v.size();i++) {
                                                        DetectedIP ip = 
(DetectedIP) v.get(i);
-                                                       if(!((ip.publicAddress 
== null) || !IPUtil.checkAddress(ip.publicAddress))) {
+                                                       if(!((ip.publicAddress 
== null) || !IPUtil.isValidAddress(ip.publicAddress, false))) {
                                                                if(logMINOR) 
Logger.minor(this, "Address checked out");
                                                                failed = false;
                                                        }

Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java  2006-09-01 17:54:51 UTC 
(rev 10325)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java  2006-09-01 18:04:40 UTC 
(rev 10326)
@@ -121,7 +121,7 @@
                                if((p == null) || p.isNull()) continue;
                                // DNSRequester doesn't deal with our own node
                                InetAddress ip = p.getAddress(true);
-                               if(!IPUtil.checkAddress(ip)) continue;
+                               if(!IPUtil.isValidAddress(ip, false)) continue;
                                Logger.normal(this, "Peer 
"+peerList[i].getPeer()+" thinks we are "+p);
                                if(countsByPeer.containsKey(ip)) {
                                        Integer count = (Integer) 
countsByPeer.get(p);
@@ -220,7 +220,7 @@
                InetAddress[] addrs = ipDetector.getAddress();
                if(addrs == null || addrs.length == 0) return false;
                for(int i=0;i<addrs.length;i++) {
-                       if(IPAddressDetector.isValidAddress(addrs[i], false)) {
+                       if(IPUtil.isValidAddress(addrs[i], false)) {
                                if(Logger.shouldLog(Logger.MINOR, this))
                                        Logger.minor(this, "Has a directly 
detected IP: "+addrs[i]);
                                return true;

Modified: trunk/freenet/src/freenet/transport/IPAddressDetector.java
===================================================================
--- trunk/freenet/src/freenet/transport/IPAddressDetector.java  2006-09-01 
17:54:51 UTC (rev 10325)
+++ trunk/freenet/src/freenet/transport/IPAddressDetector.java  2006-09-01 
18:04:40 UTC (rev 10326)
@@ -189,7 +189,7 @@
                                                Logger.debug(
                                                        this,
                                                        "Address " + x + ": " + 
i);
-                                       if(isValidAddress(i, 
detector.includeLocalAddressesInNoderefs)) {
+                                       if(IPUtil.isValidAddress(i, 
detector.includeLocalAddressesInNoderefs)) {
                                                output.add(i);
                                        }
                                        if(i.isAnyLocalAddress()) {
@@ -210,27 +210,6 @@
                lastAddressList = (InetAddress[]) output.toArray(new 
InetAddress[output.size()]);
        }

-       public static boolean isValidAddress(InetAddress i, boolean 
includeLocalAddressesInNoderefs) {
-               if(i.isAnyLocalAddress()) {
-                       // Wildcard address, 0.0.0.0, ignore.
-                       return false;
-               } else if(i.isLinkLocalAddress() || i.isLoopbackAddress() ||
-                               i.isSiteLocalAddress()) {
-                       if(includeLocalAddressesInNoderefs) {
-                               return true;
-                       } else return false;
-               } else if(i.isMulticastAddress()) {
-                       // Ignore
-                       return false;
-               } else {
-                       return true;
-               }
-       }
-
-       protected boolean isInternetAddress(InetAddress addr) {
-               return detector.includeLocalAddressesInNoderefs() || 
IPUtil.checkAddress(addr);
-       }
-
        public void run() {
                while(true) {
                        try {

Modified: trunk/freenet/src/freenet/transport/IPUtil.java
===================================================================
--- trunk/freenet/src/freenet/transport/IPUtil.java     2006-09-01 17:54:51 UTC 
(rev 10325)
+++ trunk/freenet/src/freenet/transport/IPUtil.java     2006-09-01 18:04:40 UTC 
(rev 10326)
@@ -1,141 +1,25 @@
 package freenet.transport;

 import java.net.InetAddress;
-import java.util.StringTokenizer;

-import freenet.support.Logger;
-
 public class IPUtil {

        static final boolean strict = true;

-       /**
-        * Is this a valid address? Specifically, return false if it
-        * is in an RFC3330 reserved space.
-        */
-       public static boolean checkAddress(int[] i) {
-               // ip address (IPV6 is not supported by this transport)
-               boolean logDEBUG = Logger.shouldLog(Logger.DEBUG,IPUtil.class);
-               if(logDEBUG)
-                       Logger.debug(IPUtil.class, "Checking 
"+i[0]+"."+i[1]+"."+i[2]+
-                                       "."+i[3]);
-               if (i.length != 4)
+       public static boolean isValidAddress(InetAddress i, boolean 
includeLocalAddressesInNoderefs) {
+               if(i.isAnyLocalAddress()) {
+                       // Wildcard address, 0.0.0.0, ignore.
                        return false;
-
-               for (int j = 0 ; j < 4 ; j++)
-                       if ((i[j] < 0) || (i[j] > 255))
-                               return false;
-
-               if ((i[0] == 10) || ((i[0] == 172) && (i[1] >= 16) && (i[1] < 
31)) 
-                               || ((i[0] == 192) && (i[1] == 168))) // local 
network
+               } else if(i.isLinkLocalAddress() || i.isLoopbackAddress() ||
+                               i.isSiteLocalAddress()) {
+                       if(includeLocalAddressesInNoderefs) {
+                               return true;
+                       } else return false;
+               } else if(i.isMulticastAddress()) {
+                       // Ignore
                        return false;
-
-               if ((i[0] == 169) && (i[1] == 254)) 
-                       return false; // link local
-
-               if ((i[0] == 198) && ((i[1] == 18) || (i[1] == 19)))
-                       return false; // RFC2544
-
-               if ((i[0] == 192) && (i[1] == 0) && (i[2] == 2))
-                       return false; // test-net, see RFC3330
-
-               if (i[0] == 127) // loopback
-                       return false;
-
-               if (i[0] == 0) // "this" net
-                       return false;
-
-               if ((i[0] >= 224) && (i[0] < 240))
-                       return false; // multicast
-
-               return true;
-       }
-
-       public static boolean checkAddress(InetAddress addr) {
-               if(Logger.shouldLog(Logger.DEBUG,IPUtil.class)) 
Logger.debug(IPUtil.class, "Checking "+addr);
-               int[] i = new int[4];
-               byte[] bytes = addr.getAddress();
-               if(bytes.length != 4) {
-                       return false;
-               }
-               for(int x=0;x<4;x++) {
-                       byte b = bytes[x];
-                       int ii = b;
-                       if(ii < 0) ii += 256;
-                       i[x] = ii;
-               }
-               return checkAddress(i);
-       }
-
-       public static boolean checkAddress(byte[] b) {
-               if(b.length != 4) {
-                       return false;
-               }
-               int[] i = new int[4];
-               for(int x=0;x<4;x++) i[x] = b[x] & 0xff;
-               return checkAddress(i);
-       }
-
-       public static boolean checkAddress(String s) {
-               return checkAddress(s, false);
-       }
-
-       public static boolean checkAddress(String s, boolean noPort) {
-               boolean logDEBUG = Logger.shouldLog(Logger.DEBUG,IPUtil.class);
-               if(logDEBUG)
-                       Logger.debug(IPUtil.class, "Checking "+s);
-               String a = s;
-               if(!noPort) {
-                       StringTokenizer st = new StringTokenizer(s, ":");
-                       if (st.countTokens() != 2) 
-                               return false;
-
-                       a = st.nextToken();
-                       try {
-                               int p = Integer.parseInt(st.nextToken());
-                               if ((p < 0) || (p >= (1 << 16)))
-                                       return false;
-                       } catch (NumberFormatException e) {
-                               return false;
-                       }
-               }
-               if (!strict)
+               } else {
                        return true;
-
-               // strict check
-               if(logDEBUG)
-                       Logger.debug(IPUtil.class, "Strict check");
-
-               StringTokenizer at = new StringTokenizer(a, ".");
-               int n = at.countTokens();
-
-               try {
-                       int[] i = new int[4];
-                       for (int j = 0 ; j < 4 ; j++) {
-                               if (!at.hasMoreTokens()) {
-                                       if(logDEBUG)
-                                               Logger.debug(IPUtil.class, 
"Only "+j+" tokens.");
-                                       return false;
-                               }
-                               String tok = at.nextToken();
-                               if(logDEBUG)
-                                       Logger.debug(IPUtil.class, "Trying to 
parseInt: "+tok);
-                               i[j] = Integer.parseInt(tok);
-                       }
-                       return checkAddress(i);
-               } catch (NumberFormatException e) {
-                       // dns address
-                       if (n < 2) {
-                               if(Logger.shouldLog(Logger.MINOR, IPUtil.class))
-                                       Logger.minor(IPUtil.class, a+": Not a 
DNS address, too short!");
-                               return false;
-                       }
-
-                       if(logDEBUG)
-                               Logger.debug(IPUtil.class, "Apparently valid 
DNS address: "+a);
-                       return true;
-                       // maybe we should actually look up the IP address here,
-                       // but I'm concerned about revealing ourselves.
                }
        }



Reply via email to