InetAddress.java (getLocalHost): Refactor to avoid security check if getLocalHostname() fails and to provide...

2006-09-01  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java (getLocalHost): Refactor to avoid
	security check if getLocalHostname() fails and to provide more
	meaningful exceptions it the security check fails.

From-SVN: r116627
This commit is contained in:
Gary Benson 2006-09-01 15:38:00 +00:00 committed by Gary Benson
parent 429b876b07
commit 69afd3217e
2 changed files with 18 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2006-09-01 Gary Benson <gbenson@redhat.com>
* java/net/InetAddress.java (getLocalHost): Refactor to avoid
security check if getLocalHostname() fails and to provide more
meaningful exceptions it the security check fails.
2006-09-01 Gary Benson <gbenson@redhat.com>
* java/net/InetAddress.java (getByAddress): Create Inet4Address

View File

@ -706,7 +706,10 @@ public class InetAddress implements Serializable
String hostname = getLocalHostname();
if (s != null)
if (hostname == null || hostname.length() == 0)
throw new UnknownHostException();
try
{
// "The Java Class Libraries" suggests that if the security
// manager disallows getting the local host name, then
@ -714,37 +717,22 @@ public class InetAddress implements Serializable
// However, the JDK 1.2 API claims to throw SecurityException,
// which seems to suggest SecurityException is *not* caught.
// In this case, experimentation shows that former is correct.
try
if (s != null)
{
// This is wrong, if the name returned from getLocalHostname()
// is not a fully qualified name. FIXME.
s.checkConnect (hostname, -1);
}
catch (SecurityException ex)
{
hostname = null;
}
localhost = new InetAddress (null, null);
lookup (hostname, localhost, false);
}
if (hostname != null && hostname.length() != 0)
catch (Exception ex)
{
try
{
localhost = new InetAddress (null, null);
lookup (hostname, localhost, false);
}
catch (Exception ex)
{
UnknownHostException failure = new UnknownHostException(hostname);
failure.initCause(ex);
throw failure;
}
UnknownHostException failure = new UnknownHostException(hostname);
failure.initCause(ex);
throw failure;
}
else
throw new UnknownHostException();
if (localhost == null)
localhost = new InetAddress (loopbackAddress, "localhost");
}
/**