tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cos...@apache.org
Subject cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server PoolTcpConnector.java
Date Sun, 24 Jun 2001 22:41:16 GMT
costin      01/06/24 15:41:16

  Modified:    src/share/org/apache/tomcat/modules/server
                        PoolTcpConnector.java
  Log:
  Merged a fix from j-t-c, the isSameAddress is here to avoid Ajp13->Ajp12
  deps.
  
  Revision  Changes    Path
  1.5       +33 -0     jakarta-tomcat/src/share/org/apache/tomcat/modules/server/PoolTcpConnector.java
  
  Index: PoolTcpConnector.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/PoolTcpConnector.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PoolTcpConnector.java	2001/03/31 21:48:31	1.4
  +++ PoolTcpConnector.java	2001/06/24 22:41:16	1.5
  @@ -257,6 +257,39 @@
   	return (ServerSocketFactory)chC.newInstance();
       }
   
  +    /**
  +     * Return <code>true</code> if the specified client and server addresses
  +     * are the same.  This method works around a bug in the IBM 1.1.8 JVM on
  +     * Linux, where the address bytes are returned reversed in some
  +     * circumstances.
  +     *
  +     * @param server The server's InetAddress
  +     * @param client The client's InetAddress
  +     */
  +    public static boolean isSameAddress(InetAddress server, InetAddress client) {
  +	// Compare the byte array versions of the two addresses
  +	byte serverAddr[] = server.getAddress();
  +	byte clientAddr[] = client.getAddress();
  +	if (serverAddr.length != clientAddr.length)
  +	    return (false);
  +	boolean match = true;
  +	for (int i = 0; i < serverAddr.length; i++) {
  +	    if (serverAddr[i] != clientAddr[i]) {
  +		match = false;
  +		break;
  +	    }
  +	}
  +	if (match)
  +	    return (true);
  +	
  +	// Compare the reversed form of the two addresses
  +	for (int i = 0; i < serverAddr.length; i++) {
  +	    if (serverAddr[i] != clientAddr[(serverAddr.length-1)-i])
  +		return (false);
  +	}
  +	return (true);
  +    }
  +
   //     public static String getExtension( String classN ) {
   // 	int lidot=classN.lastIndexOf( "." );
   // 	if( lidot >0 ) classN=classN.substring( lidot + 1 );
  
  
  

Mime
View raw message