From 489aa29d623782c2c4045065ef1a22a07af921af Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Aug 2004 04:56:04 +0000 Subject: Update. * inet/netinet/in.h: Define struct ip_msfilter, IP_MSFILTER_SIZE, struct group_filter, and GROUP_FILTER_SIZE. * include/sys/socket.h: Declare __getsockopt. * sysdeps/unix/sysv/linux/setipv4sourcefilter.c: New file. * sysdeps/unix/sysv/linux/getipv4sourcefilter.c: New file. * sysdeps/unix/sysv/linux/setsourcefilter.c: New file. * sysdeps/unix/sysv/linux/getsourcefilter.c: New file. --- inet/netinet/in.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'inet') diff --git a/inet/netinet/in.h b/inet/netinet/in.h index bdf4e5dc2c..0922dc789b 100644 --- a/inet/netinet/in.h +++ b/inet/netinet/in.h @@ -296,6 +296,51 @@ struct group_source_req }; +/* Full-state filter operations. */ +struct ip_msfilter + { + /* IP multicast address of group. */ + struct in_addr imsf_multiaddr; + + /* Local IP address of interface. */ + struct in_addr imsf_interface; + + /* Filter mode. */ + uint32_t imsf_fmode; + + /* Number of source addresses. */ + uint32_t imsf_numsrc; + /* Source addresses. */ + struct in_addr imsf_slist[1]; + }; + +#define IP_MSFILTER_SIZE(numsrc) (sizeof (struct ip_msfilter) \ + - sizeof (struct in_addr) \ + + (numsrc) * sizeof (struct in_addr)) + +struct group_filter + { + /* Interface index. */ + uint32_t gf_interface; + + /* Group address. */ + struct sockaddr_storage gf_group; + + /* Filter mode. */ + uint32_t gf_fmode; + + /* Number of source addresses. */ + uint32_t gf_numsrc; + /* Source addresses. */ + struct sockaddr_storage gf_slist[1]; +}; + +#define GROUP_FILTER_SIZE(numsrc) (sizeof (struct group_filter) \ + - sizeof (struct sockaddr_storage) \ + + ((numsrc) \ + * sizeof (struct sockaddr_storage))) + + /* Get system-specific definitions. */ #include -- cgit 1.4.1