rlubke      02/01/29 09:06:32

  Modified:    src/tools/org/apache/tomcat/task GTest.java
  Log:
   - Per section 19.6.1.1 of RFC 2616, GTest will now send a Host header
     on every request.
   - general clean up of request code.
  
  Revision  Changes    Path
  1.18      +64 -69    jakarta-watchdog-4.0/src/tools/org/apache/tomcat/task/GTest.java
  
  Index: GTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-watchdog-4.0/src/tools/org/apache/tomcat/task/GTest.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- GTest.java        24 Jan 2002 17:49:10 -0000      1.17
  +++ GTest.java        29 Jan 2002 17:06:32 -0000      1.18
  @@ -330,7 +330,7 @@
           StringTokenizer tok = new StringTokenizer( s, "|" );
           while ( tok.hasMoreElements() ) {
               String header = (String) tok.nextElement();
  -            getHeaderDetails( header, expectHeaders, false );
  +            setHeaderDetails( header, expectHeaders, false );
           }
       }
   
  @@ -344,7 +344,7 @@
        */
       public void setUnexpectedHeaders( String s ) {
           this.unexpectedHeaders = new HashMap();
  -        getHeaderDetails( s, unexpectedHeaders, false );
  +        setHeaderDetails( s, unexpectedHeaders, false );
       }
   
       public void setNested( String s ) {
  @@ -416,7 +416,7 @@
           StringTokenizer tok = new StringTokenizer( s, "|" );
           while ( tok.hasMoreElements() ) {
               String header = (String) tok.nextElement();
  -            getHeaderDetails( header, requestHeaders, true );
  +            setHeaderDetails( header, requestHeaders, true );
           }
       }
   
  @@ -831,82 +831,76 @@
   
           OutputStream out = new BufferedOutputStream( 
                                  socket.getOutputStream() );
  -        StringBuffer reqbuf = new StringBuffer( 128 ); 
  -        try {
  -            if ( debug > 0 ) {
  -                System.out.println( " REQUEST: " + request );
  -            }
  -            reqbuf.append( request );
  -            reqbuf.append( CRLF );
  +        StringBuffer reqbuf = new StringBuffer( 128 );
   
  -            // Now sending any specified request headers
  -            if ( !requestHeaders.isEmpty() ) {
  -                Iterator iter = requestHeaders.keySet().iterator();
  -             
  -                while ( iter.hasNext() ) {
  -                    String headerKey = ( String ) iter.next();
  -                         ArrayList values = (ArrayList) requestHeaders.get( 
headerKey );
  -                         String[] value = (String[]) values.toArray( new String[ 
values.size() ] );
  -                         for ( int i = 0; i < value.length; i++ ) {
  -                                 reqbuf.append( headerKey );
  -                                 reqbuf.append( ": " );
  -                                 reqbuf.append( value[ i ] );
  -                        reqbuf.append( CRLF );
  -                                 if ( debug > 0 ) {
  -                                     System.out.println( " REQUEST HEADER: " + 
headerKey + ": " + value[ i ] );
  -                                 }
  -                         }
  -                }
  -            }
  +        // set the Host header
  +        setHeaderDetails( "Host:" + host, requestHeaders, true );
   
  -            if ( testSession != null ) {
  -                cookieController = ( CookieController ) sessionHash.get( 
testSession );
  -
  -                if ( cookieController != null ) {
  -
  -                    String releventCookieString = 
cookieController.applyRelevantCookies( requestURL );
  -
  -                    if ( ( releventCookieString != null ) && ( 
!releventCookieString.trim().equals( "" ) ) ) {
  -                        reqbuf.append( "Cookie: " );
  -                        reqbuf.append( releventCookieString );
  -                        reqbuf.append( CRLF );
  +        // set the Content-Length header
  +        if ( content != null ) {
  +            setHeaderDetails( "Content-Length:" + content.length(),
  +                              requestHeaders, true );
  +        }
   
  -                        if ( debug > 0 ) {
  -                            System.out.println( " Sending Cookie Header:: Cookie: " 
+ releventCookieString );
  -                        }
  -                    }
  +        // set the Cookie header
  +        if ( testSession != null ) {
  +            cookieController = ( CookieController ) sessionHash.get( testSession );
  +
  +            if ( cookieController != null ) {
  +
  +                String releventCookieString = 
cookieController.applyRelevantCookies( requestURL );
  +
  +                if ( ( releventCookieString != null ) && ( 
!releventCookieString.trim().equals( "" ) ) ) {
  +                    setHeaderDetails( "Cookie:" + releventCookieString, 
requestHeaders, true );
                   }
               }
  +        }
   
  -            /*
  +        if ( debug > 0 ) {
  +            System.out.println( " REQUEST: " + request );
  +        }
  +        reqbuf.append( request ).append( CRLF );;
   
  -            if ( ( testSession != null ) && ( sessionHash.get( testSession ) != 
null ) ) {
  -                System.out.println("Sending Session Id : " + 
(String)sessionHash.get( testSession ) );
  -                pw.println("JSESSIONID:" + (String)sessionHash.get( testSession) );
  +        // append all rquest headers 
  +        if ( !requestHeaders.isEmpty() ) {
  +            Iterator iter = requestHeaders.keySet().iterator();
  +             
  +            while ( iter.hasNext() ) {
  +                String headerKey = ( String ) iter.next();
  +                     ArrayList values = (ArrayList) requestHeaders.get( headerKey );
  +                     String[] value = (String[]) values.toArray( new String[ 
values.size() ] );
  +                     for ( int i = 0; i < value.length; i++ ) {
  +                             reqbuf.append( headerKey ).append( ": " ).append( 
value[ i ] ).append( CRLF );
  +                             if ( debug > 0 ) {
  +                                 System.out.println( " REQUEST HEADER: " + 
headerKey + ": " + value[ i ] );
  +                             }
  +                     }
               }
  +        }
   
  -            */
  +        /*
   
  -            if ( content != null ) {
  -                int length = content.length();
  -                if ( debug > 0 ) {
  -                    System.out.println( " REQUEST HEADER: Content-Length: " + 
length );
  -                }
  -                reqbuf.append( "Content-Length: " );
  -                reqbuf.append( length );
  -                reqbuf.append( CRLF );
  -            }
  +        if ( ( testSession != null ) && ( sessionHash.get( testSession ) != null ) 
) {
  +            System.out.println("Sending Session Id : " + (String)sessionHash.get( 
testSession ) );
  +            pw.println("JSESSIONID:" + (String)sessionHash.get( testSession) );
  +        }
   
  -            if ( request.indexOf( "HTTP/1." ) > -1 ) {
  -                reqbuf.append( "" );
  -                reqbuf.append( CRLF );
  -            }
  +        */
   
  -            if ( content != null ) {
  -                reqbuf.append( content );
  -                // XXX no CRLF at the end -see HTTP specs!
  -            }
  -            byte[] reqbytes = reqbuf.toString().getBytes();
  +        if ( request.indexOf( "HTTP/1." ) > -1 ) {
  +            reqbuf.append( "" ).append( CRLF );
  +        }
  +
  +        // append request content 
  +        if ( content != null ) {
  +            reqbuf.append( content );
  +            // XXX no CRLF at the end -see HTTP specs!
  +        }
  +        
  +        byte[] reqbytes = reqbuf.toString().getBytes();
  +
  +        try {
  +            // write the request
               out.write( reqbytes, 0, reqbytes.length );
               out.flush();
               reqbuf = null;
  @@ -918,6 +912,7 @@
                }
           }
   
  +        // read the response
           try {
     
                responseLine = read( in );
  @@ -1113,7 +1108,7 @@
       }
   
       /**
  -     * <code>getHeaderDetails</code> Wrapper method for parseHeader.
  +     * <code>setHeaderDetails</code> Wrapper method for parseHeader.
        * Allows easy addition of headers to the specified
        * HashMap
        *
  @@ -1122,7 +1117,7 @@
        * @param isRequest a <code>boolean</code> indicating if the passed Header 
        *                  HashMap is for request headers
        */
  -    private void getHeaderDetails( String line, HashMap headerHash, boolean 
isRequest ) {
  +    private void setHeaderDetails( String line, HashMap headerHash, boolean 
isRequest ) {
           StringTokenizer stk = new StringTokenizer( line, "##" );
   
           while ( stk.hasMoreElements( ) ) {
  
  
  

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

Reply via email to