#include "ace/Sock_Connect.h"
#include "ace/INET_Addr.h"
#include "ace/Log_Msg.h"
#include "ace/Handle_Set.h"
#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
#include "ace/OS_Memory.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_stdlib.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_sys_socket.h"
#include "ace/OS_NS_netdb.h"
#include "ace/OS_NS_unistd.h"
#include "ace/os_include/net/os_if.h"
#include "ace/Guard_T.h"
#include "ace/Recursive_Thread_Mutex.h"
#include "ace/Object_Manager.h"
Include dependency graph for Sock_Connect.cpp:
Go to the source code of this file.
Enumerations | |
enum | ACE_WINDOWS_VERSION { ACE_WINDOWS_IS_UNKNOWN, ACE_WINDOWS_IS_WIN95, ACE_WINDOWS_IS_WIN98, ACE_WINDOWS_IS_WINME, ACE_WINDOWS_IS_WINNT, ACE_WINDOWS_IS_WIN2K, ACE_WINDOWS_IS_WINCE } |
Functions | |
int | get_reg_subkeys (const ACE_TCHAR *key, ACE_TCHAR *buffer, DWORD &buf_len) |
int | get_reg_value (const ACE_TCHAR *key, const ACE_TCHAR *name, ACE_TCHAR *buffer, DWORD &buf_len, int all_subkeys=0) |
ACE_WINDOWS_VERSION | get_windows_version () |
Variables | |
int | ace_ipv6_enabled = -1 |
Does this box have ipv6 turned on? |
|
Definition at line 225 of file Sock_Connect.cpp. Referenced by ACE::get_ip_interfaces().
00225 { 00226 ACE_WINDOWS_IS_UNKNOWN, 00227 ACE_WINDOWS_IS_WIN95, 00228 ACE_WINDOWS_IS_WIN98, 00229 ACE_WINDOWS_IS_WINME, 00230 ACE_WINDOWS_IS_WINNT, 00231 ACE_WINDOWS_IS_WIN2K, 00232 ACE_WINDOWS_IS_WINCE 00233 }; |
|
Definition at line 89 of file Sock_Connect.cpp. References ACE_MAX_FULLY_QUALIFIED_NAME_LEN, ACE_TCHAR, and ACE_OS::strcpy().
00092 { 00093 HKEY hk; 00094 LONG rc = ACE_TEXT_RegOpenKeyEx (HKEY_LOCAL_MACHINE, 00095 key, 00096 0, 00097 KEY_READ, 00098 &hk); 00099 00100 if (rc != ERROR_SUCCESS) 00101 return -1; 00102 00103 ACE_TCHAR subkeyname[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1]; 00104 DWORD subkeyname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN; 00105 FILETIME update_dummy; 00106 00107 DWORD total = 0; 00108 00109 for (int i = 0; 00110 (rc = ACE_TEXT_RegEnumKeyEx (hk, i, 00111 subkeyname, 00112 &subkeyname_len, 00113 0, 0, 0, 00114 &update_dummy)) != ERROR_NO_MORE_ITEMS; 00115 ++i) 00116 { 00117 if (subkeyname_len < buf_len - total) 00118 { 00119 ACE_OS::strcpy(buffer + total, subkeyname); 00120 total += subkeyname_len + 1; 00121 // Reset: was changed by RegEnumKeyEx call. 00122 subkeyname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1; 00123 } 00124 else 00125 return -1; 00126 } 00127 00128 buf_len = total; 00129 00130 ::RegCloseKey (hk); 00131 return 0; 00132 } |
|
Definition at line 139 of file Sock_Connect.cpp. References ACE_MAX_FULLY_QUALIFIED_NAME_LEN, and ACE_TCHAR. Referenced by ACE::get_ip_interfaces().
00144 { 00145 HKEY hk; 00146 DWORD buf_type; 00147 LONG rc = ACE_TEXT_RegOpenKeyEx (HKEY_LOCAL_MACHINE, 00148 key, 00149 0, 00150 KEY_READ, 00151 &hk); 00152 00153 if (rc != ERROR_SUCCESS) 00154 // print_error_string(ACE_LIB_TEXT ("RegOpenKeyEx"), rc); 00155 return -1; 00156 00157 if (all_subkeys) 00158 { 00159 ACE_TCHAR ifname[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1]; 00160 DWORD ifname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1; 00161 FILETIME update_dummy; 00162 00163 DWORD total = 0; 00164 DWORD size = buf_len; 00165 00166 for (int i = 0; 00167 (rc = ACE_TEXT_RegEnumKeyEx (hk, i, ifname, &ifname_len, 00168 0, 0, 0, 00169 &update_dummy)) != ERROR_NO_MORE_ITEMS; 00170 ++i) 00171 { 00172 HKEY ifkey; 00173 if (rc != ERROR_SUCCESS 00174 || ACE_TEXT_RegOpenKeyEx (hk, ifname, 0, 00175 KEY_READ, &ifkey) != ERROR_SUCCESS) 00176 continue; 00177 00178 if (ACE_TEXT_RegQueryValueEx (ifkey, name, 0, 0, 00179 (u_char*) (buffer + total), 00180 &size) != ERROR_SUCCESS) 00181 { 00182 RegCloseKey(ifkey); 00183 continue; 00184 } 00185 else 00186 { 00187 total += size; 00188 size = buf_len - total; 00189 } 00190 // Needs to be reset. 00191 ifname_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1; 00192 } 00193 00194 if (total == 0) 00195 { 00196 ::RegCloseKey (hk); 00197 return -2; 00198 } 00199 else 00200 { 00201 buf_len = total; 00202 } 00203 } 00204 else 00205 { 00206 00207 rc = ACE_TEXT_RegQueryValueEx (hk, 00208 name, 00209 0, 00210 &buf_type, 00211 (u_char *) buffer, 00212 &buf_len); 00213 if (rc != ERROR_SUCCESS) 00214 { 00215 // print_error_string(ACE_LIB_TEXT ("RegEnumKeyEx"), rc); 00216 RegCloseKey (hk); 00217 return -2; 00218 } 00219 } 00220 00221 ::RegCloseKey (hk); 00222 return 0; 00223 } |
|
Definition at line 236 of file Sock_Connect.cpp. References ACE_WINDOWS_IS_UNKNOWN, ACE_WINDOWS_IS_WIN2K, ACE_WINDOWS_IS_WIN95, ACE_WINDOWS_IS_WIN98, ACE_WINDOWS_IS_WINCE, ACE_WINDOWS_IS_WINME, and ACE_WINDOWS_IS_WINNT. Referenced by ACE::get_ip_interfaces().
00237 { 00238 OSVERSIONINFO vinfo; 00239 vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 00240 if (::GetVersionEx(&vinfo) == 0) 00241 { 00242 return ACE_WINDOWS_IS_UNKNOWN; 00243 } 00244 00245 switch (vinfo.dwPlatformId) 00246 { 00247 case VER_PLATFORM_WIN32_NT: 00248 if (vinfo.dwMajorVersion <= 4) 00249 return ACE_WINDOWS_IS_WINNT; 00250 else 00251 return ACE_WINDOWS_IS_WIN2K; 00252 case VER_PLATFORM_WIN32_WINDOWS: 00253 if (vinfo.dwMajorVersion == 4) 00254 { 00255 if (vinfo.dwMinorVersion == 0) 00256 return ACE_WINDOWS_IS_WIN95; 00257 else if (vinfo.dwMinorVersion == 10) 00258 return ACE_WINDOWS_IS_WIN98; 00259 else if (vinfo.dwMinorVersion == 90) 00260 return ACE_WINDOWS_IS_WINME; 00261 } 00262 #if defined (VER_PLATFORM_WIN32_CE) 00263 case VER_PLATFORM_WIN32_CE: 00264 if (vinfo.dwMajorVersion >= 3) { 00265 return ACE_WINDOWS_IS_WINCE; 00266 } 00267 else { 00268 return ACE_WINDOWS_IS_UNKNOWN; 00269 } 00270 #endif /* VER_PLATFORM_WIN32_CE */ 00271 // If no match we fall throu. 00272 default: 00273 return ACE_WINDOWS_IS_UNKNOWN; 00274 } 00275 } |
|
Does this box have ipv6 turned on?
Definition at line 64 of file Sock_Connect.cpp. Referenced by ACE::ipv6_enabled(). |