You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Leif Hedstrom (JIRA)" <ji...@apache.org> on 2014/08/27 22:56:58 UTC

[jira] [Comment Edited] (TS-3020) Blind Tunnel fake request URL is IPv4 only

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

Leif Hedstrom edited comment on TS-3020 at 8/27/14 8:55 PM:
------------------------------------------------------------

Never mind, it patches fine if you don't try to copy it out of Jira ...


was (Author: zwoop):
Hmmm, that last patch also fails on my master (patch rejects it).

> 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)