mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Fix macro API for __USE_KERNEL_IPV6_DEFS.
The use of __USE_KERNEL_IPV6_DEFS with ifndef is bad practice per: https://sourceware.org/glibc/wiki/Wundef. This change moves it to use 'if' and always define the macro. Please note that this is not the only problem with this code. I have a series of fixes after this one to resolve breakage with this code and add regression tests for it via compile-only source testing (to be discussed in another thread). Unfortunately __USE_KERNEL_XATTR_DEFS is set by the kernel and not glibc, and uses 'define', so we can't fix that yet.
This commit is contained in:
parent
f06f3f05b4
commit
1c1e7fb658
@ -1,3 +1,12 @@
|
|||||||
|
2016-06-02 Carlos O'Donell <carlos@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/bits/in.h [defined _UAPI_LINUX_IN6_H ||
|
||||||
|
defined _UAPI_IPV6_H]: Define __USE_KERNEL_IPV6_DEFS to 1.
|
||||||
|
[!(defined _UAPI_LINUX_IN6_H || defined _UAPI_IPV6_H)]: Define
|
||||||
|
__USE_KERNEL_IPV6_DEFS to 0.
|
||||||
|
* inet/netinet/in.h: Use '#if !__USE_KERNEL_IPV6_DEFS'.
|
||||||
|
Update comment.
|
||||||
|
|
||||||
2016-06-01 Florian Weimer <fweimer@redhat.com>
|
2016-06-01 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
[BZ #19861]
|
[BZ #19861]
|
||||||
|
@ -92,10 +92,10 @@ enum
|
|||||||
IPPROTO_MAX
|
IPPROTO_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
/* If __USE_KERNEL_IPV6_DEFS is defined then the user has included the kernel
|
/* If __USE_KERNEL_IPV6_DEFS is 1 then the user has included the kernel
|
||||||
network headers first and we should use those ABI-identical definitions
|
network headers first and we should use those ABI-identical definitions
|
||||||
instead of our own. */
|
instead of our own, otherwise 0. */
|
||||||
#ifndef __USE_KERNEL_IPV6_DEFS
|
#if !__USE_KERNEL_IPV6_DEFS
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
|
IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
|
||||||
@ -206,7 +206,7 @@ enum
|
|||||||
#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
|
#define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
|
||||||
#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
|
#define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
|
||||||
|
|
||||||
#ifndef __USE_KERNEL_IPV6_DEFS
|
#if !__USE_KERNEL_IPV6_DEFS
|
||||||
/* IPv6 address */
|
/* IPv6 address */
|
||||||
struct in6_addr
|
struct in6_addr
|
||||||
{
|
{
|
||||||
@ -249,7 +249,7 @@ struct sockaddr_in
|
|||||||
sizeof (struct in_addr)];
|
sizeof (struct in_addr)];
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef __USE_KERNEL_IPV6_DEFS
|
#if !__USE_KERNEL_IPV6_DEFS
|
||||||
/* Ditto, for IPv6. */
|
/* Ditto, for IPv6. */
|
||||||
struct sockaddr_in6
|
struct sockaddr_in6
|
||||||
{
|
{
|
||||||
@ -285,7 +285,7 @@ struct ip_mreq_source
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __USE_KERNEL_IPV6_DEFS
|
#if !__USE_KERNEL_IPV6_DEFS
|
||||||
/* Likewise, for IPv6. */
|
/* Likewise, for IPv6. */
|
||||||
struct ipv6_mreq
|
struct ipv6_mreq
|
||||||
{
|
{
|
||||||
@ -532,7 +532,7 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
|
|||||||
#ifdef __USE_GNU
|
#ifdef __USE_GNU
|
||||||
struct cmsghdr; /* Forward declaration. */
|
struct cmsghdr; /* Forward declaration. */
|
||||||
|
|
||||||
#ifndef __USE_KERNEL_IPV6_DEFS
|
#if !__USE_KERNEL_IPV6_DEFS
|
||||||
/* IPv6 packet information. */
|
/* IPv6 packet information. */
|
||||||
struct in6_pktinfo
|
struct in6_pktinfo
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,9 @@
|
|||||||
/* This is not quite the same API since the kernel always defines s6_addr16 and
|
/* This is not quite the same API since the kernel always defines s6_addr16 and
|
||||||
s6_addr32. This is not a violation of POSIX since POSIX says "at least the
|
s6_addr32. This is not a violation of POSIX since POSIX says "at least the
|
||||||
following member" and that holds true. */
|
following member" and that holds true. */
|
||||||
# define __USE_KERNEL_IPV6_DEFS
|
# define __USE_KERNEL_IPV6_DEFS 1
|
||||||
|
#else
|
||||||
|
# define __USE_KERNEL_IPV6_DEFS 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Options for use with `getsockopt' and `setsockopt' at the IP level.
|
/* Options for use with `getsockopt' and `setsockopt' at the IP level.
|
||||||
|
Loading…
Reference in New Issue
Block a user