pier 01/08/08 12:26:07 Modified: catalina/src/share/org/apache/catalina/connector HttpResponseBase.java catalina/src/share/org/apache/catalina/connector/http HttpResponseImpl.java catalina/src/share/org/apache/catalina/connector/http10 HttpResponseImpl.java Log: Fixed problem of HTTP/1.1 container returning the same version of the HTTP protocol used in the request. As Justyn Erkerantz said, Section 3.1 of the HTTP specification (RFC-2616) mentions the fact that we should return the higher version of the implemented protocol. Revision Changes Path 1.36 +17 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java Index: HttpResponseBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- HttpResponseBase.java 2001/07/22 20:25:06 1.35 +++ HttpResponseBase.java 2001/08/08 19:26:07 1.36 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v 1.35 2001/07/22 20:25:06 pier Exp $ - * $Revision: 1.35 $ - * $Date: 2001/07/22 20:25:06 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseBase.java,v 1.36 2001/08/08 19:26:07 pier Exp $ + * $Revision: 1.36 $ + * $Date: 2001/08/08 19:26:07 $ * * ==================================================================== * @@ -100,7 +100,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.35 $ $Date: 2001/07/22 20:25:06 $ + * @version $Revision: 1.36 $ $Date: 2001/08/08 19:26:07 $ */ public class HttpResponseBase @@ -539,6 +539,17 @@ logger.log(message, throwable); } + /** + * Return the HTTP protocol version implemented by this response + * object. (This method must be overridden by subclasses of this + * as to correctly return the highest HTTP version number supported + * as specified in Section 3.1 of RFC-2616). + * + * @return A string in the form of "HTTP/1.0" ... + */ + protected String getProtocol() { + return(request.getRequest().getProtocol()); + } /** * Send the HTTP response headers, if this has not already occurred. @@ -548,6 +559,7 @@ if (isCommitted()) return; + // Check if the request was an HTTP/0.9 request if ("HTTP/0.9".equals(request.getRequest().getProtocol())) { committed = true; return; @@ -559,7 +571,7 @@ final PrintWriter outputWriter = new PrintWriter(osr); // Send the "Status:" header - outputWriter.print(request.getRequest().getProtocol()); + outputWriter.print(this.getProtocol()); outputWriter.print(" "); outputWriter.print(status); if (message != null) { 1.11 +17 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java Index: HttpResponseImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- HttpResponseImpl.java 2001/07/22 20:25:07 1.10 +++ HttpResponseImpl.java 2001/08/08 19:26:07 1.11 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v 1.10 2001/07/22 20:25:07 pier Exp $ - * $Revision: 1.10 $ - * $Date: 2001/07/22 20:25:07 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseImpl.java,v 1.11 2001/08/08 19:26:07 pier Exp $ + * $Revision: 1.11 $ + * $Date: 2001/08/08 19:26:07 $ * * ==================================================================== * @@ -79,7 +79,7 @@ * * @author Craig R. McClanahan * @author <a href="mailto:[EMAIL PROTECTED]">Remy Maucherat</a> - * @version $Revision: 1.10 $ $Date: 2001/07/22 20:25:07 $ + * @version $Revision: 1.11 $ $Date: 2001/08/08 19:26:07 $ */ final class HttpResponseImpl @@ -139,8 +139,20 @@ } - // --------------------------------------------------------- Public Methods + // ------------------------------------------------------ Protected Methods + /** + * Return the HTTP protocol version implemented by this response + * object. + * + * @return The "HTTP/1.1" string. + */ + protected String getProtocol() { + return("HTTP/1.1"); + } + + + // --------------------------------------------------------- Public Methods /** * Release all object references, and initialize instance variables, in 1.3 +17 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http10/HttpResponseImpl.java Index: HttpResponseImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http10/HttpResponseImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- HttpResponseImpl.java 2001/07/22 20:25:07 1.2 +++ HttpResponseImpl.java 2001/08/08 19:26:07 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http10/HttpResponseImpl.java,v 1.2 2001/07/22 20:25:07 pier Exp $ - * $Revision: 1.2 $ - * $Date: 2001/07/22 20:25:07 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http10/HttpResponseImpl.java,v 1.3 2001/08/08 19:26:07 pier Exp $ + * $Revision: 1.3 $ + * $Date: 2001/08/08 19:26:07 $ * * ==================================================================== * @@ -72,7 +72,7 @@ * Implementation of <b>HttpResponse</b> specific to the HTTP connector. * * @author Craig R. McClanahan - * @version $Revision: 1.2 $ $Date: 2001/07/22 20:25:07 $ + * @version $Revision: 1.3 $ $Date: 2001/08/08 19:26:07 $ */ final class HttpResponseImpl @@ -104,8 +104,20 @@ } - // --------------------------------------------------------- Public Methods + // ------------------------------------------------------ Protected Methods + /** + * Return the HTTP protocol version implemented by this response + * object. + * + * @return The "HTTP/1.0" string. + */ + protected String getProtocol() { + return("HTTP/1.0"); + } + + + // --------------------------------------------------------- Public Methods /** * Release all object references, and initialize instance variables, in