提交 89511cd9 编写于 作者: R Rich Felker

reduce namespace pollution in netinet/udp.h

the affected part of the header is responsible for providing both GNU
and BSD versions of the udphdr structure. previously, the
namespace-polluting GNU names were always used for the actual struct
members, and the BSD names, which are named in a manner resembling a
sane namespace, were always macros defined to expand to the GNU names.
now, unless _GNU_SOURCE is defined, the BSD names are used as the
actual structure members, and the macros and GNU names only come into
play when the application requests them.
上级 685b1cd4
...@@ -5,19 +5,22 @@ ...@@ -5,19 +5,22 @@
extern "C" { extern "C" {
#endif #endif
#include <features.h>
#include <stdint.h> #include <stdint.h>
struct udphdr { #ifdef _GNU_SOURCE
uint16_t source;
uint16_t dest;
uint16_t len;
uint16_t check;
};
#define uh_sport source #define uh_sport source
#define uh_dport dest #define uh_dport dest
#define uh_ulen len #define uh_ulen len
#define uh_sum check #define uh_sum check
#endif
struct udphdr {
uint16_t uh_sport;
uint16_t uh_dport;
uint16_t uh_ulen;
uint16_t uh_sum;
};
#define UDP_CORK 1 #define UDP_CORK 1
#define UDP_ENCAP 100 #define UDP_ENCAP 100
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册