summaryrefslogtreecommitdiff
path: root/ace/SOCK_SEQPACK_Association.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/SOCK_SEQPACK_Association.cpp')
-rw-r--r--ace/SOCK_SEQPACK_Association.cpp173
1 files changed, 0 insertions, 173 deletions
diff --git a/ace/SOCK_SEQPACK_Association.cpp b/ace/SOCK_SEQPACK_Association.cpp
deleted file mode 100644
index 9a672f73126..00000000000
--- a/ace/SOCK_SEQPACK_Association.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-// SOCK_SEQPACK_Association.cpp
-
-#include /**/ "ace/SOCK_SEQPACK_Association.h"
-#include /**/ "ace/Auto_Ptr.h"
-#include /**/ "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include /**/ "ace/SOCK_SEQPACK_Association.i"
-#endif
-
-ACE_RCSID(ace, SOCK_SEQPACK_Association, "$Id$")
-
-ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_SEQPACK_Association)
-
-void
-ACE_SOCK_SEQPACK_Association::dump (void) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::dump");
-}
-
-int
-ACE_SOCK_SEQPACK_Association::close (void)
-{
-#if defined (ACE_WIN32)
- // We need the following call to make things work correctly on
- // Win32, which requires use to do a <close_writer> before doing the
- // close in order to avoid losing data. Note that we don't need to
- // do this on UNIX since it doesn't have this "feature". Moreover,
- // this will cause subtle problems on UNIX due to the way that
- // fork() works.
- this->close_writer ();
-#endif /* ACE_WIN32 */
- // Close down the socket.
- return ACE_SOCK::close ();
-}
-
-int
-ACE_SOCK_SEQPACK_Association::get_local_addrs (ACE_INET_Addr *addrs, size_t &size) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::get_local_addrs");
-
- /*
- We will be calling ACE_OS::getsockname, which accepts (and
- potentially modifies) two reference parameters:
-
- 1. a sockaddr_in* that points to a buffer
- 2. an int* that points to the size of this buffer
-
- The OpenSS7 implementation of SCTP copies an array of ipv4
- sockaddr_in into the buffer. Then, if the size of the buffer is
- greater than the size used, the size parameter is reduced
- accordingly.
-
- */
-
- // The array of sockaddr_in will be stored in an ACE_Auto_Array_Ptr,
- // which causes dynamically-allocated memory to be released as soon
- // as the ACE_Auto_Array_Ptr goes out of scope.
- ACE_Auto_Array_Ptr<sockaddr_in> addr_structs;
-
- // Allocate memory for this array. Return -1 if the memory cannot
- // be allocated. (This activity requires a temporary variable---a
- // bare sockaddr_in* --- because ACE_NEW_RETURN cannot act directory on
- // an ACE_Auto_Array_Ptr.)
- {
- sockaddr_in *addr_structs_bootstrap = 0;
- ACE_NEW_RETURN(addr_structs_bootstrap,
- sockaddr_in[size],
- -1);
- addr_structs.reset(addr_structs_bootstrap);
- }
-
- // Physical size of this array is its logical size multiplied by
- // the physical size of one of its elements.
- int physical_size = size * sizeof(sockaddr_in);
-
- /* Clear the array */
- ACE_OS::memset(addr_structs.get(),
- 0,
- physical_size);
-
- /* Populate the array with real values from the getsockname system
- call. The variables addr_structs and phycisal_size are
- modified. */
- if (ACE_OS::getsockname (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- addr_structs.get()),
- &physical_size) == -1)
- return -1;
-
- /* Calculate the NEW physical size of the array */
- size = physical_size / sizeof (sockaddr_in);
-
- /* Copy each sockaddr_in to the address structure of an ACE_Addr from
- the passed-in array */
- for (size_t i = 0; i < size; ++i) {
-
- addrs[i].set_addr(&(addr_structs[i]), sizeof(sockaddr_in));
- addrs[i].set_type(addr_structs[i].sin_family);
- addrs[i].set_size(sizeof(sockaddr_in));
- }
-
- return 0;
-}
-
-int
-ACE_SOCK_SEQPACK_Association::get_remote_addrs (ACE_INET_Addr *addrs, size_t &size) const
-{
- ACE_TRACE ("ACE_SOCK_SEQPACK_Association::get_remote_addrs");
-
- /*
- We will be calling ACE_OS::getpeername, which accepts (and
- potentially modifies) two reference parameters:
-
- 1. a sockaddr_in* that points to a buffer
- 2. an int* that points to the size of this buffer
-
- The OpenSS7 implementation of SCTP copies an array of ipv4
- sockaddr_in into the buffer. Then, if the size of the buffer is
- greater than the size used, the size parameter is reduced
- accordingly.
-
- */
-
- // The array of sockaddr_in will be stored in an ACE_Auto_Array_Ptr,
- // which causes dynamically-allocated memory to be released as soon
- // as the ACE_Auto_Array_Ptr goes out of scope.
- ACE_Auto_Array_Ptr<sockaddr_in> addr_structs;
-
- // Allocate memory for this array. Return -1 if the memory cannot
- // be allocated. (This activity requires a temporary variable---a
- // bare sockaddr_in* --- because ACE_NEW_RETURN cannot act directory on
- // an ACE_Auto_Array_Ptr.)
- {
- sockaddr_in *addr_structs_bootstrap = 0;
- ACE_NEW_RETURN(addr_structs_bootstrap,
- sockaddr_in[size],
- -1);
- addr_structs.reset(addr_structs_bootstrap);
- }
-
- // Physical size of this array is its logical size multiplied by
- // the physical size of one of its elements.
- int physical_size = size * sizeof(sockaddr_in);
-
- /* Clear the array */
- ACE_OS::memset(addr_structs.get(),
- 0,
- physical_size);
-
- /* Populate the array with real values from the getpeername system
- call. The variables addr_structs and phycisal_size are
- modified. */
- if (ACE_OS::getpeername (this->get_handle (),
- ACE_reinterpret_cast (sockaddr *,
- addr_structs.get()),
- &physical_size) == -1)
- return -1;
-
- /* Calculate the NEW physical size of the array */
- size = physical_size / sizeof (sockaddr_in);
-
- /* Copy each sockaddr_in to the address structure of an ACE_Addr from
- the passed-in array */
- for (size_t i = 0; i < size; ++i) {
-
- addrs[i].set_addr(&(addr_structs[i]), sizeof(sockaddr_in));
- addrs[i].set_type(addr_structs[i].sin_family);
- addrs[i].set_size(sizeof(sockaddr_in));
- }
-
- return 0;
-}