Intentionally avoid checking if the address of SystemFunction036, a.k.a.

RtlGenRandom, has been located or not. This function is only available on
WinXP and later. When unavailable c-ares uses portable rand() function.
pull/1/head curl-7_19_5
Yang Tse 16 years ago
parent 5b17412c1f
commit b677ff3d15
  1. 1
      ares.h
  2. 12
      ares_library_init.c
  3. 3
      ares_strerror.c

@ -98,7 +98,6 @@ extern "C" {
#define ARES_ELOADIPHLPAPI 21 #define ARES_ELOADIPHLPAPI 21
#define ARES_ELOADADVAPI32 22 #define ARES_ELOADADVAPI32 22
#define ARES_EADDRGetNetworkParams 23 #define ARES_EADDRGetNetworkParams 23
#define ARES_EADDRSYSTEMFUNCTION036 24
/* Flag values */ /* Flag values */
#define ARES_FLAG_USEVC (1 << 0) #define ARES_FLAG_USEVC (1 << 0)

@ -51,12 +51,12 @@ static int ares_win32_init(void)
fpSystemFunction036 = (fpSystemFunction036_t) fpSystemFunction036 = (fpSystemFunction036_t)
GetProcAddress(hnd_advapi32, "SystemFunction036"); GetProcAddress(hnd_advapi32, "SystemFunction036");
if (!fpSystemFunction036)
{ /*
FreeLibrary(hnd_advapi32); * Intentionally avoid checking if the address of SystemFunction036, a.k.a.
FreeLibrary(hnd_iphlpapi); * RtlGenRandom, has been located or not. This function is only available on
return ARES_EADDRSYSTEMFUNCTION036; * WinXP and later. When unavailable c-ares uses portable rand() function.
} */
#endif #endif
return ARES_SUCCESS; return ARES_SUCCESS;

@ -46,8 +46,7 @@ const char *ares_strerror(int code)
"Illegal hints flags specified", "Illegal hints flags specified",
"Error loading iphlpapi.dll", "Error loading iphlpapi.dll",
"Error loading advapi32.dll", "Error loading advapi32.dll",
"Unknown GetNetworkParams function address", "Could not find GetNetworkParams function"
"Unknown SystemFunction036 function address"
}; };
if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext))) if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext)))

Loading…
Cancel
Save