diff options
Diffstat (limited to 'dep/ACE_wrappers/ace/SOCK.cpp')
-rw-r--r-- | dep/ACE_wrappers/ace/SOCK.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/SOCK.cpp b/dep/ACE_wrappers/ace/SOCK.cpp index 0890e7ae73b..555e5876873 100644 --- a/dep/ACE_wrappers/ace/SOCK.cpp +++ b/dep/ACE_wrappers/ace/SOCK.cpp @@ -1,12 +1,18 @@ // $Id: SOCK.cpp 80826 2008-03-04 14:51:23Z wotte $ + #include "ace/SOCK.h" #include "ace/Log_Msg.h" + #if !defined (__ACE_INLINE__) #include "ace/SOCK.inl" #endif /* __ACE_INLINE__ */ + ACE_RCSID(ace, SOCK, "$Id: SOCK.cpp 80826 2008-03-04 14:51:23Z wotte $") + ACE_BEGIN_VERSIONED_NAMESPACE_DECL + ACE_ALLOC_HOOK_DEFINE(ACE_SOCK) + void ACE_SOCK::dump (void) const { @@ -14,46 +20,59 @@ ACE_SOCK::dump (void) const ACE_TRACE ("ACE_SOCK::dump"); #endif /* ACE_HAS_DUMP */ } + ACE_SOCK::ACE_SOCK (void) { // ACE_TRACE ("ACE_SOCK::ACE_SOCK"); } + // Returns information about the remote peer endpoint (if there is // one). + int ACE_SOCK::get_remote_addr (ACE_Addr &sa) const { ACE_TRACE ("ACE_SOCK::get_remote_addr"); + int len = sa.get_size (); sockaddr *addr = reinterpret_cast<sockaddr *> (sa.get_addr ()); + if (ACE_OS::getpeername (this->get_handle (), addr, &len) == -1) return -1; + sa.set_size (len); sa.set_type (addr->sa_family); return 0; } + int ACE_SOCK::get_local_addr (ACE_Addr &sa) const { ACE_TRACE ("ACE_SOCK::get_local_addr"); + int len = sa.get_size (); sockaddr *addr = reinterpret_cast<sockaddr *> (sa.get_addr ()); + if (ACE_OS::getsockname (this->get_handle (), addr, &len) == -1) return -1; + sa.set_type (addr->sa_family); sa.set_size (len); return 0; } + // Close down a ACE_SOCK. + int ACE_SOCK::close (void) { ACE_TRACE ("ACE_SOCK::close"); int result = 0; + if (this->get_handle () != ACE_INVALID_HANDLE) { result = ACE_OS::closesocket (this->get_handle ()); @@ -61,6 +80,7 @@ ACE_SOCK::close (void) } return result; } + int ACE_SOCK::open (int type, int protocol_family, @@ -69,9 +89,11 @@ ACE_SOCK::open (int type, { ACE_TRACE ("ACE_SOCK::open"); int one = 1; + this->set_handle (ACE_OS::socket (protocol_family, type, protocol)); + if (this->get_handle () == ACE_INVALID_HANDLE) return -1; else if (protocol_family != PF_UNIX @@ -86,8 +108,10 @@ ACE_SOCK::open (int type, } return 0; } + // General purpose constructor for performing server ACE_SOCK // creation. + ACE_SOCK::ACE_SOCK (int type, int protocol_family, int protocol, @@ -102,6 +126,7 @@ ACE_SOCK::ACE_SOCK (int type, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_SOCK::ACE_SOCK"))); } + int ACE_SOCK::open (int type, int protocol_family, @@ -112,6 +137,7 @@ ACE_SOCK::open (int type, int reuse_addr) { ACE_TRACE ("ACE_SOCK::open"); + this->set_handle (ACE_OS::socket (protocol_family, type, protocol, @@ -119,6 +145,7 @@ ACE_SOCK::open (int type, g, flags)); int one = 1; + if (this->get_handle () == ACE_INVALID_HANDLE) return -1; else if (reuse_addr @@ -133,6 +160,7 @@ ACE_SOCK::open (int type, else return 0; } + ACE_SOCK::ACE_SOCK (int type, int protocol_family, int protocol, @@ -153,5 +181,6 @@ ACE_SOCK::ACE_SOCK (int type, ACE_TEXT ("%p\n"), ACE_TEXT ("ACE_SOCK::ACE_SOCK"))); } + ACE_END_VERSIONED_NAMESPACE_DECL |