On Fri, Jul 15, 2005 at 02:23:29PM +0300, Mihai Rusu wrote:
> Ok, but it seems to fail in "simplesocketserver", "performance", "tests" 
> (and any program linking to log4cxx) because of:
> /usr/lib/libapr-1.so: undefined reference to `sock_is_ipv6'
> /usr/lib/libapr-1.so: undefined reference to `find_if_index'
> 
> Any idea ?

Hmm, this might not be the best place for this message but it seems that 
apr 1.1.1 has some nasty bugs (showed up when linking against libapr 
when had apr compiled without IPv6 but it seems to affect users 
compiling with IPv6 too). My quick hack/fix is:

--- apr-1.1.1/network_io/unix/multicast.c       2005-03-16 00:41:02.000000000 
+0200
+++ apr-1.1.1.dizzy/network_io/unix/multicast.c 2005-07-15 16:25:19.000000000 
+0300
@@ -56,7 +56,6 @@
     }
 }
 
-#if APR_HAVE_IPV6
 static unsigned int find_if_index(const apr_sockaddr_t *iface)
 {
     unsigned int index = 0;
@@ -76,6 +75,7 @@
     }
 
     for (ifp = ifs; ifp; ifp = ifp->ifa_next) {
+#if APR_HAVE_IPV6
         if (ifp->ifa_addr != NULL && ifp->ifa_addr->sa_family == AF_INET6) {
             if (memcmp(&iface->sa.sin6.sin6_addr,
                        &ifp->ifa_addr->sa_data[0],
@@ -84,6 +84,7 @@
                 break;
             }
         }
+#endif
     }
 
     freeifaddrs(ifs);
@@ -91,6 +92,7 @@
     return index;
 }
 
+#if APR_HAVE_IPV6
 static void fill_mip_v6(struct ipv6_mreq *mip, const apr_sockaddr_t *mcast,
                         const apr_sockaddr_t *iface)
 {
@@ -145,10 +147,12 @@
 
     if (source != NULL) {
 #if MCAST_JOIN_SOURCE_GROUP
-        if (sock_is_ipv6(sock))
+        if (sock_is_ipv4(sock))
             ip_proto = IPPROTO_IP;
+#if APR_HAVE_IPV6
         else if (sock_is_ipv6(sock))
             ip_proto = IPPROTO_IPV6;
+#endif
         else
             return APR_ENOTIMPL;
 

The sock_is_ipv6 -> sock_is_ipv4 change points to a bug that seems to 
affect people compiling with IPv6 too.

-- 
Mihai RUSU                                    Email: [EMAIL PROTECTED]
GPG : http://dizzy.roedu.net/dizzy-gpg.txt    WWW: http://dizzy.roedu.net
                       "Linux is obsolete" -- AST

Reply via email to