#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(). |
1.3.6