mmanders    2004/01/05 14:37:48

  Modified:    jk/native/common jk_connect.c
  Log:
  Added check for AF_INET (IPV4) type address from APR (when used).
  
  Revision  Changes    Path
  1.16      +14 -28    jakarta-tomcat-connectors/jk/native/common/jk_connect.c
  
  Index: jk_connect.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- jk_connect.c      5 Nov 2003 09:15:39 -0000       1.15
  +++ jk_connect.c      5 Jan 2004 22:37:48 -0000       1.16
  @@ -66,35 +66,9 @@
    */
   
   
  -#if defined(NETWARE) && defined(__NOVELL_LIBC__)
  -/* Since we want to use WinSock functionality here, don't allow the 
  - * non-winsock headers 
  - */
  -#define __sys_types_h__
  -#define __sys_socket_h__
  -#define __netdb_h__
  -#define __netinet_in_h__
  -#define __arpa_inet_h__
  -#define __sys_timeval_h__
  -#endif
  -
   #include "jk_connect.h"
   #include "jk_util.h"
   
  -#if defined(NETWARE) && defined(__NOVELL_LIBC__)
  -/* Now remove the defines so that including the WinSock headers won't cause 
  - * complaining
  - */
  -#undef __sys_types_h__
  -#undef __sys_socket_h__
  -#undef __netdb_h__
  -#undef __netinet_in_h__
  -#undef __arpa_inet_h__
  -#undef __sys_timeval_h__
  -
  -#include <novsock2.h>
  -#endif
  -
   #ifdef HAVE_APR
   #include "apr_network_io.h"
   #include "apr_errno.h"
  @@ -138,7 +112,7 @@
   
   #ifdef HAVE_APR
           apr_pool_t *context;
  -        apr_sockaddr_t *remote_sa;
  +        apr_sockaddr_t *remote_sa, *temp_sa;
           char *remote_ipaddr;
   
           /* May be we could avoid to recreate it each time ? */
  @@ -147,6 +121,18 @@
   
           if (apr_sockaddr_info_get(&remote_sa, host, APR_UNSPEC, (apr_port_t)port, 
0, context)
               != APR_SUCCESS) 
  +            return JK_FALSE;
  +
  +        /* Since we are only handling AF_INET (IPV4) address (in_addr_t) */
  +        /* make sure we find one of those.                               */
  +        temp_sa = remote_sa;
  +        while ((NULL != temp_sa) && (AF_INET != temp_sa->family))
  +            temp_sa = temp_sa->next;
  +
  +        /* if temp_sa is set, we have a valid address otherwise, just return */
  +        if (NULL != temp_sa)
  +            remote_sa = temp_sa;
  +        else
               return JK_FALSE;
   
           apr_sockaddr_ip_get(&remote_ipaddr, remote_sa);
  
  
  

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

Reply via email to