ares_inet_ntop.3: s/socklen_t/ares_socklen_t
[platform/upstream/c-ares.git] / windows_port.c
index e80d00d..03acd1c 100644 (file)
-#include "setup.h"
+#include "ares_setup.h"
+
 
 /* only do the following on windows
  */
 #if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS)
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <errno.h>
-#include <malloc.h>
-
-#ifdef WATT32
-#include <sys/socket.h>
-#else
-#include "nameser.h"
-#endif
-#include "ares.h"
-#include "ares_private.h"
-
-#ifndef __MINGW32__
-int
-ares_strncasecmp(const char *a, const char *b, int n)
-{
-    int i;
-
-    for (i = 0; i < n; i++) {
-        int c1 = isupper(a[i]) ? tolower(a[i]) : a[i];
-        int c2 = isupper(b[i]) ? tolower(b[i]) : b[i];
-        if (c1 != c2) return c1-c2;
-    }
-    return 0;
-}
-
-int
-ares_strcasecmp(const char *a, const char *b)
-{
-    return strncasecmp(a, b, strlen(a)+1);
-}
-#endif
 
+#ifdef __WATCOMC__
 /*
- * Number of micro-seconds between the beginning of the Windows epoch
- * (Jan. 1, 1601) and the Unix epoch (Jan. 1, 1970).
+ * Watcom needs a DllMain() in order to initialise the clib startup code.
  */
-#if defined(_MSC_VER) || defined(__WATCOMC__)
-#define EPOCH_FILETIME 11644473600000000Ui64
-#else
-#define EPOCH_FILETIME 11644473600000000ULL
-#endif
-
-int
-ares_gettimeofday(struct timeval *tv, struct timezone *tz)
+BOOL
+WINAPI DllMain (HINSTANCE hnd, DWORD reason, LPVOID reserved)
 {
-    FILETIME        ft;
-    LARGE_INTEGER   li;
-    __int64         t;
-
-    if (tv)
-    {
-        GetSystemTimeAsFileTime(&ft);
-        li.LowPart  = ft.dwLowDateTime;
-        li.HighPart = ft.dwHighDateTime;
-        t  = li.QuadPart / 10;   /* In micro-second intervals */
-        t -= EPOCH_FILETIME;     /* Offset to the Epoch time */
-        tv->tv_sec  = (long)(t / 1000000);
-        tv->tv_usec = (long)(t % 1000000);
-    }
-    (void) tz;
-    return 0;
+  (void) hnd;
+  (void) reason;
+  (void) reserved;
+  return (TRUE);
 }
+#endif
 
-int
-ares_writev (ares_socket_t s, const struct iovec *vector, size_t count)
-{
-  char *buffer, *bp;
-  size_t i, bytes = 0;
-
-  /* Find the total number of bytes to write
-   */
-  for (i = 0; i < count; i++)
-      bytes += vector[i].iov_len;
-
-  if (bytes == 0)   /* not an error */
-     return (0);
-
-  /* Allocate a temporary buffer to hold the data
-   */
-  buffer = bp = (char*) alloca (bytes);
-  if (!buffer)
-  {
-    errno = ENOMEM;
-    return (-1);
-  }
-
-  /* Copy the data into buffer.
-   */
-  for (i = 0; i < count; ++i)
-  {
-    memcpy (bp, vector[i].iov_base, vector[i].iov_len);
-    bp += vector[i].iov_len;
-  }
-  return send (s, (const void*)buffer, bytes, 0);
-}
 #endif /* WIN32 builds only */