summaryrefslogtreecommitdiff
path: root/ACE/ace/LSOCK.cpp
diff options
context:
space:
mode:
authorAdam Mitz <mitza@ociweb.com>2015-11-06 17:07:11 -0600
committerAdam Mitz <mitza@ociweb.com>2015-11-06 17:07:11 -0600
commitac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b (patch)
tree0e70d1f51c39e688a05a6cdc2af58408222e4a0d /ACE/ace/LSOCK.cpp
parent5272b5b81f92c298cb998b5bb0b0dbca3e7f29fe (diff)
downloadATCD-ac5e1702c9f9bee9f1f7bfce8c1a6f3847ea6b4b.tar.gz
Merged branch ace-face-safety (FACE Safety Profile import from OCITAO).
Diffstat (limited to 'ACE/ace/LSOCK.cpp')
-rw-r--r--ACE/ace/LSOCK.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/ACE/ace/LSOCK.cpp b/ACE/ace/LSOCK.cpp
index 60cc7711ebc..332890ed82c 100644
--- a/ACE/ace/LSOCK.cpp
+++ b/ACE/ace/LSOCK.cpp
@@ -6,6 +6,9 @@
#include "ace/Log_Category.h"
#include "ace/OS_NS_sys_socket.h"
+#if defined (ACE_HAS_ALLOC_HOOKS)
+# include "ace/Malloc_Base.h"
+#endif /* ACE_HAS_ALLOC_HOOKS */
#if !defined (__ACE_INLINE__)
#include "ace/LSOCK.inl"
@@ -37,7 +40,7 @@ ACE_LSOCK::send_handle (const ACE_HANDLE handle) const
u_char a[2];
iovec iov;
msghdr send_msg;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
+#if !defined (ACE_LACKS_SENDMSG) && defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
char cmsgbuf[ACE_BSD_CONTROL_MSG_LEN];
cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
@@ -51,7 +54,10 @@ ACE_LSOCK::send_handle (const ACE_HANDLE handle) const
send_msg.msg_name = 0;
send_msg.msg_namelen = 0;
-#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
+#if defined (ACE_LACKS_SENDMSG)
+ ACE_UNUSED_ARG(handle);
+#else
+# if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
cmsgptr->cmsg_level = SOL_SOCKET;
cmsgptr->cmsg_type = SCM_RIGHTS;
cmsgptr->cmsg_len = sizeof cmsgbuf;
@@ -60,10 +66,11 @@ ACE_LSOCK::send_handle (const ACE_HANDLE handle) const
ACE_HANDLE *ph = (ACE_HANDLE *) CMSG_DATA (cmsgptr);
*ph = handle;
send_msg.msg_flags = 0;
-#else
+# else
send_msg.msg_accrights = (char *) &handle;
send_msg.msg_accrightslen = sizeof handle;
-#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
+# endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
+#endif /* ACE_LACKS_SENDMSG */
return ACE_OS::sendmsg (this->get_handle (), &send_msg, 0);
}
@@ -99,6 +106,8 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
recv_msg.msg_iovlen = 1;
recv_msg.msg_name = 0;
recv_msg.msg_namelen = 0;
+
+#ifndef ACE_LACKS_SENDMSG
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
recv_msg.msg_control = cmsgbuf;
recv_msg.msg_controllen = sizeof cmsgbuf;
@@ -106,6 +115,7 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
recv_msg.msg_accrights = (char *) &handle;
recv_msg.msg_accrightslen = sizeof handle;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
+#endif /* ACE_LACKS_SENDMSG */
#if defined (ACE_HAS_STREAMS)
@@ -140,6 +150,7 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
&& ((u_char *) iov.iov_base)[0] == 0xab
&& ((u_char *) iov.iov_base)[1] == 0xcd)
{
+#ifndef ACE_LACKS_SENDMSG
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
// Close down the socket that was returned by the MSG_PEEK.
cmsghdr *cmsgptr = (cmsghdr *) cmsgbuf;
@@ -151,7 +162,7 @@ ACE_LSOCK::recv_handle (ACE_HANDLE &handle, char *pbuf, ssize_t *len) const
recv_msg.msg_accrights = (char *) &handle;
recv_msg.msg_accrightslen = sizeof handle;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
-
+#endif /* ACE_LACKS_SENDMSG */
if (ACE_OS::recvmsg (this->get_handle (),
&recv_msg, 0) == ACE_INVALID_HANDLE)
return ACE_INVALID_HANDLE;