summaryrefslogtreecommitdiff
path: root/network_io
diff options
context:
space:
mode:
authorpquerna <pquerna@13f79535-47bb-0310-9956-ffa450edef68>2005-03-15 22:41:02 +0000
committerpquerna <pquerna@13f79535-47bb-0310-9956-ffa450edef68>2005-03-15 22:41:02 +0000
commite6604430e0de6cc9215d205f6b1502728b6b8da1 (patch)
tree5e24b47f61e1cd51e15e3b62c10b5b23ed661241 /network_io
parent50c113d3e75648f5560849ca9a5ae682f5787015 (diff)
downloadlibapr-e6604430e0de6cc9215d205f6b1502728b6b8da1.tar.gz
Backport r153917 and r153932 from trunk. Build fixes for multicast on Tru64 and HP-UX.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.1.x@157601 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r--network_io/unix/multicast.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/network_io/unix/multicast.c b/network_io/unix/multicast.c
index 695500f19..eb4304f07 100644
--- a/network_io/unix/multicast.c
+++ b/network_io/unix/multicast.c
@@ -24,6 +24,7 @@
#include <ifaddrs.h>
#endif
+#ifdef HAVE_STRUCT_IPMREQ
/* Only UDP and Raw Sockets can be used for Multicast */
static apr_status_t mcast_check_type(apr_socket_t *sock)
{
@@ -254,13 +255,14 @@ static apr_status_t do_mcast_opt(int type, apr_socket_t *sock,
return rv;
}
+#endif
APR_DECLARE(apr_status_t) apr_mcast_join(apr_socket_t *sock,
apr_sockaddr_t *join,
apr_sockaddr_t *iface,
apr_sockaddr_t *source)
{
-#ifdef IP_ADD_MEMBERSHIP
+#if defined(IP_ADD_MEMBERSHIP) && defined(HAVE_STRUCT_IPMREQ)
return do_mcast(IP_ADD_MEMBERSHIP, sock, join, iface, source);
#else
return APR_ENOTIMPL;
@@ -268,12 +270,12 @@ APR_DECLARE(apr_status_t) apr_mcast_join(apr_socket_t *sock,
}
APR_DECLARE(apr_status_t) apr_mcast_leave(apr_socket_t *sock,
- apr_sockaddr_t *leave,
+ apr_sockaddr_t *addr,
apr_sockaddr_t *iface,
apr_sockaddr_t *source)
{
-#ifdef IP_DROP_MEMBERSHIP
- return do_mcast(IP_DROP_MEMBERSHIP, sock, leave, iface, source);
+#if defined(IP_DROP_MEMBERSHIP) && defined(HAVE_STRUCT_IPMREQ)
+ return do_mcast(IP_DROP_MEMBERSHIP, sock, addr, iface, source);
#else
return APR_ENOTIMPL;
#endif
@@ -281,7 +283,7 @@ APR_DECLARE(apr_status_t) apr_mcast_leave(apr_socket_t *sock,
APR_DECLARE(apr_status_t) apr_mcast_hops(apr_socket_t *sock, apr_byte_t ttl)
{
-#ifdef IP_MULTICAST_TTL
+#if defined(IP_MULTICAST_TTL) && defined(HAVE_STRUCT_IPMREQ)
return do_mcast_opt(IP_MULTICAST_TTL, sock, ttl);
#else
return APR_ENOTIMPL;
@@ -291,7 +293,7 @@ APR_DECLARE(apr_status_t) apr_mcast_hops(apr_socket_t *sock, apr_byte_t ttl)
APR_DECLARE(apr_status_t) apr_mcast_loopback(apr_socket_t *sock,
apr_byte_t opt)
{
-#ifdef IP_MULTICAST_LOOP
+#if defined(IP_MULTICAST_LOOP) && defined(HAVE_STRUCT_IPMREQ)
return do_mcast_opt(IP_MULTICAST_LOOP, sock, opt);
#else
return APR_ENOTIMPL;
@@ -301,7 +303,7 @@ APR_DECLARE(apr_status_t) apr_mcast_loopback(apr_socket_t *sock,
APR_DECLARE(apr_status_t) apr_mcast_interface(apr_socket_t *sock,
apr_sockaddr_t *iface)
{
-#ifdef IP_MULTICAST_IF
+#if defined(IP_MULTICAST_IF) && defined(HAVE_STRUCT_IPMREQ)
apr_status_t rv = APR_SUCCESS;
if (sock_is_ipv4(sock)) {