aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorBryce McKinlay <mckinlay@redhat.com>2004-08-13 22:17:34 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2004-08-13 23:17:34 +0100
commitd7945fafe30409970df153ece1ad881776a49747 (patch)
tree71045c3b297bbcfcc11626a043b6935f90d3b53f /libjava/java
parent1ef02b9de5bc2b05d07e2fa15d5f62b7fa6ddfdd (diff)
downloadgcc-d7945fafe30409970df153ece1ad881776a49747.zip
gcc-d7945fafe30409970df153ece1ad881776a49747.tar.gz
gcc-d7945fafe30409970df153ece1ad881776a49747.tar.bz2
InetAddress.java (loopbackAddress): Renamed from localhostAddress.
2004-08-13 Bryce McKinlay <mckinlay@redhat.com> * java/net/InetAddress.java (loopbackAddress): Renamed from localhostAddress. (getByName): Return loopback address for null hostname, without security check. Use lookup(), not getAllByName. (getAllByName): Return loopback address for null hostname, without security check. * java/net/natInetAddressPosix.cc (lookup): Don't perform security check here. From-SVN: r85967
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/net/InetAddress.java33
-rw-r--r--libjava/java/net/natInetAddressPosix.cc7
2 files changed, 22 insertions, 18 deletions
diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java
index 6d57566..cf1f3a5 100644
--- a/libjava/java/net/InetAddress.java
+++ b/libjava/java/net/InetAddress.java
@@ -68,7 +68,10 @@ public class InetAddress implements Serializable
*/
static InetAddress ANY_IF;
- private static final byte[] localhostAddress = { 127, 0, 0, 1 };
+ private static final byte[] loopbackAddress = { 127, 0, 0, 1 };
+
+ private static final InetAddress loopback
+ = new InetAddress (loopbackAddress, "localhost");
private static InetAddress localhost = null;
@@ -564,7 +567,8 @@ public class InetAddress implements Serializable
* default. This method is equivalent to returning the first element in
* the InetAddress array returned from GetAllByName.
*
- * @param hostname The name of the desired host, or null for the local machine.
+ * @param hostname The name of the desired host, or null for the local
+ * loopback address.
*
* @return The address of the host as an InetAddress object.
*
@@ -576,14 +580,15 @@ public class InetAddress implements Serializable
public static InetAddress getByName(String hostname)
throws UnknownHostException
{
+ // If null or the empty string is supplied, the loopback address
+ // is returned. Note that this is permitted without a security check.
+ if (hostname == null || hostname.length() == 0)
+ return loopback;
+
SecurityManager s = System.getSecurityManager();
if (s != null)
s.checkConnect(hostname, -1);
- // Default to current host if necessary
- if (hostname == null || hostname.length() == 0)
- return getLocalHost();
-
// Assume that the host string is an IP address
byte[] address = aton(hostname);
if (address != null)
@@ -608,8 +613,9 @@ public class InetAddress implements Serializable
}
// Try to resolve the host by DNS
- InetAddress[] addresses = getAllByName(hostname);
- return addresses[0];
+ InetAddress result = new InetAddress(null, null);
+ lookup (hostname, result, false);
+ return result;
}
/**
@@ -620,7 +626,7 @@ public class InetAddress implements Serializable
* hostname of the local machine is supplied by default.
*
* @param hostname The name of the desired host, or null for the
- * local machine.
+ * local loopback address.
*
* @return All addresses of the host as an array of InetAddress objects.
*
@@ -632,6 +638,11 @@ public class InetAddress implements Serializable
public static InetAddress[] getAllByName(String hostname)
throws UnknownHostException
{
+ // If null or the empty string is supplied, the loopback address
+ // is returned. Note that this is permitted without a security check.
+ if (hostname == null || hostname.length() == 0)
+ return new InetAddress[] {loopback};
+
SecurityManager s = System.getSecurityManager();
if (s != null)
s.checkConnect(hostname, -1);
@@ -676,7 +687,7 @@ public class InetAddress implements Serializable
// However, if there is a security manager, and the cached result
// is other than "localhost", we need to check again.
if (localhost == null
- || (s != null && localhost.addr != localhostAddress))
+ || (s != null && ! localhost.isLoopbackAddress()))
getLocalHost (s);
return localhost;
@@ -724,7 +735,7 @@ public class InetAddress implements Serializable
}
if (localhost == null)
- localhost = new InetAddress (localhostAddress, "localhost");
+ localhost = new InetAddress (loopbackAddress, "localhost");
}
/**
diff --git a/libjava/java/net/natInetAddressPosix.cc b/libjava/java/net/natInetAddressPosix.cc
index b97502e..9edfae2 100644
--- a/libjava/java/net/natInetAddressPosix.cc
+++ b/libjava/java/net/natInetAddressPosix.cc
@@ -229,13 +229,6 @@ java::net::InetAddress::lookup (jstring host, java::net::InetAddress* iaddr,
{
if (!all)
host = JvNewStringUTF (hptr->h_name);
- java::lang::SecurityException *ex = checkConnect (host);
- if (ex != NULL)
- {
- if (iaddr == NULL || iaddr->addr == NULL)
- throw ex;
- hptr = NULL;
- }
}
if (hptr == NULL)
{