build: move platform stuff to ares_platform.c and ares_platform.h

This commit is contained in:
Yang Tse 2011-03-24 11:31:50 +01:00
parent bd066ab8ef
commit 5b6a188909
9 changed files with 110 additions and 53 deletions

View File

@ -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 \

View File

@ -42,6 +42,7 @@
#include "ares.h"
#include "inet_net_pton.h"
#include "ares_platform.h"
#include "ares_private.h"
#ifdef WATT32

View File

@ -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

View File

@ -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

61
ares_platform.c Normal file
View File

@ -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

36
ares_platform.h Normal file
View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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 */