Return-Path: Delivered-To: apmail-jakarta-watchdog-dev-archive@apache.org Received: (qmail 88713 invoked from network); 4 Apr 2002 18:11:56 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 4 Apr 2002 18:11:56 -0000 Received: (qmail 28609 invoked by uid 97); 4 Apr 2002 17:25:20 -0000 Delivered-To: qmlist-jakarta-archive-watchdog-dev@jakarta.apache.org Received: (qmail 28579 invoked by uid 97); 4 Apr 2002 17:25:20 -0000 Mailing-List: contact watchdog-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Watchdog Developers List" Reply-To: "Watchdog Developers List" Delivered-To: mailing list watchdog-dev@jakarta.apache.org Received: (qmail 28551 invoked by uid 97); 4 Apr 2002 17:25:19 -0000 Date: 4 Apr 2002 17:24:16 -0000 Message-ID: <20020404172416.95868.qmail@icarus.apache.org> From: rlubke@apache.org To: jakarta-watchdog-4.0-cvs@apache.org Subject: cvs commit: jakarta-watchdog-4.0/src/tools/org/apache/watchdog/task GTest.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N rlubke 02/04/04 09:24:15 Modified: src/tools/org/apache/watchdog/task GTest.java Log: Fix for bugzilla 7406. GTest now uses Socket.getLocalAddress() to determine client hostname and IP. Revision Changes Path 1.8 +45 -32 jakarta-watchdog-4.0/src/tools/org/apache/watchdog/task/GTest.java Index: GTest.java =================================================================== RCS file: /home/cvs/jakarta-watchdog-4.0/src/tools/org/apache/watchdog/task/GTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- GTest.java 12 Feb 2002 15:11:54 -0000 1.7 +++ GTest.java 4 Apr 2002 17:24:15 -0000 1.8 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-watchdog-4.0/src/tools/org/apache/watchdog/task/GTest.java,v 1.7 2002/02/12 15:11:54 rlubke Exp $ - * $Revision: 1.7 $ - * $Date: 2002/02/12 15:11:54 $ + * $Header: /home/cvs/jakarta-watchdog-4.0/src/tools/org/apache/watchdog/task/GTest.java,v 1.8 2002/04/04 17:24:15 rlubke Exp $ + * $Revision: 1.8 $ + * $Date: 2002/04/04 17:24:15 $ * * ==================================================================== * The Apache Software License, Version 1.1 @@ -90,6 +90,8 @@ String prefix = "http"; String host = "localhost"; + String localHost = null; + String localIP = null; int port = 8080; int debug = 0; @@ -428,11 +430,22 @@ * * @param s a String value in the form * of METHOD PATH HTTP_VERSION - * @exception Exception if an error occurs */ - public void setRequest ( String s ) throws Exception { + public void setRequest ( String s ) { + this.request = s; + } - this.request = replaceMarkers( s ); + /** + * Private utility method to 'massage' a request string that + * may or may not have replacement markers for the request parameters. + * + * @param req the request to manipulate + * @param socket local socket. Used to rebuild specified query strings. + * + * @exception Exception if an error occurs + */ + private void rebuildRequest(String req, Socket socket) throws Exception { + this.request = replaceMarkers(req, socket ); String addressString = request.substring( request.indexOf( "/" ), request.indexOf( "HTTP" ) ).trim(); if ( addressString.indexOf( "?" ) > -1 ) { @@ -505,7 +518,7 @@ resultOut.write( ( "\n" + testStrategy + "\n" ).getBytes() ); } - dispatch( request, requestHeaders ); + dispatch(requestHeaders ); boolean result = checkResponse( magnitude ); @@ -893,14 +906,16 @@ * dispatch sends the request and any * configured request headers to the target server. * - * @param request a String value * @param requestHeaders a HashMap value */ - private void dispatch( String request, HashMap requestHeaders ) + private void dispatch( HashMap requestHeaders ) throws Exception { // XXX headers are ignored Socket socket = new Socket( host, port ); + //socket obtained, rebuild the request. + rebuildRequest(request, socket); + InputStream in = new CRBufferedInputStream( socket.getInputStream() ); // Write the request @@ -1028,37 +1043,35 @@ * * @param request An HTTP request. */ - private String replaceMarkers( String request ) { + private String replaceMarkers( String req, Socket socket ) { final String CLIENT_IP = "client.ip"; final String CLIENT_HOME = "client.host"; - StringTokenizer tok = new StringTokenizer( request, "|" ); - StringBuffer sb = new StringBuffer( 50 ); - InetAddress addr = null; - String host = null; - String ip = null; - try { - addr = InetAddress.getLocalHost(); - host = addr.getHostName(); - ip = addr.getHostAddress(); - } catch ( UnknownHostException nshe ) { - System.out.println( " [WARNING] Unable to determine local host and IP address. Defaulting to localhost" ); - host = "localhost"; - ip = "127.0.0.1"; + if (localIP == null || localHost == null) { + InetAddress addr = socket.getLocalAddress(); + localHost = addr.getHostName(); + localIP = addr.getHostAddress(); } + + if (req.indexOf('|') > -1) { + StringTokenizer tok = new StringTokenizer( request, "|" ); + StringBuffer sb = new StringBuffer( 50 ); - while ( tok.hasMoreElements() ) { - String token = tok.nextToken(); - if ( token.equals( CLIENT_IP ) ) { - sb.append( ip ); - } else if ( token.equals( CLIENT_HOME ) ) { - sb.append( host ); - } else { - sb.append( token ); + while ( tok.hasMoreElements() ) { + String token = tok.nextToken(); + if ( token.equals( CLIENT_IP ) ) { + sb.append( localIP ); + } else if ( token.equals( CLIENT_HOME ) ) { + sb.append( localHost ); + } else { + sb.append( token ); + } } + return sb.toString(); + } else { + return req; } - return sb.toString(); } -- To unsubscribe, e-mail: For additional commands, e-mail: