From: Yang Tse Date: Mon, 18 May 2009 15:49:32 +0000 (+0000) Subject: Remove run-time requirement for advapi32.dll since X-Git-Tag: upstream/7.37.1~6203 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f96204dbe08d5800453d54aec4dc282f1301f834;p=platform%2Fupstream%2Fcurl.git Remove run-time requirement for advapi32.dll since c-ares can work even with no advapi32.dll at all. --- diff --git a/ares/ares.h b/ares/ares.h index 6db8b96..9f4413f 100644 --- a/ares/ares.h +++ b/ares/ares.h @@ -96,8 +96,7 @@ extern "C" { /* ares_library_init error codes */ #define ARES_ELOADIPHLPAPI 21 -#define ARES_ELOADADVAPI32 22 -#define ARES_EADDRGetNetworkParams 23 +#define ARES_EADDRGetNetworkParams 22 /* Flag values */ #define ARES_FLAG_USEVC (1 << 0) diff --git a/ares/ares_library_init.c b/ares/ares_library_init.c index ee3fe68..b3e8dc9 100644 --- a/ares/ares_library_init.c +++ b/ares/ares_library_init.c @@ -41,23 +41,20 @@ static int ares_win32_init(void) return ARES_EADDRGetNetworkParams; } + /* + * When advapi32.dll is unavailable or advapi32.dll has no SystemFunction036, + * also known as RtlGenRandom, which is the case for Windows versions prior + * to WinXP then c-ares uses portable rand() function. Then don't error here. + */ + hnd_advapi32 = 0; hnd_advapi32 = LoadLibrary("advapi32.dll"); - if (!hnd_advapi32) + if (hnd_advapi32) { - FreeLibrary(hnd_iphlpapi); - return ARES_ELOADADVAPI32; + fpSystemFunction036 = (fpSystemFunction036_t) + GetProcAddress(hnd_advapi32, "SystemFunction036"); } - fpSystemFunction036 = (fpSystemFunction036_t) - GetProcAddress(hnd_advapi32, "SystemFunction036"); - - /* - * 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. - */ - #endif return ARES_SUCCESS; } diff --git a/ares/ares_strerror.c b/ares/ares_strerror.c index 6ded90d..6d291ee 100644 --- a/ares/ares_strerror.c +++ b/ares/ares_strerror.c @@ -45,7 +45,6 @@ const char *ares_strerror(int code) "Given hostname is not numeric", "Illegal hints flags specified", "Error loading iphlpapi.dll", - "Error loading advapi32.dll", "Could not find GetNetworkParams function" };