resolve
[org.ibex.jinetd.git] / src / org / ibex / jinetd / Host.java
index 8df789f..0a27734 100644 (file)
@@ -32,18 +32,23 @@ public class Host extends TreeClassLoader {
         init(org.ibex.jinetd.Main.ROOT + "/host", "", 0, Main.getRootClassLoader());
     }
     public static void init(String path, String host, int depth, ClassLoader pcl) {
+       if (!new File(path).exists() || !new File(path).isDirectory()) return;
         try {
-            InetAddress.getByName(host);
+           Log.warn(Host.class, "resolving " + host);
+            InetAddress ia = InetAddress.getByName(host);
             String pad = "";
             while(pad.length() + host.length() < 30) pad += " ";
-            Log.info(Main.class, pad + host + " => " + path);
-            hosts.put(host, pcl = new Host(path, host, pcl));
+            if (ia.equals(InetAddress.getLocalHost())) {
+                Log.info(Main.class, pad + host + " => " + path);
+                hosts.put(host, pcl = new Host(path, host, pcl));
+            }
         } catch (UnknownHostException e) {
             if (depth >= 3) return;
         }
         String[] subdirs = new File(path).list();
-        for(int i=0; i<subdirs.length; i++)
-            init(path + File.separatorChar + subdirs[i], host.equals("") ? subdirs[i] : subdirs[i]+"."+host, depth+1, pcl);
+        if (subdirs != null)
+            for(int i=0; i<subdirs.length; i++)
+                init(path + File.separatorChar + subdirs[i], host.equals("") ? subdirs[i] : subdirs[i]+"."+host, depth+1, pcl);
     }
 
 }