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; |
