seguin      01/05/17 16:55:34

  Modified:    jk/src/java/org/apache/ajp Ajp13.java
               jk/src/java/org/apache/ajp/test TestAjp13.java
               jk/src/java/org/apache/ajp/tomcat4 Ajp13Response.java
  Log:
  put sendHeaders method that use MimeHeaders back
  
  Revision  Changes    Path
  1.3       +47 -0     jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/Ajp13.java
  
  Index: Ajp13.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/Ajp13.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Ajp13.java        2001/05/16 23:23:30     1.2
  +++ Ajp13.java        2001/05/17 23:55:32     1.3
  @@ -69,6 +69,7 @@
   import org.apache.tomcat.util.buf.MessageBytes;
   import org.apache.tomcat.util.buf.ByteChunk;
   import org.apache.tomcat.util.http.MimeHeaders;
  +import org.apache.tomcat.util.http.HttpMessages;
   
   /**
    * Represents a single, persistent connection between the web server and
  @@ -609,6 +610,52 @@
           outBuf.end();
           send(outBuf);
       }
  +
  +    /**
  +     * Send the HTTP headers back to the web server and on to the browser.
  +     *
  +     * @param status The HTTP status code to send.
  +     * @param headers The set of all headers.
  +     */
  +    public void sendHeaders(int status, MimeHeaders headers)
  +        throws IOException {
  +        sendHeaders(status, HttpMessages.getMessage(status), headers);
  +    }
  +
  +    /**
  +     * Send the HTTP headers back to the web server and on to the browser.
  +     *
  +     * @param status The HTTP status code to send.
  +     * @param statusMessage the HTTP status message to send.
  +     * @param headers The set of all headers.
  +     */
  +    public void sendHeaders(int status, String statusMessage, MimeHeaders headers)
  +        throws IOException {
  +     // XXX if more headers that MAX_SIZE, send 2 packets!
  +
  +     outBuf.reset();
  +        outBuf.appendByte(JK_AJP13_SEND_HEADERS);
  +        outBuf.appendInt(status);
  +     
  +     outBuf.appendString(statusMessage);
  +        
  +     int numHeaders = headers.size();
  +        outBuf.appendInt(numHeaders);
  +        
  +     for( int i=0 ; i < numHeaders ; i++ ) {
  +         String headerName = headers.getName(i).toString();
  +         int sc = headerNameToSc(headerName);
  +            if(-1 != sc) {
  +                outBuf.appendInt(sc);
  +            } else {
  +                outBuf.appendString(headerName);
  +            }
  +            outBuf.appendString(headers.getValue(i).toString() );
  +        }
  +
  +        outBuf.end();
  +        send(outBuf);
  +    } 
   
       /**
        * Translate an HTTP response header name to an integer code if
  
  
  
  1.2       +9 -6      
jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/test/TestAjp13.java
  
  Index: TestAjp13.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/test/TestAjp13.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestAjp13.java    2001/05/15 15:22:36     1.1
  +++ TestAjp13.java    2001/05/17 23:55:33     1.2
  @@ -1,6 +1,8 @@
   package org.apache.ajp.test;
   
   import org.apache.ajp.*;
  +import org.apache.tomcat.util.http.*;
  +
   import java.io.*;
   import java.net.*;
   import java.util.*;
  @@ -12,6 +14,7 @@
           System.out.println("TestAjp13 running...");
           Socket socket = server.accept();
           Ajp13 ajp13 = new Ajp13();
  +        MimeHeaders headers = new MimeHeaders();
           AjpRequest request = new AjpRequest();
           ajp13.setSocket(socket);
   
  @@ -47,12 +50,11 @@
                   System.getProperty("line.separator") +
                   request.toString() +
                   "</pre></body></html>";
  -                
  -            ajp13.beginSendHeaders(200, "OK", 3);
  -            ajp13.sendHeader("content-type", "text/html");
  -            ajp13.sendHeader("content-length", String.valueOf(message.length()));
  -            ajp13.sendHeader("my-header", "my value");
  -            ajp13.endSendHeaders();
  +
  +            headers.addValue("content-type").setString( "text/html");
  +            headers.addValue("content-length").setInt(message.length());
  +            headers.addValue("my-header").setString( "my value");
  +            ajp13.sendHeaders(200, headers);
   
               byte[] b = message.getBytes();
               ajp13.doWrite(b, 0, b.length);
  @@ -60,6 +62,7 @@
               ajp13.finish();
   
               request.recycle();
  +            headers.recycle();
           }
   
           try {
  
  
  
  1.3       +3 -0      
jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/tomcat4/Ajp13Response.java
  
  Index: Ajp13Response.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/src/java/org/apache/ajp/tomcat4/Ajp13Response.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Ajp13Response.java        2001/05/15 15:22:51     1.2
  +++ Ajp13Response.java        2001/05/17 23:55:33     1.3
  @@ -71,12 +71,14 @@
   import org.apache.catalina.util.CookieTools;
   
   import org.apache.ajp.Ajp13;
  +import org.apache.tomcat.util.http.MimeHeaders;
   
   public class Ajp13Response extends HttpResponseBase {
   
       private Ajp13 ajp13;
       private boolean finished = false;
       private boolean headersSent = false;
  +    private MimeHeaders headers = new MimeHeaders();
       private StringBuffer cookieValue = new StringBuffer();
   
       String getStatusMessage() {
  @@ -87,6 +89,7 @@
           super.recycle();
           this.finished = false;
           this.headersSent = false;
  +        this.headers.recycle();
       }
   
       protected void sendHeaders()  throws IOException {
  
  
  

Reply via email to