summaryrefslogtreecommitdiffstats
path: root/libjava/java/net
diff options
context:
space:
mode:
authorgary <gary@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-01 15:38:00 +0000
committergary <gary@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-01 15:38:00 +0000
commitb55535e3e7cdf1f96b876e28a360f3f5576b0843 (patch)
treeafb0ee26e7027ffac4137c59097ef2f0982a6049 /libjava/java/net
parent9891ad1feaedf83b13c416a84644fbc99410bb42 (diff)
downloadppe42-gcc-b55535e3e7cdf1f96b876e28a360f3f5576b0843.tar.gz
ppe42-gcc-b55535e3e7cdf1f96b876e28a360f3f5576b0843.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116627 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/net')
-rw-r--r--libjava/java/net/InetAddress.java36
1 files changed, 12 insertions, 24 deletions
diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java
index 5bb9c0f6867..995e8975657 100644
--- a/libjava/java/net/InetAddress.java
+++ b/libjava/java/net/InetAddress.java
@@ -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");
}
/**
OpenPOWER on IntegriCloud