chore(Deps/Acelite): Update to 6.5.10 (#3450)

This commit is contained in:
Kargatum
2020-11-11 22:09:02 +07:00
committed by GitHub
parent a93565b6da
commit e27201cee2
921 changed files with 18238 additions and 33164 deletions

View File

@@ -8,6 +8,9 @@
#include "ace/OS_NS_ctype.h"
#include "ace/os_include/net/os_if.h"
#include "ace/Truncate.h"
#if defined (ACE_HAS_ALLOC_HOOKS)
# include "ace/Malloc_Base.h"
#endif /* ACE_HAS_ALLOC_HOOKS */
#if !defined (__ACE_INLINE__)
# include "ace/SOCK_Dgram.inl"
@@ -63,9 +66,16 @@ ACE_SOCK_Dgram::recv (iovec *io_vec,
return -1;
else if (inlen > 0)
{
#if defined (ACE_HAS_ALLOC_HOOKS)
ACE_ALLOCATOR_RETURN (io_vec->iov_base,
static_cast<char*>(ACE_Allocator::instance()->malloc(sizeof(char) * inlen)),
-1);
#else
ACE_NEW_RETURN (io_vec->iov_base,
char[inlen],
-1);
#endif /* ACE_HAS_ALLOC_HOOKS */
ssize_t rcv_len = ACE_OS::recvfrom (this->get_handle (),
(char *) io_vec->iov_base,
inlen,
@@ -74,7 +84,11 @@ ACE_SOCK_Dgram::recv (iovec *io_vec,
&addr_len);
if (rcv_len < 0)
{
#if defined (ACE_HAS_ALLOC_HOOKS)
ACE_Allocator::instance()->free(io_vec->iov_base);
#else
delete [] (char *)io_vec->iov_base;
#endif /* ACE_HAS_ALLOC_HOOKS */
io_vec->iov_base = 0;
}
else
@@ -102,10 +116,26 @@ ACE_SOCK_Dgram::recv (iovec *io_vec,
int
ACE_SOCK_Dgram::shared_open (const ACE_Addr &local,
int protocol_family)
int protocol_family,
int ipv6_only)
{
ACE_TRACE ("ACE_SOCK_Dgram::shared_open");
bool error = false;
#if defined (ACE_HAS_IPV6)
int setting = !!ipv6_only;
if (protocol_family == PF_INET6 &&
-1 == ACE_OS::setsockopt (this->get_handle (),
IPPROTO_IPV6,
IPV6_V6ONLY,
(char *)&setting,
sizeof (setting)))
{
this->close();
return -1;
}
#else
ACE_UNUSED_ARG (ipv6_only);
#endif /* defined (ACE_HAS_IPV6) */
if (local == ACE_Addr::sap_any)
{
@@ -139,7 +169,8 @@ ACE_SOCK_Dgram::open (const ACE_Addr &local,
ACE_Protocol_Info *protocolinfo,
ACE_SOCK_GROUP g,
u_long flags,
int reuse_addr)
int reuse_addr,
int ipv6_only)
{
if (ACE_SOCK::open (SOCK_DGRAM,
protocol_family,
@@ -150,7 +181,8 @@ ACE_SOCK_Dgram::open (const ACE_Addr &local,
reuse_addr) == -1)
return -1;
else if (this->shared_open (local,
protocol_family) == -1)
protocol_family,
ipv6_only) == -1)
return -1;
else
return 0;
@@ -162,7 +194,8 @@ int
ACE_SOCK_Dgram::open (const ACE_Addr &local,
int protocol_family,
int protocol,
int reuse_addr)
int reuse_addr,
int ipv6_only)
{
ACE_TRACE ("ACE_SOCK_Dgram::open");
@@ -184,7 +217,8 @@ ACE_SOCK_Dgram::open (const ACE_Addr &local,
return -1;
else
return this->shared_open (local,
protocol_family);
protocol_family,
ipv6_only);
}
// Here's the general-purpose constructor used by a connectionless
@@ -193,14 +227,16 @@ ACE_SOCK_Dgram::open (const ACE_Addr &local,
ACE_SOCK_Dgram::ACE_SOCK_Dgram (const ACE_Addr &local,
int protocol_family,
int protocol,
int reuse_addr)
int reuse_addr,
int ipv6_only)
{
ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
if (this->open (local,
protocol_family,
protocol,
reuse_addr) == -1)
reuse_addr,
ipv6_only) == -1)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("ACE_SOCK_Dgram")));
@@ -212,7 +248,8 @@ ACE_SOCK_Dgram::ACE_SOCK_Dgram (const ACE_Addr &local,
ACE_Protocol_Info *protocolinfo,
ACE_SOCK_GROUP g,
u_long flags,
int reuse_addr)
int reuse_addr,
int ipv6_only)
{
ACE_TRACE ("ACE_SOCK_Dgram::ACE_SOCK_Dgram");
if (this->open (local,
@@ -221,7 +258,8 @@ ACE_SOCK_Dgram::ACE_SOCK_Dgram (const ACE_Addr &local,
protocolinfo,
g,
flags,
reuse_addr) == -1)
reuse_addr,
ipv6_only) == -1)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("ACE_SOCK_Dgram")));
@@ -253,11 +291,16 @@ ACE_SOCK_Dgram::send (const iovec iov[],
send_msg.msg_control = 0;
send_msg.msg_controllen = 0;
send_msg.msg_flags = 0;
#else
#elif !defined ACE_LACKS_SENDMSG
send_msg.msg_accrights = 0;
send_msg.msg_accrightslen = 0;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
#ifdef ACE_WIN32
send_msg.msg_control = 0;
send_msg.msg_controllen = 0;
#endif
return ACE_OS::sendmsg (this->get_handle (),
&send_msg,
flags);
@@ -270,11 +313,29 @@ ssize_t
ACE_SOCK_Dgram::recv (iovec iov[],
int n,
ACE_Addr &addr,
int flags) const
int flags,
ACE_INET_Addr *to_addr) const
{
ACE_TRACE ("ACE_SOCK_Dgram::recv");
msghdr recv_msg;
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) || defined ACE_WIN32
#define ACE_USE_MSG_CONTROL
union control_buffer {
cmsghdr control_msg_header;
#if defined (IP_RECVDSTADDR)
u_char padding[ACE_CMSG_SPACE (sizeof (in_addr))];
#elif defined (IP_PKTINFO)
u_char padding[ACE_CMSG_SPACE (sizeof (in_pktinfo))];
#endif
#if defined (ACE_HAS_IPV6)
u_char padding6[ACE_CMSG_SPACE (sizeof (in6_pktinfo))];
#endif
} cbuf;
#else
ACE_UNUSED_ARG (to_addr);
#endif
recv_msg.msg_iov = (iovec *) iov;
recv_msg.msg_iovlen = n;
#if defined (ACE_HAS_SOCKADDR_MSG_NAME)
@@ -284,19 +345,60 @@ ACE_SOCK_Dgram::recv (iovec iov[],
#endif /* ACE_HAS_SOCKADDR_MSG_NAME */
recv_msg.msg_namelen = addr.get_size ();
#if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
recv_msg.msg_control = 0 ;
recv_msg.msg_controllen = 0 ;
#else
#ifdef ACE_USE_MSG_CONTROL
recv_msg.msg_control = to_addr ? &cbuf : 0;
recv_msg.msg_controllen = to_addr ? sizeof (cbuf) : 0;
#elif !defined ACE_LACKS_SENDMSG
recv_msg.msg_accrights = 0;
recv_msg.msg_accrightslen = 0;
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
#endif
ssize_t status = ACE_OS::recvmsg (this->get_handle (),
&recv_msg,
flags);
addr.set_size (recv_msg.msg_namelen);
addr.set_type (((sockaddr_in *) addr.get_addr())->sin_family);
#ifdef ACE_USE_MSG_CONTROL
if (to_addr) {
this->get_local_addr (*to_addr);
if (to_addr->get_type() == AF_INET) {
#if defined (IP_RECVDSTADDR) || defined (IP_PKTINFO)
for (cmsghdr *ptr = ACE_CMSG_FIRSTHDR (&recv_msg); ptr; ptr = ACE_CMSG_NXTHDR (&recv_msg, ptr)) {
#if defined (IP_RECVDSTADDR)
if (ptr->cmsg_level == IPPROTO_IP && ptr->cmsg_type == IP_RECVDSTADDR) {
to_addr->set_address ((const char *) (ACE_CMSG_DATA (ptr)),
sizeof (struct in_addr),
0);
break;
}
#else
if (ptr->cmsg_level == IPPROTO_IP && ptr->cmsg_type == IP_PKTINFO) {
to_addr->set_address ((const char *) &(((in_pktinfo *) (ACE_CMSG_DATA (ptr)))->ipi_addr),
sizeof (struct in_addr),
0);
break;
}
#endif
}
#endif
}
#if defined (ACE_HAS_IPV6) && defined (IPV6_PKTINFO)
else if (to_addr->get_type() == AF_INET6) {
for (cmsghdr *ptr = ACE_CMSG_FIRSTHDR (&recv_msg); ptr; ptr = ACE_CMSG_NXTHDR (&recv_msg, ptr)) {
if (ptr->cmsg_level == IPPROTO_IPV6 && ptr->cmsg_type == IPV6_PKTINFO) {
to_addr->set_address ((const char *) &(((in6_pktinfo *)(ACE_CMSG_DATA (ptr)))->ipi6_addr),
sizeof (struct in6_addr),
0);
break;
}
}
}
#endif
}
#endif
return status;
}
@@ -332,9 +434,14 @@ ACE_SOCK_Dgram::send (const iovec iov[],
#if defined (ACE_HAS_ALLOCA)
buf = alloca (length);
#else
# ifdef ACE_HAS_ALLOC_HOOKS
ACE_ALLOCATOR_RETURN (buf, (buf *)
ACE_Allocator::instance ()->malloc (length), -1);
# else
ACE_NEW_RETURN (buf,
char[length],
-1);
# endif /* ACE_HAS_ALLOC_HOOKS */
#endif /* !defined (ACE_HAS_ALLOCA) */
char *ptr = buf;
@@ -347,7 +454,11 @@ ACE_SOCK_Dgram::send (const iovec iov[],
ssize_t result = ACE_SOCK_Dgram::send (buf, length, addr, flags);
#if !defined (ACE_HAS_ALLOCA)
# ifdef ACE_HAS_ALLOC_HOOKS
ACE_Allocator::instance ()->free (buf);
# else
delete [] buf;
# endif /* ACE_HAS_ALLOC_HOOKS */
#endif /* !defined (ACE_HAS_ALLOCA) */
return result;
}
@@ -359,13 +470,16 @@ ssize_t
ACE_SOCK_Dgram::recv (iovec iov[],
int n,
ACE_Addr &addr,
int flags) const
int flags,
ACE_INET_Addr *to_addr) const
{
ACE_TRACE ("ACE_SOCK_Dgram::recv");
ssize_t length = 0;
int i;
ACE_UNUSED_ARG (to_addr);
for (i = 0; i < n; i++)
#if ! (defined(__BORLANDC__) || defined(ACE_LINUX) || defined(ACE_HAS_RTEMS))
// The iov_len is unsigned on Linux, RTEMS and with Borland. If we go
@@ -381,9 +495,14 @@ ACE_SOCK_Dgram::recv (iovec iov[],
#if defined (ACE_HAS_ALLOCA)
buf = alloca (length);
#else
# ifdef ACE_HAS_ALLOC_HOOKS
ACE_ALLOCATOR_RETURN (buf, (buf *)
ACE_Allocator::instance ()->malloc (length), -1);
# else
ACE_NEW_RETURN (buf,
char[length],
-1);
# endif /* ACE_HAS_ALLOC_HOOKS */
#endif /* !defined (ACE_HAS_ALLOCA) */
length = ACE_SOCK_Dgram::recv (buf, length, addr, flags);
@@ -408,7 +527,11 @@ ACE_SOCK_Dgram::recv (iovec iov[],
}
#if !defined (ACE_HAS_ALLOCA)
# ifdef ACE_HAS_ALLOC_HOOKS
ACE_Allocator::instance ()->free (buf);
# else
delete [] buf;
# endif /* ACE_HAS_ALLOC_HOOKS */
#endif /* !defined (ACE_HAS_ALLOCA) */
return length;
}
@@ -606,12 +729,11 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
0,
sizeof (lmreq));
#if defined(ACE_LINUX)
#ifndef ACE_LACKS_IF_NAMETOINDEX
if (net_if != 0)
{
lmreq.ipv6mr_interface = ACE_OS::if_nametoindex (ACE_TEXT_ALWAYS_CHAR(net_if));
lmreq.ipv6mr_interface = ACE_OS::if_nametoindex (ACE_TEXT_ALWAYS_CHAR (net_if));
}
else
#elif defined (ACE_WIN32)
if (net_if != 0)
{
@@ -667,11 +789,9 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
delete[] buf; // clean up
}
else
#else /* ACE_WIN32 */
ACE_UNUSED_ARG(net_if);
#endif /* ACE_WIN32 */
lmreq.ipv6mr_interface = 0;
// now set the multicast address
ACE_OS::memcpy (&lmreq.ipv6mr_multiaddr,
@@ -684,6 +804,6 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
return 0;
}
#endif /* ACE_LINUX && ACE_HAS_IPV6 */
#endif /* ACE_HAS_IPV6 */
ACE_END_VERSIONED_NAMESPACE_DECL