On Fri, 22 Oct 2010, Philip Guenther wrote:
> Instead, how about making <netinet/tcp.h> comply with SUS/POSIX, which
> says that in a conforming environment this header file shall define
> TCP_NODELAY and may declare additional TCP_* macros, but shall not
> otherwise intrude on the applicatiojn visible namespace. Wrapping the top
> of the file in #if __BSD_VISIBLE is the simplest way to meet that
> requirement and solve both the PR and the request in this thread without
> breaking software that doesn't insist on slamming its face into the POSIX
> wall.
Update: need <sys/cdefs.h> for __BSD_VISIBLE. Running a build now...
Philip Guenther
Index: sys/netinet/tcp.h
===================================================================
RCS file: /cvs/src/sys/netinet/tcp.h,v
retrieving revision 1.17
diff -u -p -r1.17 tcp.h
--- sys/netinet/tcp.h 27 Apr 2006 02:19:32 -0000 1.17
+++ sys/netinet/tcp.h 23 Oct 2010 05:42:40 -0000
@@ -35,6 +35,10 @@
#ifndef _NETINET_TCP_H_
#define _NETINET_TCP_H_
+#include <sys/cdefs.h>
+
+#if __BSD_VISIBLE
+
typedef u_int32_t tcp_seq;
/*
@@ -113,6 +117,8 @@ struct tcphdr {
#define TCP_MAXWIN 65535 /* largest value for (unscaled) window
*/
#define TCP_MAX_WINSHIFT 14 /* maximum window shift */
+
+#endif /* __BSD_VISIBLE */
/*
* User-settable options (used with setsockopt).