summaryrefslogtreecommitdiff
path: root/ace/os_include/sys/socket.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/os_include/sys/socket.h')
-rw-r--r--ace/os_include/sys/socket.h128
1 files changed, 89 insertions, 39 deletions
diff --git a/ace/os_include/sys/socket.h b/ace/os_include/sys/socket.h
index 4927b262a05..a0afb5f7149 100644
--- a/ace/os_include/sys/socket.h
+++ b/ace/os_include/sys/socket.h
@@ -2,19 +2,19 @@
//=============================================================================
/**
- * @file socket.h
+ * @file os_socket.h
*
* main sockets header
*
* $Id$
*
- * @author Don Hinton <dhinton@ieee.org>
+ * @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
*/
//=============================================================================
-#ifndef ACE_OS_INCLUDE_SYS_SOCKET_H
-#define ACE_OS_INCLUDE_SYS_SOCKET_H
+#ifndef ACE_OS_INCLUDE_SYS_OS_SOCKET_H
+#define ACE_OS_INCLUDE_SYS_OS_SOCKET_H
#include "ace/pre.h"
@@ -26,53 +26,64 @@
#include "ace/os_include/sys/uio.h"
+#if defined (ACE_HAS_CYGWIN32_SOCKET_H)
+ extern "C" {
+# include /**/ <cygwin32/socket.h>
+ }
+#endif /* ACE_HAS_CYGWIN32_SOCKET_H */
+
#if !defined (ACE_LACKS_SYS_SOCKET_H)
-# include /**/ <sys/socket.h>
+# if defined (ACE_HAS_AIX_BROKEN_SOCKET_HEADER)
+# undef __cplusplus
+# endif /* ACE_HAS_AIX_BROKEN_SOCKET_HEADER */
+# include /**/ <sys/socket.h>
+# if defined (ACE_HAS_AIX_BROKEN_SOCKET_HEADER)
+# define __cplusplus
+# endif /* ACE_HAS_AIX_BROKEN_SOCKET_HEADER */
#endif /* !ACE_LACKS_SYS_SOCKET_H */
-# if !defined (ACE_HAS_MSG) && !defined (SCO)
-struct msghdr {};
-# endif /* ACE_HAS_MSG */
+#if !defined (ACE_HAS_MSG) && !defined (SCO)
+ struct msghdr {};
+#endif /* ACE_HAS_MSG */
-# if defined (ACE_HAS_BROKEN_SENDMSG)
-typedef struct msghdr ACE_SENDMSG_TYPE;
-# else
-typedef const struct msghdr ACE_SENDMSG_TYPE;
-# endif /* ACE_HAS_BROKEN_SENDMSG */
+#if defined (ACE_HAS_BROKEN_SENDMSG)
+ typedef struct msghdr ACE_SENDMSG_TYPE;
+#else
+ typedef const struct msghdr ACE_SENDMSG_TYPE;
+#endif /* ACE_HAS_BROKEN_SENDMSG */
-# if defined (ACE_HAS_MSG) && defined (ACE_LACKS_MSG_ACCRIGHTS)
-# if !defined (msg_accrights)
-# undef msg_control
-# define msg_accrights msg_control
-# endif /* ! msg_accrights */
+#if defined (ACE_HAS_MSG) && defined (ACE_LACKS_MSG_ACCRIGHTS)
+# if !defined (msg_accrights)
+# undef msg_control
+# define msg_accrights msg_control
+# endif /* ! msg_accrights */
-# if !defined (msg_accrightslen)
-# undef msg_controllen
-# define msg_accrightslen msg_controllen
-# endif /* ! msg_accrightslen */
-# endif /* ACE_HAS_MSG && ACE_LACKS_MSG_ACCRIGHTS */
+# if !defined (msg_accrightslen)
+# undef msg_controllen
+# define msg_accrightslen msg_controllen
+# endif /* ! msg_accrightslen */
+#endif /* ACE_HAS_MSG && ACE_LACKS_MSG_ACCRIGHTS */
#if defined (ACE_WIN32)
+ struct msghdr
+ {
+ /// Optional address
+ sockaddr * msg_name;
-struct msghdr
-{
- /// Optional address
- sockaddr * msg_name;
-
- /// Size of address
- int msg_namelen;
+ /// Size of address
+ int msg_namelen;
- /// Scatter/gather array
- iovec *msg_iov;
+ /// Scatter/gather array
+ iovec *msg_iov;
- /// # elements in msg_iov
- int msg_iovlen;
+ /// # elements in msg_iov
+ int msg_iovlen;
- /// Access rights sent/received
- caddr_t msg_accrights;
+ /// Access rights sent/received
+ caddr_t msg_accrights;
- int msg_accrightslen;
-};
+ int msg_accrightslen;
+ };
#endif /* ACE_WIN32 */
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
@@ -87,5 +98,44 @@ struct msghdr
# endif /* ACE_LACKS_CMSG_DATA_MACRO */
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
+#if defined (ACE_PSOS)
+ // Some versions have missing preprocessor definitions
+# if !defined (AF_UNIX)
+# define AF_UNIX 0x1
+# endif /* AF_UNIX */
+# define PF_UNIX AF_UNIX
+# define PF_INET AF_INET
+# if !defined (AF_MAX)
+# define AF_MAX AF_INET
+# endif /* AF_MAX */
+#endif /* ACE_PSOS */
+
+// Increase the range of "address families". Please note that this
+// must appear _after_ the include of sys/socket.h, for the AF_FILE
+// definition on Linux/glibc2.
+#if !defined (AF_ANY)
+# define AF_ANY (-1)
+#endif /* AF_ANY */
+
+#define AF_SPIPE (AF_MAX + 1)
+#if !defined (AF_FILE)
+# define AF_FILE (AF_MAX + 2)
+#endif /* ! AF_FILE */
+#define AF_DEV (AF_MAX + 3)
+#define AF_UPIPE (AF_SPIPE)
+
+#if defined (ACE_HAS_IPV6)
+# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
+# define ACE_ADDRESS_FAMILY_INET AF_UNSPEC
+# define ACE_PROTOCOL_FAMILY_INET PF_UNSPEC
+# else
+# define ACE_ADDRESS_FAMILY_INET AF_INET6
+# define ACE_PROTOCOL_FAMILY_INET PF_INET6
+# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
+#else /* !ACE_HAS_IPV6 */
+# define ACE_ADDRESS_FAMILY_INET AF_INET
+# define ACE_PROTOCOL_FAMILY_INET PF_INET
+#endif /* ACE_HAS_IPV6 */
+
#include "ace/post.h"
-#endif /* ACE_OS_INCLUDE_SYS_SOCKET_H */
+#endif /* ACE_OS_INCLUDE_SYS_OS_SOCKET_H */