Xuelei,

This looks very good. Just a few minor comments:

 - SNIServerName hexes could be UPPERCASE, since it is a constant.

 - Trivially, SNIHostName(String) calls IDN.toASCII(hostname) twice

   It is not clear to me from this constructor whether it should
   pass a hostname "as understood by the client", or an encoded
   hostname. The method description seems to be at odds with the
   implementation ( at least from me reading ). Maybe this could
   be a little clearer by saying "as understood by the client".

 - SNIHostName.hostname seems simply be a String version of the
   SNIServerName.encoding. Also, there is no way of returning the
   original hostname as passed in the constructor.

 - SNIHostName.equals, Is it possible to craft a concrete SNIServerName
   implementation that would be considered equal to a SNIHostName?
   It would seem that hostname may not be considered in the equality.

 - There is scope for null parameter checking in the implementation
   to use j.u.Objects.requireNonNull(Object,String)

 - Is it possible to change SNIStandardTypes to use an enum, similar to
   java.net.SocketOption & java.net.StandardSocketOptions, rather
   than an int. It would still be extendable, but more "Java like".

-Chris.

On 03/09/2012 03:05, Xuelei Fan wrote:
Hi,

This is the spec review for JEP 114 [1].

webrev: http://cr.openjdk.java.net/~xuelei/7068321/webrev_spec.10/

Network team, per RFC 6066, the host_name in TLS SNI extension need to
be encoded in ASCII.  In SNIHostName, to get the ASCII-Compatible
Encoding (ACE), java.net.IDN is used to convert from general String and
UTF-8 encoded byte array to ASCII string.  We need expertise in
networking,  would you please review the spec of SNIHostName?

Thanks,
Xuelei

[1]: http://openjdk.java.net/jeps/114

Reply via email to