comparison udp.c @ 6478:1e6ebac87d44 libavformat

Check for the IPPROTO_IPV6 define before using it This fixes building on FreeBSD in some configurations, if the IPv6 multicast structs are available, but IPPROTO_IPV6 isn't defined.
author mstorsjo
date Mon, 20 Sep 2010 06:38:40 +0000
parents 9bd0ce3f9b64
children
comparison
equal deleted inserted replaced
6477:2697448798ee 6478:1e6ebac87d44
94 av_log(NULL, AV_LOG_ERROR, "setsockopt(IP_ADD_MEMBERSHIP): %s\n", strerror(errno)); 94 av_log(NULL, AV_LOG_ERROR, "setsockopt(IP_ADD_MEMBERSHIP): %s\n", strerror(errno));
95 return -1; 95 return -1;
96 } 96 }
97 } 97 }
98 #endif 98 #endif
99 #if HAVE_STRUCT_IPV6_MREQ 99 #if HAVE_STRUCT_IPV6_MREQ && defined(IPPROTO_IPV6)
100 if (addr->sa_family == AF_INET6) { 100 if (addr->sa_family == AF_INET6) {
101 struct ipv6_mreq mreq6; 101 struct ipv6_mreq mreq6;
102 102
103 memcpy(&mreq6.ipv6mr_multiaddr, &(((struct sockaddr_in6 *)addr)->sin6_addr), sizeof(struct in6_addr)); 103 memcpy(&mreq6.ipv6mr_multiaddr, &(((struct sockaddr_in6 *)addr)->sin6_addr), sizeof(struct in6_addr));
104 mreq6.ipv6mr_interface= 0; 104 mreq6.ipv6mr_interface= 0;
123 av_log(NULL, AV_LOG_ERROR, "setsockopt(IP_DROP_MEMBERSHIP): %s\n", strerror(errno)); 123 av_log(NULL, AV_LOG_ERROR, "setsockopt(IP_DROP_MEMBERSHIP): %s\n", strerror(errno));
124 return -1; 124 return -1;
125 } 125 }
126 } 126 }
127 #endif 127 #endif
128 #if HAVE_STRUCT_IPV6_MREQ 128 #if HAVE_STRUCT_IPV6_MREQ && defined(IPPROTO_IPV6)
129 if (addr->sa_family == AF_INET6) { 129 if (addr->sa_family == AF_INET6) {
130 struct ipv6_mreq mreq6; 130 struct ipv6_mreq mreq6;
131 131
132 memcpy(&mreq6.ipv6mr_multiaddr, &(((struct sockaddr_in6 *)addr)->sin6_addr), sizeof(struct in6_addr)); 132 memcpy(&mreq6.ipv6mr_multiaddr, &(((struct sockaddr_in6 *)addr)->sin6_addr), sizeof(struct in6_addr));
133 mreq6.ipv6mr_interface= 0; 133 mreq6.ipv6mr_interface= 0;