Mercurial > libavformat.hg
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; |