diff options
| -rw-r--r-- | include/netinet/in.h | 43 | 
1 files changed, 42 insertions, 1 deletions
| diff --git a/include/netinet/in.h b/include/netinet/in.h index 881f670b..8be51e83 100644 --- a/include/netinet/in.h +++ b/include/netinet/in.h @@ -206,7 +206,7 @@ uint16_t ntohs(uint16_t);  #define IP_MULTICAST_ALL   49  #define IP_UNICAST_IF      50 -#ifdef _GNU_SOURCE +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)  #define MCAST_JOIN_GROUP   42  #define MCAST_BLOCK_SOURCE 43  #define MCAST_UNBLOCK_SOURCE      44 @@ -251,6 +251,47 @@ struct ip_mreqn  	int imr_ifindex;  }; +struct ip_mreq_source { +	struct in_addr imr_multiaddr; +	struct in_addr imr_interface; +	struct in_addr imr_sourceaddr; +}; + +struct ip_msfilter { +	struct in_addr imsf_multiaddr; +	struct in_addr imsf_interface; +	uint32_t imsf_fmode; +	uint32_t imsf_numsrc; +	struct in_addr imsf_slist[1]; +}; +#define IP_MSFILTER_SIZE(numsrc) \ +	(sizeof(struct ip_msfilter) - sizeof(struct in_addr) \ +	+ (numsrc) * sizeof(struct in_addr)) + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +struct group_req { +	uint32_t gr_interface; +	struct sockaddr_storage gr_group; +}; + +struct group_source_req { +	uint32_t gsr_interface; +	struct sockaddr_storage gsr_group; +	struct sockaddr_storage gsr_source; +}; + +struct group_filter { +	uint32_t gf_interface; +	struct sockaddr_storage gf_group; +	uint32_t gf_fmode; +	uint32_t gf_numsrc; +	struct sockaddr_storage gf_slist[1]; +}; +#define GROUP_FILTER_SIZE(numsrc) \ +	(sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \ +	+ (numsrc) * sizeof(struct sockaddr_storage)) +#endif +  struct in_pktinfo  {  	int ipi_ifindex; | 
