diff options
author | Steve Huston <shuston@riverace.com> | 2005-02-21 17:48:11 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2005-02-21 17:48:11 +0000 |
commit | abb08e053f764b94acdc17dc947190579e65a0be (patch) | |
tree | 323ffd51bf89f1b4839f9141fc8dbba1e05ffd7c /ace/WIN32_Asynch_IO.cpp | |
parent | 490ae0dce6d3b2db6174ee1b78c47f304ebd0ae2 (diff) | |
download | ATCD-abb08e053f764b94acdc17dc947190579e65a0be.tar.gz |
ChangeLogTag:Mon Feb 21 12:43:41 2005 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ace/WIN32_Asynch_IO.cpp')
-rw-r--r-- | ace/WIN32_Asynch_IO.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ace/WIN32_Asynch_IO.cpp b/ace/WIN32_Asynch_IO.cpp index b88ae61b5f4..ed50a210ab5 100644 --- a/ace/WIN32_Asynch_IO.cpp +++ b/ace/WIN32_Asynch_IO.cpp @@ -2028,15 +2028,20 @@ ACE_WIN32_Asynch_Accept::accept (ACE_Message_Block &message_block, ACE_HANDLE accept_handle, const void *act, int priority, - int signal_number) + int signal_number, + int addr_family) { #if (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) // Sanity check: make sure that enough space has been allocated by // the caller. - size_t address_size = sizeof (sockaddr_in) + sizeof (sockaddr); - size_t space_in_use = message_block.wr_ptr () - message_block.base (); - size_t total_size = message_block.size (); - size_t available_space = total_size - space_in_use; + size_t address_size = +#if defined (ACE_HAS_IPV6) + addr_family == AF_INET ? sizeof (sockaddr_in) : sizeof (sockaddr_in6); +#else + sizeof (sockaddr_in); +#endif /* ACE_HAS_IPV6 */ + address_size += 16; // AcceptEx requires address size + 16 (minimum) + size_t available_space = message_block.space (); size_t space_needed = bytes_to_read + 2 * address_size; if (available_space < space_needed) ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("Buffer too small\n")), -1); @@ -2055,7 +2060,7 @@ ACE_WIN32_Asynch_Accept::accept (ACE_Message_Block &message_block, // If the <accept_handle> is invalid, we will create a new socket. if (accept_handle == ACE_INVALID_HANDLE) { - accept_handle = ACE_OS::socket (PF_INET, + accept_handle = ACE_OS::socket (addr_family, SOCK_STREAM, 0); if (accept_handle == ACE_INVALID_HANDLE) @@ -2137,6 +2142,7 @@ ACE_WIN32_Asynch_Accept::accept (ACE_Message_Block &message_block, ACE_UNUSED_ARG (act); ACE_UNUSED_ARG (priority); ACE_UNUSED_ARG (signal_number); + ACE_UNUSED_ARG (addr_family); ACE_NOTSUP_RETURN (-1); #endif /* (defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 != 0)) || (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) || (defined (ACE_HAS_AIO_CALLS) */ } |