[ 
https://issues.apache.org/jira/browse/TS-3020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14112834#comment-14112834
 ] 

ASF subversion and git services commented on TS-3020:
-----------------------------------------------------

Commit 9e70998949c887b6699f314bc3376e7a33515926 in trafficserver's branch 
refs/heads/master from [~pmcgleenon]
[ https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=9e70998 ]

TS-3020 Blind Tunnel fake request URL is IPv4 only.


> Blind Tunnel fake request URL is IPv4 only
> ------------------------------------------
>
>                 Key: TS-3020
>                 URL: https://issues.apache.org/jira/browse/TS-3020
>             Project: Traffic Server
>          Issue Type: Bug
>    Affects Versions: 3.2.5
>            Reporter: Patrick McGleenon
>            Assignee: Leif Hedstrom
>            Priority: Minor
>             Fix For: 5.2.0
>
>
> HttpTransact::HandleBlindTunnel creates a fake request with HTTP version 0.9 
> and CONNECT method.  The URL for CONNECT used is created from destination IP 
> and port - currently this is IPv4 only.
> requests with IPv6 destination IP addresses still work fine with the 
> BlindTunnel since ATS is able to figure out the correct IPv6 destination from 
> the Host Header of the fake URL.   So this is a problem just in the ATS 
> logging
> attached is a suggested patch for 3.2 - the latest version of the file hasn't 
> changed much since then
> {code}
> --- trafficserver-3.2.0/proxy/http/HttpTransact.cc    2014-08-15 
> 16:05:40.625721000 +0100
> +++ trafficserver-3.2.0.patched/proxy/http/HttpTransact.cc    2014-08-15 
> 16:58:23.563658000 +0100
> @@ -615,11 +615,12 @@
>    HTTPVersion ver(0, 9);
>    s->hdr_info.client_request.version_set(ver);
>  
> -  struct in_addr dest_addr;
> -  dest_addr.s_addr = 
> s->state_machine->ua_session->get_netvc()->get_local_ip();
> -
> -  char *new_host = inet_ntoa(dest_addr);
> +  // struct in_addr dest_addr;                                               
>                                            
> +  // dest_addr.s_addr = 
> s->state_machine->ua_session->get_netvc()->get_local_ip();
> +  char new_host[INET6_ADDRSTRLEN];
> +  ats_ip_ntop(s->state_machine->ua_session->get_netvc()->get_local_addr(), 
> new_host, sizeof(new_host));
>    s->hdr_info.client_request.url_get()->host_set(new_host, strlen(new_host));
> +
>    // get_local_port() returns a port number in network order                 
>                                             //opwv- FastPath
>    // so it needs to be converted to host order (eg, in i386 machine)         
>                                             //opwv- FastPath
>    
> //s->hdr_info.client_request.url_get()->port_set(ntohs(s->state_machine->ua_session->get_netvc()->get_local_port()));
>   //opwv- FastPath
> {code}
> With patch:
> IPv4:
> Aug 18 09:49:24 - INFO - +++++++++ Proxy's Request +++++++++
> Aug 18 09:49:24 - INFO - -- State Machine Id: 2
> Aug 18 09:49:24 - INFO - CONNECT 10.20.51.53:443 HTTP/1.1^M
> Aug 18 09:49:24 - INFO - Host: 10.20.51.53^M
> Aug 18 09:49:24 - INFO - Connection: close^M
> Aug 18 09:49:24 - INFO - ^M
> IPv6:
> Aug 18 09:47:18 - INFO - +++++++++ Proxy's Request +++++++++
> Aug 18 09:47:18 - INFO - -- State Machine Id: 0
> Aug 18 09:47:18 - INFO - CONNECT [2001:410:0:51:20d:60ff:fe9c:eec4]:443 
> HTTP/1.1^M
> Aug 18 09:47:18 - INFO - Host: 2001:410:0:51:20d:60ff:fe9c:eec4^M
> Aug 18 09:47:18 - INFO - Connection: close^M
> Aug 18 09:47:18 - INFO - ^M
> without patch:
> Aug 13 14:44:45 - INFO - +++++++++ Proxy's Request +++++++++
> Aug 13 14:44:45 - INFO - -- State Machine Id: 17
> Aug 13 14:44:45 - INFO - CONNECT 0.0.0.0:443 HTTP/1.1^M
> Aug 13 14:44:45 - INFO - Host: 2001:410:0:51:20d:60ff:fe9c:eec4^M
> Aug 13 14:44:45 - INFO - Connection: close^M
> Aug 13 14:44:45 - INFO - ^M



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to