Remy Maucherat wrote:

[EMAIL PROTECTED] wrote:

jfarcand 2003/12/02 08:27:11

Modified: coyote/src/java/org/apache/coyote Request.java ActionCode.java catalina/src/share/org/apache/coyote/tomcat5 CoyoteRequest.java http11/src/java/org/apache/coyote/http11 Http11Processor.java Log: Implement getLocalPort using ActionCode
instead of getServerPort. Associate 1 ActionCode for each getXXX
method.


Please review.


I'll have to vote -0 for implementing getLocalPort as mandated in the
specification, since I think this is a huge mistake, and the spec
authors intention is misinterpreted (or they didn't think about all the consequences of the wording they used, thinking only about the case of a server without any proxies, or using an AJP-like scheme). BTW, I also think your patch has a sky high likelihood of breaking the JK 2 connector ;-)

Can you explain how? The only changes I did was to remove the code associated with remoteAddr (which was duplicated and useless IMO).



I said it would be ok, yesterday, but I changed my mind, as this looks wrong.
If Bill votes -1 to this, I'll change my vote to -1.

I should start reverting my patch ;-)



The problem is that this call is likely intended to allow users to build URLs to the server. Actually, this won't work, since the server may not be accessible with the connector hostname or port. What actually should be returned is what is in the Host header (HTTP/1.0 is a broken spec, since it can't possibly work when behind a reverse proxy). Otherwise, we're returning completely useless information to the user, and the getLocalPort is simply useless.

Make sense.That will also apply to LocalAddr too then. What the specs states is:


     public java.lang.String getLocalAddr()
            Returns the Internet Protocol (IP) address of the interface on
            which the request  was received.

     public int getLocalPort()
            Returns the Internet Protocol (IP) port number of the interface
            on which the request was received.

I think parsing/using the Host header is the way to go, since it will work with/without proxy. Can I -1 on myself ;-)

-- Jeanfrancois


Note: Compliant HTTP/1.1 clients must send correct Host header, and proxy servers are not allowed to modify them.


Rémy



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to