diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-07-26 04:29:07 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-07-26 04:29:07 +0000 |
commit | f89d6892939b2c81a17c881ce86eacd218f19d12 (patch) | |
tree | e921c48dda3d5be407594c28cc7487bea9f61904 /inet | |
parent | a8870a617d5f20fe588edd5ffb6ea14d80ebdbef (diff) | |
download | glibc-f89d6892939b2c81a17c881ce86eacd218f19d12.tar.gz |
Update.
2004-07-25 Ulrich Drepper <drepper@redhat.com>
* inet/Versions [libc, GLIBC_2.3.4]: Add getipv4sourcefilter,
getsourcefilter, setipv4sourcefilter, and setsourcefilter.
* inet/Makefile (routines): Likewise.
* inet/netinet/in.h: Add prototypes for getipv4sourcefilter,
getsourcefilter, setipv4sourcefilter, and setsourcefilter.
* sysdeps/generic/getipv4sourcefilter.c: New file.
* sysdeps/generic/setipv4sourcefilter.c: New file.
* sysdeps/generic/getsourcefilter.c: New file.
* sysdeps/generic/setsourcefilter.c: New file.
Diffstat (limited to 'inet')
-rw-r--r-- | inet/Makefile | 4 | ||||
-rw-r--r-- | inet/Versions | 4 | ||||
-rw-r--r-- | inet/netinet/in.h | 40 |
3 files changed, 41 insertions, 7 deletions
diff --git a/inet/Makefile b/inet/Makefile index 7367d9cf01..0fdf9e33e4 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -45,7 +45,9 @@ routines := htonl htons \ rcmd rexec ruserpass \ getnetgrent_r getnetgrent \ getaliasent_r getaliasent getaliasname getaliasname_r \ - in6_addr getnameinfo if_index ifaddrs inet6_option + in6_addr getnameinfo if_index ifaddrs inet6_option \ + getipv4sourcefilter setipv4sourcefilter \ + getsourcefilter setsourcefilter aux := check_pf ifreq diff --git a/inet/Versions b/inet/Versions index 67bd0ed5b0..2b7ec901ff 100644 --- a/inet/Versions +++ b/inet/Versions @@ -74,6 +74,10 @@ libc { inet6_option_space; inet6_option_init; inet6_option_append; inet6_option_alloc; inet6_option_next; inet6_option_find; } + GLIBC_2.3.4 { + getipv4sourcefilter; setipv4sourcefilter; + getsourcefilter; setsourcefilter; + } GLIBC_PRIVATE { # functions used in other libraries __internal_endnetgrent; __internal_getnetgrent_r; diff --git a/inet/netinet/in.h b/inet/netinet/in.h index 6aee842530..bdf4e5dc2c 100644 --- a/inet/netinet/in.h +++ b/inet/netinet/in.h @@ -417,18 +417,46 @@ struct in6_pktinfo #ifdef __USE_GNU /* Hop-by-Hop and Destination Options Processing. */ -extern int inet6_option_space (int __nbytes); +extern int inet6_option_space (int __nbytes) __THROW; extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, - int __type); + int __type) __THROW; extern int inet6_option_append (struct cmsghdr *__cmsg, __const uint8_t *__typep, int __multx, - int __plusy); + int __plusy) __THROW; extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, - int __multx, int __plusy); + int __multx, int __plusy) __THROW; extern int inet6_option_next (__const struct cmsghdr *__cmsg, - uint8_t **__tptrp); + uint8_t **__tptrp) __THROW; extern int inet6_option_find (__const struct cmsghdr *__cmsg, - uint8_t **__tptrp, int __type); + uint8_t **__tptrp, int __type) __THROW; + + +/* Multicast source filter support. */ + +/* Get IPv4 source filter. */ +extern int getipv4sourcefilter (int __s, struct in_addr __interface, + struct in_addr __group, uint32_t *__fmode, + uint32_t *__numsrc, struct in_addr *__slist) + __THROW; + +/* Set IPv4 source filter. */ +extern int setipv4sourcefilter (int __s, struct in_addr __interface, + struct in_addr __group, uint32_t __fmode, + uint32_t __numsrc, struct in_addr *__slist) + __THROW; + + +/* Get source filter. */ +extern int getsourcefilter (int __s, uint32_t __interface, + struct sockaddr *__group, socklen_t __grouplen, + uint32_t *__fmode, uint32_t *__numsrc, + struct sockaddr_storage *__slist) __THROW; + +/* Set source filter. */ +extern int setsourcefilter (int __s, uint32_t __interface, + struct sockaddr *__group, socklen_t __grouplen, + uint32_t __fmode, uint32_t __numsrc, + struct sockaddr_storage *__slist) __THROW; #endif /* use GNU */ __END_DECLS |