summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-02-05 17:25:39 -0500
committerRich Felker <dalias@aerifal.cx>2014-02-05 17:25:39 -0500
commit89511cd943d807b7fe31b61c06d4fe09888b8e9a (patch)
tree38e095e38d868ab6c76faac4e304d1908e715602 /include
parent685b1cd4a0d1a890c55f9481b67e33e51412babb (diff)
downloadmusl-89511cd943d807b7fe31b61c06d4fe09888b8e9a.tar.gz
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.
Diffstat (limited to 'include')
-rw-r--r--include/netinet/udp.h17
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" {
#endif
+#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
+#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_ENCAP 100