tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From billbar...@apache.org
Subject cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11Processor.java
Date Sun, 06 Jul 2003 06:16:00 GMT
billbarker    2003/07/05 23:16:00

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11Processor.java
  Log:
  Re-activate dropping the connection on serious protocol errors.
  
  Also adding Remy's suggestion to check the exception, as well as checking the status code
in the commit so that we can be nice enough to tell the client that we're not talking to them
anymore if we discover the error soon enough.
  
  Revision  Changes    Path
  1.70      +13 -3     jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
  
  Index: Http11Processor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- Http11Processor.java	5 Jul 2003 01:39:42 -0000	1.69
  +++ Http11Processor.java	6 Jul 2003 06:16:00 -0000	1.70
  @@ -635,9 +635,16 @@
                       thrA.setCurrentStage(threadPool, "service");
                       rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
                       adapter.service(request, response);
  -                  /* Mimic httpd (currently disabled)
  -                    error = statusDropsConnection(response.getStatus());
  -                  */
  +                    // Handle when the response was committed before a serious
  +                    // error occurred.  Throwing a ServletException should both
  +                    // set the status to 500 and set the errorException.
  +                    // If we fail here, then the response is likely already 
  +                    // committed, so we can't try and set headers.
  +                    if(keepAlive && !error) { // Avoid checking twice.
  +                        error = response.getErrorException() != null ||
  +                                statusDropsConnection(response.getStatus());
  +                    }
  +
                   } catch (InterruptedIOException e) {
                       error = true;
                   } catch (Throwable t) {
  @@ -1260,6 +1267,9 @@
               keepAlive = false;
           }
   
  +        // If we know that the request is bad this early, add the
  +        // Connection: close header.
  +        keepAlive = keepAlive && statusDropsConnection(statusCode);
           if (!keepAlive) {
               response.addHeader("Connection", "close");
           } else if (!http11) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Mime
View raw message