Jeff Mesnil created ARTEMIS-1043:
------------------------------------

             Summary: NettyConnector not working with IPv6 address
                 Key: ARTEMIS-1043
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1043
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: Broker
    Affects Versions: 1.5.3
            Reporter: Jeff Mesnil


Artemis client doesn't correctly enclose IPv6 address when sending HTTP upgrade 
packet. 

According to [RFC2732 | https://www.ietf.org/rfc/rfc2732.txt], section {{2. 
Literal IPv6 Address Format in URL's Syntax}} and [HTTP header field definition 
specification|https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html], correct 
request URL should be enclosed like following one: 
{{http://[fe80::56ee:75ff:fe47:c83e]}} 

Following code snippet creates request for URL 
{{http://fe80::56ee:75ff:fe47:c83e}} 
{code} 
HashMap<String, Object> map = new HashMap<String, Object>(); 
map.put("host", "fe80::56ee:75ff:fe47:c83e"); 
map.put("port", "8080"); 
map.put(TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME, true); 

TransportConfiguration transportConfiguration = new 
TransportConfiguration(NettyConnectorFactory.class.getName(), map); 
ConnectionFactory cf = 
ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, 
transportConfiguration); 
 connection = cf.createConnection(); 
{code} 

This works fine when client connects directly to the server. However it may 
cause problems when Artemis connects to proxy which expects IPv6 address 
correctly enclosed. 
Artemis client should detect IPv6 address and enclose it, so it conforms to 
specification.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to