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

    https://github.com/apache/zookeeper/pull/587#discussion_r206987004
  
    --- 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
    --- End diff --
    
    purely selfish request - could you add an example to this comment? 
something like // IPv6 e.g. [2001:db8:1::242:ac11:2]:1234.
    
    Having that on hand made reasoning about the string parsing logic much 
easier for me.


---

Reply via email to