diff options
authorRich Felker <>2014-02-05 17:25:39 -0500
committerRich Felker <>2014-02-05 17:25:39 -0500
commit89511cd943d807b7fe31b61c06d4fe09888b8e9a (patch)
parent685b1cd4a0d1a890c55f9481b67e33e51412babb (diff)
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.
1 files changed, 10 insertions, 7 deletions
diff --git a/include/netinet/udp.h b/include/netinet/udp.h
index 15b91454..b1b0eb81 100644
--- a/include/netinet/udp.h
+++ b/include/netinet/udp.h
@@ -5,19 +5,22 @@
extern "C" {
+#include <features.h>
#include <stdint.h>
-struct udphdr {
- uint16_t source;
- uint16_t dest;
- uint16_t len;
- uint16_t check;
+#ifdef _GNU_SOURCE
#define uh_sport source
#define uh_dport dest
#define uh_ulen len
#define uh_sum check
+struct udphdr {
+ uint16_t uh_sport;
+ uint16_t uh_dport;
+ uint16_t uh_ulen;
+ uint16_t uh_sum;
#define UDP_CORK 1
#define UDP_ENCAP 100