From: Gary Benson Date: Tue, 5 Sep 2006 07:49:08 +0000 (+0000) Subject: 2006-09-05 Gary Benson X-Git-Tag: releases/gcc-4.2.0~1536 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=366f16226f3a030c4aada829b7665bd4654655aa;p=thirdparty%2Fgcc.git 2006-09-05 Gary Benson * java/net/SocketPermission.java (maybeBracketIPv6Address): Renamed to processHostport. (processHostport): Also translate "" to "localhost". (setHostPort): Remove special cases for empty hostport and for extra colons in hostport (processHostport handles these now). From-SVN: r116694 --- diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj index ee73bdb8ef75..18a890a928e0 100644 --- a/libjava/classpath/ChangeLog.gcj +++ b/libjava/classpath/ChangeLog.gcj @@ -1,3 +1,11 @@ +2006-09-05 Gary Benson + + * java/net/SocketPermission.java + (maybeBracketIPv6Address): Renamed to processHostport. + (processHostport): Also translate "" to "localhost". + (setHostPort): Remove special cases for empty hostport and for + extra colons in hostport (processHostport handles these now). + 2006-08-31 Keith Seitz * include/jvmti.h: Update from Classpath to get latest fixes and diff --git a/libjava/classpath/java/net/SocketPermission.java b/libjava/classpath/java/net/SocketPermission.java index a722fcad4e5f..97e93dcbb352 100644 --- a/libjava/classpath/java/net/SocketPermission.java +++ b/libjava/classpath/java/net/SocketPermission.java @@ -164,21 +164,26 @@ public final class SocketPermission extends Permission implements Serializable */ public SocketPermission(String hostport, String actions) { - super(maybeBracketIPv6Address(hostport)); + super(processHostport(hostport)); setHostPort(getName()); setActions(actions); } /** - * IPv6 addresses in the hostport must either be enclosed by - * "[" and "]" or be specified in the full uncompressed form. - * In the latter case proprietary JVMs will quote the address - * with "[" and "]", so we do to. + * There are two cases in which hostport needs rewriting before + * being passed to the superclass constructor. If hostport is an + * empty string then it is substituted with "localhost". And if + * the host part of hostport is a literal IPv6 address in the full + * uncompressed form not enclosed with "[" and "]" then we enclose + * it with them. */ - private static String maybeBracketIPv6Address(String hostport) + private static String processHostport(String hostport) { - if (hostport.length() == 0 || hostport.charAt(0) == '[') + if (hostport.length() == 0) + return "localhost"; + + if (hostport.charAt(0) == '[') return hostport; int colons = 0, last_colon = 0; @@ -221,11 +226,7 @@ public final class SocketPermission extends Permission implements Serializable { // Split into host and ports String ports; - if (hostport.length() == 0) - { - host = ports = ""; - } - else if (hostport.charAt(0) == '[') + if (hostport.charAt(0) == '[') { // host is a bracketed IPv6 address int end = hostport.indexOf("]"); @@ -255,8 +256,6 @@ public final class SocketPermission extends Permission implements Serializable ports = hostport.substring(sep + 1); } } - if (ports.indexOf(":") != -1) - throw new IllegalArgumentException("Unexpected ':'"); // Parse and validate the ports if (ports.length() == 0)