package com.spun.util.io;
import java.net.InetAddress;
import org.apache.commons.net.EchoTCPClient;
import com.spun.util.logger.SimpleLogger;
/**
* A static class of convenience functions for Files
**/
public class InternetConnectivityException extends Error
{
private String htmlText;
private Throwable cause;
/***********************************************************************/
public void setCause(Throwable t)
{
this.cause = t;
}
/***********************************************************************/
public InternetConnectivityException(String string)
{
super(string);
}
/***********************************************************************/
public void setHTMLText(String htmlText)
{
this.htmlText = htmlText;
}
/***********************************************************************/
public String getHTMLText()
{
return htmlText;
}
/***********************************************************************/
public static InternetConnectivityException testInternetConnectivity()
{
String[] sites = {"www.google.com", "www.yahoo.com", "www.msn.com"};
for (int i = 0; i < sites.length; i++)
{
if (pingSite(sites[i])) { return null; }
}
return new InternetConnectivityException("There is no internet connection.");
}
/***********************************************************************/
public String toString()
{
return super.toString() + "\n" + (cause == null ? "" : "Causation: " + cause.toString());
}
/***********************************************************************/
private static boolean pingSite(String site)
{
try
{
EchoTCPClient client = new EchoTCPClient();
client.setDefaultTimeout(1000);
client.connect(InetAddress.getByName(site), 80);
client.disconnect();
return true;
}
catch (Exception e)
{
SimpleLogger.warning(site, e);
return false;
}
}
/***********************************************************************/
/************************************************************************/
}