net.h: Fic compilation on systems with partial DCCP support.
authorAndre Noll <maan@systemlinux.org>
Thu, 25 Feb 2010 16:33:54 +0000 (17:33 +0100)
committerAndre Noll <maan@systemlinux.org>
Thu, 25 Feb 2010 16:33:54 +0000 (17:33 +0100)
There exists at least one system that defines IPPROTO_DCCP but not
DCCP_SOCKOPT_CCID and friends. On such systems compilation fails due
to to undefined symbols.

Fix this problem by checking each value separately.

net.h

diff --git a/net.h b/net.h
index 831cd3b8b72f2b3a7f90592c64f6a5f725c4b7d7..e9974d1c342316c4f6073b5f4afb8895143dc5d6 100644 (file)
--- a/net.h
+++ b/net.h
 #define UNIX_PATH_MAX 108
 #endif
 
-/** \cond Userland defines for Linux DCCP support. */
+/* Userland defines for Linux DCCP support. */
+
 #ifndef IPPROTO_DCCP
-#define IPPROTO_DCCP   33      /* IANA assigned value */
-#define SOCK_DCCP      6       /* Linux socket type   */
-#define SOL_DCCP       269     /* Linux socket level  */
-/* Per-connection CCID support (since v2.6.30-rc1) */
-#define DCCP_SOCKOPT_AVAILABLE_CCIDS   12      /* List of supported CCIDs */
-#define DCCP_SOCKOPT_CCID              13      /* Sets both TX/RX CCID    */
-#define DCCP_SOCKOPT_TX_CCID           14      /* Set/get the TX CCID     */
-#define DCCP_SOCKOPT_RX_CCID           15      /* Set/get the RX CCID     */
+#define IPPROTO_DCCP 33 /**< IANA assigned value. */
+#endif
+
+#ifndef SOCK_DCCP
+#define SOCK_DCCP 6 /**< Linux socket type. */
+#endif
+
+#ifndef DCCP_SOCKOPT_RX_CCID
+/** Per-connection CCID support (set/get the RX CCID, since v2.6.30-rc1). */
+#define DCCP_SOCKOPT_RX_CCID 15
+#endif
+
+#ifndef SOL_DCCP
+#define SOL_DCCP 269 /**< Linux socket level. */
+#endif
+
+#ifndef DCCP_SOCKOPT_AVAILABLE_CCIDS
+#define DCCP_SOCKOPT_AVAILABLE_CCIDS 12 /**< List of supported CCIDs. */
 #endif
-/** \endcond */
 
+#ifndef DCCP_SOCKOPT_CCID
+#define DCCP_SOCKOPT_CCID 13 /**< Sets both TX/RX CCID. */
+#endif
+
+#ifndef DCCP_SOCKOPT_TX_CCID
+#define DCCP_SOCKOPT_TX_CCID 14 /**< Set/get the TX CCID. */
+#endif
 
 /**
  * Flowopts: Transport-layer independent encapsulation of socket options