Author: bago
Date: Sun Aug 10 08:30:42 2008
New Revision: 684521

URL: http://svn.apache.org/viewvc?rev=684521&view=rev
Log:
Repackaging utils. Extracted InetNetwork from NetMatcher (they depend on 
api.dnsservice)

Added:
    
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
   (with props)
Modified:
    
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/NetMatcher.java

Added: 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java?rev=684521&view=auto
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
 (added)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
 Sun Aug 10 08:30:42 2008
@@ -0,0 +1,244 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+
+
+package org.apache.james.util.dnsservice;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import org.apache.james.api.dnsservice.DNSService;
+
+class InetNetwork
+{
+
+    /*
+     * Implements network masking, and is compatible with RFC 1518 and
+     * RFC 1519, which describe CIDR: Classless Inter-Domain Routing.
+     */
+
+    private InetAddress network;
+    private InetAddress netmask;
+    private DNSService dnsServer;
+    
+    /**
+     * Constructor
+     * 
+     * @param dnsServer the DNSService to use
+     */
+    InetNetwork(DNSService dnsServer) {
+        this.dnsServer = dnsServer;
+    }
+
+    /**
+     * Constuctor
+     * 
+     * @param ip the InetAddress to init the class
+     * @param netmask the InetAddress represent the netmask to init the class
+     */
+    public InetNetwork(InetAddress ip, InetAddress netmask)
+    {
+        network = maskIP(ip, netmask);
+        this.netmask = netmask;
+    }
+
+    /**
+     * Return true if the network contains the given name
+     * 
+     * @param name hostname or ipAddress
+     * @return true if the network contains the given name
+     * @throws java.net.UnknownHostException if the given name can not resolved
+     */
+    public boolean contains(final String name) throws 
java.net.UnknownHostException
+    {
+        return network.equals(maskIP(dnsServer.getByName(name), netmask));
+    }
+
+    /**
+     * @see #contains(String)
+     */
+    public boolean contains(final InetAddress ip)
+    {
+        return network.equals(maskIP(ip, netmask));
+    }
+
+    /**
+     * Return String represention of this class 
+     * 
+     * @return string String representation of this class
+     */
+    public String toString()
+    {
+        return network.getHostAddress() + "/" + netmask.getHostAddress();
+    }
+
+    /**
+     * Return hashCode representation of this class
+     * 
+     * @return hashCode the hashCode representation of this class
+     */
+    public int hashCode()
+    {
+        return maskIP(network, netmask).hashCode();
+    }
+
+    /**
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object obj)
+    {
+        return (obj != null) && (obj instanceof InetNetwork) &&
+                ((((InetNetwork)obj).network.equals(network)) && 
(((InetNetwork)obj).netmask.equals(netmask)));
+    }
+
+    /**
+     * Get InetNetwork of the given String
+     * 
+     * @param netspec the String which is will converted to InetNetwork
+     * @return network the InetNetwork
+     * @throws java.net.UnknownHostException
+     */
+    public InetNetwork getFromString(String netspec) throws 
java.net.UnknownHostException
+    {
+        if (netspec.endsWith("*")) netspec = normalizeFromAsterisk(netspec);
+        else
+        {
+            int iSlash = netspec.indexOf('/');
+            if (iSlash == -1) netspec += "/255.255.255.255";
+            else if (netspec.indexOf('.', iSlash) == -1) netspec = 
normalizeFromCIDR(netspec);
+        }
+
+        return new InetNetwork(dnsServer.getByName(netspec.substring(0, 
netspec.indexOf('/'))),
+                               
dnsServer.getByName(netspec.substring(netspec.indexOf('/') + 1)));
+    }
+
+    /**
+     * Return InetAddress generated of the passed argements. Return Null if 
any errors accour
+     * 
+     * @param ip the byte[] represent the ip
+     * @param mask the byte[] represent the netmask
+     * @return inetAddress the InetAddress generated of the passed arguments. 
+     */
+    public static InetAddress maskIP(final byte[] ip, final byte[] mask)
+    {
+        try {
+            return getByAddress(new byte[] {
+            (byte) (mask[0] & ip[0]),
+            (byte) (mask[1] & ip[1]),
+            (byte) (mask[2] & ip[2]),
+            (byte) (mask[3] & ip[3])
+        });
+    } catch (UnknownHostException e) {
+            return null;
+    }
+    }
+
+    /**
+     * @see #maskIP(byte[], byte[])
+     */
+    public static InetAddress maskIP(final InetAddress ip, final InetAddress 
mask)
+    {
+        return maskIP(ip.getAddress(), mask.getAddress());
+    }
+
+    /**
+     * This converts from an uncommon "wildcard" CIDR format
+     * to "address + mask" format:
+     * 
+     *   *               =>  000.000.000.0/000.000.000.0
+     *   xxx.*           =>  xxx.000.000.0/255.000.000.0
+     *   xxx.xxx.*       =>  xxx.xxx.000.0/255.255.000.0
+     *   xxx.xxx.xxx.*   =>  xxx.xxx.xxx.0/255.255.255.0
+     * 
+     * @param netspec 
+     * @return addrMask the address/mask of the given argument
+     */
+    static private String normalizeFromAsterisk(final String netspec)
+    {
+        String[] masks = {  "0.0.0.0/0.0.0.0", "0.0.0/255.0.0.0", 
"0.0/255.255.0.0", "0/255.255.255.0" };
+        char[] srcb = netspec.toCharArray();                
+        int octets = 0;
+        for (int i = 1; i < netspec.length(); i++) {
+            if (srcb[i] == '.') octets++;
+        }
+        return (octets == 0) ? masks[0] : netspec.substring(0, 
netspec.length() -1 ).concat(masks[octets]);
+    }
+
+    /**
+     * RFC 1518, 1519 - Classless Inter-Domain Routing (CIDR)
+     * This converts from "prefix + prefix-length" format to
+     * "address + mask" format, e.g. from xxx.xxx.xxx.xxx/yy
+     * to xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy.
+     * 
+     * @param netspec the xxx.xxx.xxx.xxx/yyy format
+     * @return addrMask the xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy format 
+     */
+    static private String normalizeFromCIDR(final String netspec)
+    {
+        final int bits = 32 - 
Integer.parseInt(netspec.substring(netspec.indexOf('/')+1));
+        final int mask = (bits == 32) ? 0 : 0xFFFFFFFF - ((1 << bits)-1);
+
+        return netspec.substring(0, netspec.indexOf('/') + 1) +
+                Integer.toString(mask >> 24 & 0xFF, 10) + "." +
+                Integer.toString(mask >> 16 & 0xFF, 10) + "." +
+                Integer.toString(mask >>  8 & 0xFF, 10) + "." +
+                Integer.toString(mask >>  0 & 0xFF, 10);
+    }
+
+    private static java.lang.reflect.Method getByAddress = null;
+
+    static {
+        try {
+            Class inetAddressClass = Class.forName("java.net.InetAddress");
+            Class[] parameterTypes = { byte[].class };
+            getByAddress = inetAddressClass.getMethod("getByAddress", 
parameterTypes);
+        } catch (Exception e) {
+            getByAddress = null;
+        }
+    }
+
+    /**
+     * Return InetAddress which represent the given byte[]
+     * 
+     * @param ip the byte[] represent the ip
+     * @return ip the InetAddress generated of the given byte[]
+     * @throws java.net.UnknownHostException
+     */
+    private static InetAddress getByAddress(byte[] ip) throws 
java.net.UnknownHostException
+    {
+        InetAddress addr = null;
+        if (getByAddress != null) try {
+            addr = (InetAddress) getByAddress.invoke(null, new Object[] { ip 
});
+        } catch (IllegalAccessException e) {
+        } catch (java.lang.reflect.InvocationTargetException e) {
+        }
+
+        if (addr == null) {
+            addr = InetAddress.getByName
+                   (
+                    Integer.toString(ip[0] & 0xFF, 10) + "." +
+                    Integer.toString(ip[1] & 0xFF, 10) + "." +
+                    Integer.toString(ip[2] & 0xFF, 10) + "." +
+                    Integer.toString(ip[3] & 0xFF, 10)
+                   );
+        }
+        return addr;
+    }
+}

Propchange: 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/InetNetwork.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/NetMatcher.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/NetMatcher.java?rev=684521&r1=684520&r2=684521&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/NetMatcher.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/util/dnsservice/NetMatcher.java
 Sun Aug 10 08:30:42 2008
@@ -17,12 +17,9 @@
  * under the License.                                           *
  ****************************************************************/
 
-
-
 package org.apache.james.util.dnsservice;
 
 import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.util.Collection;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -168,220 +165,3 @@
      */
     protected void log(String s) { }
 }
-
-class InetNetwork
-{
-
-    /*
-     * Implements network masking, and is compatible with RFC 1518 and
-     * RFC 1519, which describe CIDR: Classless Inter-Domain Routing.
-     */
-
-    private InetAddress network;
-    private InetAddress netmask;
-    private DNSService dnsServer;
-    
-    /**
-     * Constructor
-     * 
-     * @param dnsServer the DNSService to use
-     */
-    InetNetwork(DNSService dnsServer) {
-        this.dnsServer = dnsServer;
-    }
-
-    /**
-     * Constuctor
-     * 
-     * @param ip the InetAddress to init the class
-     * @param netmask the InetAddress represent the netmask to init the class
-     */
-    public InetNetwork(InetAddress ip, InetAddress netmask)
-    {
-        network = maskIP(ip, netmask);
-        this.netmask = netmask;
-    }
-
-    /**
-     * Return true if the network contains the given name
-     * 
-     * @param name hostname or ipAddress
-     * @return true if the network contains the given name
-     * @throws java.net.UnknownHostException if the given name can not resolved
-     */
-    public boolean contains(final String name) throws 
java.net.UnknownHostException
-    {
-        return network.equals(maskIP(dnsServer.getByName(name), netmask));
-    }
-
-    /**
-     * @see #contains(String)
-     */
-    public boolean contains(final InetAddress ip)
-    {
-        return network.equals(maskIP(ip, netmask));
-    }
-
-    /**
-     * Return String represention of this class 
-     * 
-     * @return string String representation of this class
-     */
-    public String toString()
-    {
-        return network.getHostAddress() + "/" + netmask.getHostAddress();
-    }
-
-    /**
-     * Return hashCode representation of this class
-     * 
-     * @return hashCode the hashCode representation of this class
-     */
-    public int hashCode()
-    {
-        return maskIP(network, netmask).hashCode();
-    }
-
-    /**
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    public boolean equals(Object obj)
-    {
-        return (obj != null) && (obj instanceof InetNetwork) &&
-                ((((InetNetwork)obj).network.equals(network)) && 
(((InetNetwork)obj).netmask.equals(netmask)));
-    }
-
-    /**
-     * Get InetNetwork of the given String
-     * 
-     * @param netspec the String which is will converted to InetNetwork
-     * @return network the InetNetwork
-     * @throws java.net.UnknownHostException
-     */
-    public InetNetwork getFromString(String netspec) throws 
java.net.UnknownHostException
-    {
-        if (netspec.endsWith("*")) netspec = normalizeFromAsterisk(netspec);
-        else
-        {
-            int iSlash = netspec.indexOf('/');
-            if (iSlash == -1) netspec += "/255.255.255.255";
-            else if (netspec.indexOf('.', iSlash) == -1) netspec = 
normalizeFromCIDR(netspec);
-        }
-
-        return new InetNetwork(dnsServer.getByName(netspec.substring(0, 
netspec.indexOf('/'))),
-                               
dnsServer.getByName(netspec.substring(netspec.indexOf('/') + 1)));
-    }
-
-    /**
-     * Return InetAddress generated of the passed argements. Return Null if 
any errors accour
-     * 
-     * @param ip the byte[] represent the ip
-     * @param mask the byte[] represent the netmask
-     * @return inetAddress the InetAddress generated of the passed arguments. 
-     */
-    public static InetAddress maskIP(final byte[] ip, final byte[] mask)
-    {
-        try {
-            return getByAddress(new byte[] {
-            (byte) (mask[0] & ip[0]),
-            (byte) (mask[1] & ip[1]),
-            (byte) (mask[2] & ip[2]),
-            (byte) (mask[3] & ip[3])
-        });
-    } catch (UnknownHostException e) {
-            return null;
-    }
-    }
-
-    /**
-     * @see #maskIP(byte[], byte[])
-     */
-    public static InetAddress maskIP(final InetAddress ip, final InetAddress 
mask)
-    {
-        return maskIP(ip.getAddress(), mask.getAddress());
-    }
-
-    /**
-     * This converts from an uncommon "wildcard" CIDR format
-     * to "address + mask" format:
-     * 
-     *   *               =>  000.000.000.0/000.000.000.0
-     *   xxx.*           =>  xxx.000.000.0/255.000.000.0
-     *   xxx.xxx.*       =>  xxx.xxx.000.0/255.255.000.0
-     *   xxx.xxx.xxx.*   =>  xxx.xxx.xxx.0/255.255.255.0
-     * 
-     * @param netspec 
-     * @return addrMask the address/mask of the given argument
-     */
-    static private String normalizeFromAsterisk(final String netspec)
-    {
-        String[] masks = {  "0.0.0.0/0.0.0.0", "0.0.0/255.0.0.0", 
"0.0/255.255.0.0", "0/255.255.255.0" };
-        char[] srcb = netspec.toCharArray();                
-        int octets = 0;
-        for (int i = 1; i < netspec.length(); i++) {
-            if (srcb[i] == '.') octets++;
-        }
-        return (octets == 0) ? masks[0] : netspec.substring(0, 
netspec.length() -1 ).concat(masks[octets]);
-    }
-
-    /**
-     * RFC 1518, 1519 - Classless Inter-Domain Routing (CIDR)
-     * This converts from "prefix + prefix-length" format to
-     * "address + mask" format, e.g. from xxx.xxx.xxx.xxx/yy
-     * to xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy.
-     * 
-     * @param netspec the xxx.xxx.xxx.xxx/yyy format
-     * @return addrMask the xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy format 
-     */
-    static private String normalizeFromCIDR(final String netspec)
-    {
-        final int bits = 32 - 
Integer.parseInt(netspec.substring(netspec.indexOf('/')+1));
-        final int mask = (bits == 32) ? 0 : 0xFFFFFFFF - ((1 << bits)-1);
-
-        return netspec.substring(0, netspec.indexOf('/') + 1) +
-                Integer.toString(mask >> 24 & 0xFF, 10) + "." +
-                Integer.toString(mask >> 16 & 0xFF, 10) + "." +
-                Integer.toString(mask >>  8 & 0xFF, 10) + "." +
-                Integer.toString(mask >>  0 & 0xFF, 10);
-    }
-
-    private static java.lang.reflect.Method getByAddress = null;
-
-    static {
-        try {
-            Class inetAddressClass = Class.forName("java.net.InetAddress");
-            Class[] parameterTypes = { byte[].class };
-            getByAddress = inetAddressClass.getMethod("getByAddress", 
parameterTypes);
-        } catch (Exception e) {
-            getByAddress = null;
-        }
-    }
-
-    /**
-     * Return InetAddress which represent the given byte[]
-     * 
-     * @param ip the byte[] represent the ip
-     * @return ip the InetAddress generated of the given byte[]
-     * @throws java.net.UnknownHostException
-     */
-    private static InetAddress getByAddress(byte[] ip) throws 
java.net.UnknownHostException
-    {
-        InetAddress addr = null;
-        if (getByAddress != null) try {
-            addr = (InetAddress) getByAddress.invoke(null, new Object[] { ip 
});
-        } catch (IllegalAccessException e) {
-        } catch (java.lang.reflect.InvocationTargetException e) {
-        }
-
-        if (addr == null) {
-            addr = InetAddress.getByName
-                   (
-                    Integer.toString(ip[0] & 0xFF, 10) + "." +
-                    Integer.toString(ip[1] & 0xFF, 10) + "." +
-                    Integer.toString(ip[2] & 0xFF, 10) + "." +
-                    Integer.toString(ip[3] & 0xFF, 10)
-                   );
-        }
-        return addr;
-    }
-}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to