Description
What version of gRPC-Java are you using?
1.45.0
What is your environment?
MacOS jdk 8
What did you expect to see?
I expect gRPC-okhttp be able to work with ipv6 link local with scope
What did you see instead?
AndroidNegotiator inside OkHttpProtocolNegotiator.java class is using SNI_HOST_NAME.newInstance(hostname)
which throws exception because SNIHostName(String hostname) doesn't accept "%" and we need that for scoping ipv6 link local.
Suggestion would be using SNIHostName(byte[] encoded). To do so we would need to replace line 252 to SNI_HOST_NAME.newInstance(hostname.getBytes())
Steps to reproduce the bug
Any connection that uses configureTlsExtensions
from AndroidNegotiator class which uses ipv6 link local with scoping like "%wlan0"