You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Craig Schomburg (JIRA)" <ji...@apache.org> on 2015/12/11 21:57:46 UTC

[jira] [Updated] (TS-4070) RemapProcessor Forward Mapping with Recv Port failing with TS-2157 changes

     [ https://issues.apache.org/jira/browse/TS-4070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Craig Schomburg updated TS-4070:
--------------------------------
    Description: 
During the rework of RemapProcessor.cc, RemapProcessor::setup_for_remap() as part of the TS-2157 changeset, the port access API appears to have been incorrectly modified to use the client_info.src_addr.host_order_port() API [source port, host order] instead of the client_info.dst_addr.port() [destination/receive port, network 
order] API.  This caused port based remapping based on the receive port to 
fail with ATS 6.0.0.

Functionality was previously working with ATS 4.0.1.

Patched as follows and we were able to restore the ATS 4.0.1 functionality.

---
--- a/proxy/http/remap/RemapProcessor.cc.original	2015-11-11 15:31:23.658422320 -0500
+++ b/proxy/http/remap/RemapProcessor.cc	2015-11-11 16:38:02.291589597 -0500
@@ -88,7 +88,7 @@ RemapProcessor::setup_for_remap(HttpTran
 
   if (rewrite_table->num_rules_forward_with_recv_port) {
     Debug("url_rewrite", "[lookup] forward mappings with recv port found; Using recv port %d", s->client_info.src_addr.port());
 -    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.src_addr.host_order_port(), request_host,
 +    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.dst_addr.port(), request_host,
                                                         request_host_len, s->url_map)) {
       Debug("url_rewrite", "Found forward mapping with recv port");
       mapping_found = true;

Looking for confirmation that this fix was correct.

  was:
During the rework of RemapProcessor.cc, RemapProcessor::setup_for_remap() as part of the TS-2157 changeset, the port access API appears to have been incorrectly modified to use the client_info.src_addr.host_order_port() API [source port, host order] instead of the client_info.dst_addr.port() [destination/receive port, network 
order] API.  This caused port based remapping based on the receive port to 
fail with ATS 6.0.0.

Functionality was previously working with ATS 4.0.1.

Patched as follows and we were able to restore the ATS 4.0.1 functionality.

---
--- a/proxy/http/remap/RemapProcessor.cc.original	2015-11-11 15:31:23.658422320 -0500
+++ b/proxy/http/remap/RemapProcessor.cc	2015-11-11 16:38:02.291589597 -0500
@@ -88,7 +88,7 @@ RemapProcessor::setup_for_remap(HttpTran
 
   if (rewrite_table->num_rules_forward_with_recv_port) {
     Debug("url_rewrite", "[lookup] forward mappings with recv port found; Using recv port %d", s->client_info.src_addr.port());
-    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.src_addr.host_order_port(), request_host,
+    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.dst_addr.port(), request_host,
                                                         request_host_len, s->url_map)) {
       Debug("url_rewrite", "Found forward mapping with recv port");
       mapping_found = true;

Looking for confirmation that this fix was correct.


> RemapProcessor Forward Mapping with Recv Port failing with TS-2157 changes
> --------------------------------------------------------------------------
>
>                 Key: TS-4070
>                 URL: https://issues.apache.org/jira/browse/TS-4070
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Network
>            Reporter: Craig Schomburg
>
> During the rework of RemapProcessor.cc, RemapProcessor::setup_for_remap() as part of the TS-2157 changeset, the port access API appears to have been incorrectly modified to use the client_info.src_addr.host_order_port() API [source port, host order] instead of the client_info.dst_addr.port() [destination/receive port, network 
> order] API.  This caused port based remapping based on the receive port to 
> fail with ATS 6.0.0.
> Functionality was previously working with ATS 4.0.1.
> Patched as follows and we were able to restore the ATS 4.0.1 functionality.
> ---
> --- a/proxy/http/remap/RemapProcessor.cc.original	2015-11-11 15:31:23.658422320 -0500
> +++ b/proxy/http/remap/RemapProcessor.cc	2015-11-11 16:38:02.291589597 -0500
> @@ -88,7 +88,7 @@ RemapProcessor::setup_for_remap(HttpTran
>  
>    if (rewrite_table->num_rules_forward_with_recv_port) {
>      Debug("url_rewrite", "[lookup] forward mappings with recv port found; Using recv port %d", s->client_info.src_addr.port());
>  -    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.src_addr.host_order_port(), request_host,
>  +    if (rewrite_table->forwardMappingWithRecvPortLookup(request_url, s->client_info.dst_addr.port(), request_host,
>                                                          request_host_len, s->url_map)) {
>        Debug("url_rewrite", "Found forward mapping with recv port");
>        mapping_found = true;
> Looking for confirmation that this fix was correct.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)