www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dongbo Bu <dongb...@usa.net>
Subject mod_proxy/1085: ProxyRemote make a dead cycle.
Date Tue, 02 Sep 1997 11:30:03 GMT

>Number:         1085
>Category:       mod_proxy
>Synopsis:       ProxyRemote make a dead cycle.
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    apache (Apache HTTP Project)
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Tue Sep  2 04:30:02 1997
>Originator:     dongbobu@usa.net
>Organization:
apache
>Release:        1.2.0 1.2.4
>Environment:
AIX rock 1 4 001DEB36E000
GNU cc
>Description:
In Apache 1.2.0: 
 
   In the file proxy_http.c, line 172, 
   url +=7; /* skip http:// */
   It is a bug for proxyremote ftp:// and others. 

In Apache 1.2.4: 

   It still has a bug that the desthost is NOT correct when 
proxyremote ftp://user:passwd@host.domain:port. The server will 
send a head: 
     GET ftp://user:passwd@host.domain:port
     Host: user:passwd@host.domain:port

In Apache 1.2.4: 

    When a cluster host who make proxyremote a cycle, then all
the machine will consume the resource and will be down. 
    I have a solution that add an extended header called PathPassed to 
record all the host the request travelled, then when a machine found 
that he has already been added in the PathPassed, then he would refuse
serve the request, so the cycle is cut off. 

    For an example: 
    In host tango: 
           (httpd.conf) 
             ProxyRemote ftp http://rock.ncic.ac.cn
    In host rock: 
           (httpd.conf) 
             ProxyRemote ftp http://tango.ncic.ac.cn
    A cycle is made! 
    But when PathPassed added, rock will forward 
       PathPassed: rock.ncic.ac.cn 
    to tango. And tango forward 
       PathPassed: rock.ncic.ac.cn, tango.ncic.ac.cn
    to rock. But rock found that he is already included in the headers,
so he would NOT forward the request to tango. Then enevythingis OK.
    Is it right? 

ever 
  Dongbo Bu 
>How-To-Repeat:
 For an example: 
    In host tango: 
           (httpd.conf) 
             ProxyRemote ftp http://rock.ncic.ac.cn
    In host rock: 
           (httpd.conf) 
             ProxyRemote ftp http://tango.ncic.ac.cn
    A dead cycle is made! 
>Fix:
 I have a solution that add an extended header called PathPassed to 
record all the host the request travelled, then when a machine found 
that he has already been added in the PathPassed, then he would refuse
serve the request, so the cycle is cut off. 

    For an example: 
    In host tango: 
           (httpd.conf) 
             ProxyRemote ftp http://rock.ncic.ac.cn
    In host rock: 
           (httpd.conf) 
             ProxyRemote ftp http://tango.ncic.ac.cn
    A cycle is made! 
    But when PathPassed added, rock will forward 
       PathPassed: rock.ncic.ac.cn 
    to tango. And tango forward 
       PathPassed: rock.ncic.ac.cn, tango.ncic.ac.cn
    to rock. But rock found that he is already included in the headers,
so he would NOT forward the request to tango. Then enevythingis OK.
%0
>Audit-Trail:
>Unformatted:



Mime
View raw message