summaryrefslogtreecommitdiff
path: root/ares_platform.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2011-03-24 11:31:50 +0100
committerYang Tse <yangsita@gmail.com>2011-03-24 11:31:50 +0100
commit5b6a188909823cc3366e1e1b1812dfd4de919635 (patch)
treed0e41adf92c5f99a27fc2032d878f5be6e3be5df /ares_platform.c
parentbd066ab8efa0d43ef002954f4587a195a15ac460 (diff)
downloadc-ares-5b6a188909823cc3366e1e1b1812dfd4de919635.tar.gz
c-ares-5b6a188909823cc3366e1e1b1812dfd4de919635.tar.bz2
c-ares-5b6a188909823cc3366e1e1b1812dfd4de919635.zip
build: move platform stuff to ares_platform.c and ares_platform.h
Diffstat (limited to 'ares_platform.c')
-rw-r--r--ares_platform.c61
1 files changed, 61 insertions, 0 deletions
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