costin      01/06/08 20:13:26

  Modified:    jk/java/org/apache/ajp/tomcat33 Ajp13Interceptor.java
  Log:
  Added missing method ( last dep on ajp12 )
  
  Revision  Changes    Path
  1.2       +39 -4     
jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp13Interceptor.java
  
  Index: Ajp13Interceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp13Interceptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Ajp13Interceptor.java     2001/06/09 02:56:22     1.1
  +++ Ajp13Interceptor.java     2001/06/09 03:13:26     1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp13Interceptor.java,v
 1.1 2001/06/09 02:56:22 costin Exp $
  - * $Revision: 1.1 $
  - * $Date: 2001/06/09 02:56:22 $
  + * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp13Interceptor.java,v
 1.2 2001/06/09 03:13:26 costin Exp $
  + * $Revision: 1.2 $
  + * $Date: 2001/06/09 03:13:26 $
    *
    * ====================================================================
    *
  @@ -183,7 +183,7 @@
           try {
            // close the socket connection before handling any signal
            // but get the addresses first so they are not corrupted                   
 
  -            if(Ajp12.isSameAddress(serverAddr, clientAddr)) {
  +            if(isSameAddress(serverAddr, clientAddr)) {
                cm.stop();
                // same behavior as in past, because it seems that
                // stopping everything doesn't work - need to figure
  @@ -196,6 +196,41 @@
        log("Shutdown command ignored");
        return false;
       }
  +
  +    /**
  +     * 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);
  +    }
  +
  +
       
   }
   
  
  
  

Reply via email to