diff options
Diffstat (limited to 'ace/Sock_Connect.cpp')
-rw-r--r-- | ace/Sock_Connect.cpp | 102 |
1 files changed, 43 insertions, 59 deletions
diff --git a/ace/Sock_Connect.cpp b/ace/Sock_Connect.cpp index 91d6cb5b89b..ba7b8900669 100644 --- a/ace/Sock_Connect.cpp +++ b/ace/Sock_Connect.cpp @@ -7,11 +7,6 @@ #include "ace/Auto_Ptr.h" #include "ace/SString.h" #include "ace/OS_Memory.h" - -#if defined (sparc) && ! defined (CHORUS) -# include "ace/OS_NS_fcntl.h" -#endif // sparc && !CHORUS - #include "ace/OS_NS_stdlib.h" #include "ace/OS_NS_string.h" #include "ace/OS_NS_sys_socket.h" @@ -34,7 +29,6 @@ extern "C" { extern struct in_ifaddr* in_ifaddr; } -#include "ace/OS_NS_stdio.h" #endif /* VXWORKS */ #if defined (ACE_HAS_WINCE) @@ -46,14 +40,8 @@ extern "C" { # include "ace/Object_Manager.h" # endif /* ACE_HAS_THREADS */ -namespace ACE -{ - // private: - // Used internally so not exported. - - /// Does this box have ipv6 turned on? - int ipv6_enabled_ = -1; -} +// Whether or not ipv6 is turned on in this box +int ACE_Sock_Connect::ipv6_enabled_ = -1; #endif /* ACE_HAS_IPV6 */ // This is a hack to work around a problem with Visual Age C++ 5 and 6 on AIX. @@ -69,11 +57,7 @@ namespace ACE static ACE_Auto_Array_Ptr<sockaddr> force_compiler_to_include_socket_h; #endif /* AIX && __IBMCPP__ >= 500 */ - -ACE_RCSID (ace, - Sock_Connect, - "$Id$") - +ACE_RCSID(ace, Sock_Connect, "$Id$") #if defined (ACE_WIN32) && \ (!defined (ACE_HAS_WINSOCK2) \ @@ -273,11 +257,11 @@ get_windows_version() // Bind socket to an unused port. int -ACE::bind_port (ACE_HANDLE handle, - ACE_UINT32 ip_addr, +ACE_Sock_Connect::bind_port (ACE_HANDLE handle, + ACE_UINT32 ip_addr, int address_family) { - ACE_TRACE ("ACE::bind_port"); + ACE_TRACE ("ACE_Sock_Connect::bind_port"); ACE_INET_Addr addr; @@ -343,12 +327,12 @@ ACE::bind_port (ACE_HANDLE handle, } int -ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, +ACE_Sock_Connect::get_bcast_addr (ACE_UINT32 &bcast_addr, const ACE_TCHAR *host_name, ACE_UINT32 host_addr, ACE_HANDLE handle) { - ACE_TRACE ("ACE::get_bcast_addr"); + ACE_TRACE ("ACE_Sock_Connect::get_bcast_addr"); #if !defined(ACE_WIN32) ACE_HANDLE s = handle; @@ -378,7 +362,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, if (ACE_OS::ioctl (s, cmd, (char *) &ifc) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT ("ioctl (get interface configuration)")), -1); @@ -389,7 +373,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, // Get host ip address if necessary. if (host_name) { - hostent *hp = ACE_OS::gethostbyname (ACE_TEXT_ALWAYS_CHAR (host_name)); + hostent *hp = ACE_OS::gethostbyname (host_name); if (hp == 0) return -1; @@ -419,11 +403,11 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, #endif /* ! _UNICOS */ } -#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) +#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) for (int n = ifc.ifc_len / sizeof (struct ifreq) ; n > 0; n--, ifr++) #else - // see mk_broadcast@SOCK_Dgram_Bcast.cpp + // see mk_broadcast@SOCK_Dgram_Bcast.cpp for (int nbytes = ifc.ifc_len; nbytes >= (int) sizeof (struct ifreq) && ((ifr->ifr_addr.sa_len > sizeof (struct sockaddr)) ? (nbytes >= (int) sizeof (ifr->ifr_name) + ifr->ifr_addr.sa_len) : 1); @@ -432,7 +416,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, ifr = (struct ifreq *) ((caddr_t) &ifr->ifr_addr + ifr->ifr_addr.sa_len)) : (nbytes -= sizeof (struct ifreq), ifr++))) -#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */ +#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) */ { struct sockaddr_in if_addr; @@ -448,7 +432,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, { ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT ("Not AF_INET"))); continue; } @@ -460,7 +444,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, { ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT (" ioctl (get interface flags)"))); continue; } @@ -469,7 +453,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, { ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT ("Network interface is not up"))); continue; } @@ -484,7 +468,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, (char *) &if_req) == -1) ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT ("ioctl (get broadaddr)"))); else { @@ -506,7 +490,7 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, else ACE_ERROR ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_bcast_addr:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_bcast_addr:") ACE_LIB_TEXT ("Broadcast is not enable for this interface."))); if (handle == ACE_INVALID_HANDLE) @@ -531,10 +515,10 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, // responsible for calling delete [] on parray int -ACE::get_ip_interfaces (size_t &count, - ACE_INET_Addr *&addrs) +ACE_Sock_Connect::get_ip_interfaces (size_t &count, + ACE_INET_Addr *&addrs) { - ACE_TRACE ("ACE::get_ip_interfaces"); + ACE_TRACE ("ACE_Sock_Connect::get_ip_interfaces"); count = 0; addrs = 0; @@ -732,7 +716,7 @@ ACE::get_ip_interfaces (size_t &count, } if (n_interfaces == 0) { ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("%p\nACE::get_ip_interfaces - "), + ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - "), ACE_LIB_TEXT ("No adapter found.")), -1); } @@ -757,28 +741,28 @@ ACE::get_ip_interfaces (size_t &count, case ERROR_NOT_SUPPORTED: // OS does not support this method ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("%p\nACE::get_ip_interfaces - "), + ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - "), ACE_LIB_TEXT ("This version of WinCE does not support GetAdapterInfo.")), -1); break; case ERROR_NO_DATA: // no adapter installed ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("%p\nACE::get_ip_interfaces - "), + ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - "), ACE_LIB_TEXT ("No network adapter installed.")), -1); break; case ERROR_INVALID_PARAMETER: ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("%p\nACE::get_ip_interfaces - "), + ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - "), ACE_LIB_TEXT ("Invalid parameter.")), -1); break; default: ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("%p\nACE::get_ip_interfaces - "), + ACE_LIB_TEXT ("%p\nACE_Sock_Connect::get_ip_interfaces - "), ACE_LIB_TEXT ("Adapter info access permission denied.")), -1); break; @@ -1026,9 +1010,9 @@ ACE::get_ip_interfaces (size_t &count, if (handle == ACE_INVALID_HANDLE) ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_ip_interfaces:open")), + ACE_LIB_TEXT ("ACE_Sock_Connect::get_ip_interfaces:open")), -1); - if (ACE::count_interfaces (handle, num_ifs)) + if (ACE_Sock_Connect::count_interfaces (handle, num_ifs)) { ACE_OS::close (handle); return -1; @@ -1070,7 +1054,7 @@ ACE::get_ip_interfaces (size_t &count, ACE_OS::close (handle); ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::get_ip_interfaces:") + ACE_LIB_TEXT ("ACE_Sock_Connect::get_ip_interfaces:") ACE_LIB_TEXT ("ioctl - SIOCGIFCONF failed")), -1); } @@ -1128,7 +1112,7 @@ ACE::get_ip_interfaces (size_t &count, #endif /* ! _UNICOS */ } -#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) +#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) pcur++; #else if (pcur->ifr_addr.sa_len <= sizeof (struct sockaddr)) @@ -1140,7 +1124,7 @@ ACE::get_ip_interfaces (size_t &count, pcur = (struct ifreq *) (pcur->ifr_addr.sa_len + (caddr_t) &pcur->ifr_addr); } -#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */ +#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) */ } return 0; #elif defined (VXWORKS) @@ -1202,7 +1186,7 @@ ACE::get_ip_interfaces (size_t &count, // list of ifreq structs. int -ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) +ACE_Sock_Connect::count_interfaces (ACE_HANDLE handle, size_t &how_many) { #if defined (sparc) && defined (SIOCGIFNUM) int tmp_how_many; // For 64 bit Solaris @@ -1211,7 +1195,7 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) (caddr_t) &tmp_how_many) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::count_interfaces:") + ACE_LIB_TEXT ("ACE_Sock_Connect::count_interfaces:") ACE_LIB_TEXT ("ioctl - SIOCGIFNUM failed")), -1); how_many = (size_t) tmp_how_many; @@ -1275,7 +1259,7 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) ACE_OS::free (ifcfg.ifc_req); ACE_ERROR_RETURN ((LM_ERROR, ACE_LIB_TEXT ("%p\n"), - ACE_LIB_TEXT ("ACE::count_interfaces:") + ACE_LIB_TEXT ("ACE_Sock_Connect::count_interfaces:") ACE_LIB_TEXT ("ioctl - SIOCGIFCONF failed")), -1); } @@ -1294,7 +1278,7 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) break; if_count++; -#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) +#if !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) p_ifs++; #else if (p_ifs->ifr_addr.sa_len <= sizeof (struct sockaddr)) @@ -1306,7 +1290,7 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) p_ifs = (struct ifreq *) (p_ifs->ifr_addr.sa_len + (caddr_t) &p_ifs->ifr_addr); } -#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) && !defined(__NetBSD__) */ +#endif /* !defined(CHORUS_4) && !defined(AIX) && !defined (__QNX__) && !defined (__FreeBSD__) */ } ACE_OS::free (ifcfg.ifc_req); @@ -1322,7 +1306,7 @@ ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many) // Routine to return a handle from which ioctl() requests can be made. ACE_HANDLE -ACE::get_handle (void) +ACE_Sock_Connect::get_handle (void) { // Solaris 2.x ACE_HANDLE handle = ACE_INVALID_HANDLE; @@ -1339,33 +1323,33 @@ ACE::get_handle (void) int -ACE::ipv6_enabled (void) +ACE_Sock_Connect::ipv6_enabled (void) { #if defined (ACE_HAS_IPV6) - if (ACE::ipv6_enabled_ == -1) + if (ACE_Sock_Connect::ipv6_enabled_ == -1) { // Perform Double-Checked Locking Optimization. ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, *ACE_Static_Object_Lock::instance (), 0)); - if (ACE::ipv6_enabled_ == -1) + if (ACE_Sock_Connect::ipv6_enabled_ == -1) { // Determine if the kernel has IPv6 support by attempting to // create a PF_INET6 socket and see if it fails. ACE_HANDLE s = ACE_OS::socket (PF_INET6, SOCK_DGRAM, 0); if (s == ACE_INVALID_HANDLE) { - ACE::ipv6_enabled_ = 0; + ACE_Sock_Connect::ipv6_enabled_ = 0; } else { - ACE::ipv6_enabled_ = 1; + ACE_Sock_Connect::ipv6_enabled_ = 1; ACE_OS::closesocket (s); } } } - return ACE::ipv6_enabled_; + return ACE_Sock_Connect::ipv6_enabled_; #else return 0; #endif /* ACE_HAS_IPV6 */ |