}
public static void init(String path, String host, int depth, ClassLoader pcl) {
try {
- 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));
+ InetAddress addr = InetAddress.getByName(host);
+ /*
+ boolean good = false;
+ try {
+ if (NetworkInterface.getByInetAddress(addr) != null) good = true;
+ if (!good) Log.warn(Host.class, "host " + host + "resolves to " + addr + " which is not local");
+ } catch (Exception e) {
+ Log.warn(Host.class, "host " + host + "resolves to " + addr + " which is not local because:");
+ Log.warn(Host.class, e);
+ }
+ if (!good) return;
+ */
+ if (new File(path + File.separatorChar + "WEB-INF").exists()) {
+ 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));
+ }
} 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);
}
}