You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by enixon <gi...@git.apache.org> on 2018/08/01 18:35:46 UTC

[GitHub] zookeeper pull request #587: ZOOKEEPER-3106: Zookeeper client supports IPv6 ...

Github user enixon commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/587#discussion_r206983579
  
    --- Diff: src/java/main/org/apache/zookeeper/client/ConnectStringParser.java ---
    @@ -68,14 +69,26 @@ public ConnectStringParser(String connectString) {
             List<String> hostsList = split(connectString,",");
             for (String host : hostsList) {
                 int port = DEFAULT_PORT;
    -            int pidx = host.lastIndexOf(':');
    -            if (pidx >= 0) {
    -                // otherwise : is at the end of the string, ignore
    -                if (pidx < host.length() - 1) {
    -                    port = Integer.parseInt(host.substring(pidx + 1));
    -                }
    -                host = host.substring(0, pidx);
    +            if (!connectString.startsWith("[")) {//IPv4
    +	            int pidx = host.lastIndexOf(':');
    +	            if (pidx >= 0) {
    +	                // otherwise : is at the end of the string, ignore
    +	                if (pidx < host.length() - 1) {
    +	                    port = Integer.parseInt(host.substring(pidx + 1));
    +	                }
    +	                host = host.substring(0, pidx);
    +            	}
    +            } else {                            //IPv6
    +            	int pidx = host.lastIndexOf(':');
    +            	int bracketIdx = host.lastIndexOf(']');
    +	            if (pidx >=0 && bracketIdx >=0 && pidx > bracketIdx) {
    +	                if (pidx < host.length() - 1) {
    +	                    port = Integer.parseInt(host.substring(pidx + 1));
    +	                }
    +	                host = host.substring(0, pidx);
    +	            }
    --- End diff --
    
    nit - you've added tabs with your whitespace


---