From 5b6a188909823cc3366e1e1b1812dfd4de919635 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Thu, 24 Mar 2011 11:31:50 +0100 Subject: [PATCH] build: move platform stuff to ares_platform.c and ares_platform.h --- Makefile.inc | 2 ++ ares_gethostbyaddr.c | 1 + ares_gethostbyname.c | 1 + ares_init.c | 1 + ares_platform.c | 61 +++++++++++++++++++++++++++++++++++++++++++ ares_platform.h | 36 +++++++++++++++++++++++++ ares_private.h | 14 ---------- vc/cares/vc6cares.dsp | 8 ++++++ windows_port.c | 39 --------------------------- 9 files changed, 110 insertions(+), 53 deletions(-) create mode 100644 ares_platform.c create mode 100644 ares_platform.h diff --git a/Makefile.inc b/Makefile.inc index 13dcb07..ab4fc19 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -29,6 +29,7 @@ CSOURCES = ares__close_sockets.c \ ares_parse_ptr_reply.c \ ares_parse_srv_reply.c \ ares_parse_txt_reply.c \ + ares_platform.c \ ares_process.c \ ares_query.c \ ares_search.c \ @@ -53,6 +54,7 @@ HHEADERS = ares.h \ ares_library_init.h \ ares_llist.h \ ares_nowarn.h \ + ares_platform.h \ ares_private.h \ ares_rules.h \ ares_strcasecmp.h \ diff --git a/ares_gethostbyaddr.c b/ares_gethostbyaddr.c index 2945c4b..e5088b7 100644 --- a/ares_gethostbyaddr.c +++ b/ares_gethostbyaddr.c @@ -42,6 +42,7 @@ #include "ares.h" #include "inet_net_pton.h" +#include "ares_platform.h" #include "ares_private.h" #ifdef WATT32 diff --git a/ares_gethostbyname.c b/ares_gethostbyname.c index 6599c08..5339fee 100644 --- a/ares_gethostbyname.c +++ b/ares_gethostbyname.c @@ -48,6 +48,7 @@ #include "ares.h" #include "inet_net_pton.h" #include "bitncmp.h" +#include "ares_platform.h" #include "ares_private.h" #ifdef WATT32 diff --git a/ares_init.c b/ares_init.c index 108238e..afcd8d6 100644 --- a/ares_init.c +++ b/ares_init.c @@ -67,6 +67,7 @@ #include "inet_net_pton.h" #include "ares_library_init.h" #include "ares_nowarn.h" +#include "ares_platform.h" #include "ares_private.h" #ifdef ANDROID diff --git a/ares_platform.c b/ares_platform.c new file mode 100644 index 0000000..0fe2675 --- /dev/null +++ b/ares_platform.c @@ -0,0 +1,61 @@ + + +/* Copyright 1998 by the Massachusetts Institute of Technology. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" +#include "ares_platform.h" + +#if defined(WIN32) && !defined(MSDOS) + +#define V_PLATFORM_WIN32s 0 +#define V_PLATFORM_WIN32_WINDOWS 1 +#define V_PLATFORM_WIN32_NT 2 +#define V_PLATFORM_WIN32_CE 3 + +win_platform getplatform(void) +{ + OSVERSIONINFOEX OsvEx; + + memset(&OsvEx, 0, sizeof(OsvEx)); + OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + if (!GetVersionEx((void *)&OsvEx)) + { + memset(&OsvEx, 0, sizeof(OsvEx)); + OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if (!GetVersionEx((void *)&OsvEx)) + return WIN_UNKNOWN; + } + + switch(OsvEx.dwPlatformId) + { + case V_PLATFORM_WIN32s: + return WIN_3X; + + case V_PLATFORM_WIN32_WINDOWS: + return WIN_9X; + + case V_PLATFORM_WIN32_NT: + return WIN_NT; + + case V_PLATFORM_WIN32_CE: + return WIN_CE; + + default: + return WIN_UNKNOWN; + } +} + +#endif diff --git a/ares_platform.h b/ares_platform.h new file mode 100644 index 0000000..1a23ce9 --- /dev/null +++ b/ares_platform.h @@ -0,0 +1,36 @@ +#ifndef HEADER_CARES_PLATFORM_H +#define HEADER_CARES_PLATFORM_H + + +/* Copyright 1998 by the Massachusetts Institute of Technology. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#if defined(WIN32) && !defined(MSDOS) + +typedef enum { + WIN_UNKNOWN, + WIN_3X, + WIN_9X, + WIN_NT, + WIN_CE +} win_platform; + +extern win_platform getplatform(void); + +#endif + +#endif /* HEADER_CARES_PLATFORM_H */ diff --git a/ares_private.h b/ares_private.h index 78f3a1c..0739ed6 100644 --- a/ares_private.h +++ b/ares_private.h @@ -344,20 +344,6 @@ long ares__tvdiff(struct timeval t1, struct timeval t2); (c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \ } while (0) -#if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS) - -typedef enum { - WIN_UNKNOWN, - WIN_3X, - WIN_9X, - WIN_NT, - WIN_CE -} win_platform; - -win_platform getplatform(void); - -#endif - #ifdef CURLDEBUG /* This is low-level hard-hacking memory leak tracking and similar. Using the libcurl lowlevel code from within library is ugly and only works when diff --git a/vc/cares/vc6cares.dsp b/vc/cares/vc6cares.dsp index dc124ff..575e1db 100644 --- a/vc/cares/vc6cares.dsp +++ b/vc/cares/vc6cares.dsp @@ -270,6 +270,10 @@ SOURCE=..\..\ares_parse_txt_reply.c # End Source File # Begin Source File +SOURCE=..\..\ares_platform.c +# End Source File +# Begin Source File + SOURCE=..\..\ares_process.c # End Source File # Begin Source File @@ -366,6 +370,10 @@ SOURCE=..\..\ares_nowarn.h # End Source File # Begin Source File +SOURCE=..\..\ares_platform.h +# End Source File +# Begin Source File + SOURCE=..\..\ares_private.h # End Source File # Begin Source File diff --git a/windows_port.c b/windows_port.c index 6a48f08..03acd1c 100644 --- a/windows_port.c +++ b/windows_port.c @@ -1,6 +1,5 @@ #include "ares_setup.h" -#include "ares_private.h" /* only do the following on windows */ @@ -20,42 +19,4 @@ WINAPI DllMain (HINSTANCE hnd, DWORD reason, LPVOID reserved) } #endif -#define V_PLATFORM_WIN32s 0 -#define V_PLATFORM_WIN32_WINDOWS 1 -#define V_PLATFORM_WIN32_NT 2 -#define V_PLATFORM_WIN32_CE 3 - -win_platform getplatform(void) -{ - OSVERSIONINFOEX OsvEx; - - memset(&OsvEx, 0, sizeof(OsvEx)); - OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); - if (!GetVersionEx((void *)&OsvEx)) - { - memset(&OsvEx, 0, sizeof(OsvEx)); - OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - if (!GetVersionEx((void *)&OsvEx)) - return WIN_UNKNOWN; - } - - switch(OsvEx.dwPlatformId) - { - case V_PLATFORM_WIN32s: - return WIN_3X; - - case V_PLATFORM_WIN32_WINDOWS: - return WIN_9X; - - case V_PLATFORM_WIN32_NT: - return WIN_NT; - - case V_PLATFORM_WIN32_CE: - return WIN_CE; - - default: - return WIN_UNKNOWN; - } -} - #endif /* WIN32 builds only */