Brad House fixed VS2005 compiler warnings due to time_t being 64bit.
authorDaniel Stenberg <daniel@haxx.se>
Sat, 2 Jun 2007 19:48:29 +0000 (19:48 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 2 Jun 2007 19:48:29 +0000 (19:48 +0000)
He also made recent Microsoft compilers use _strdup() instead of strdup().

CHANGES
ares_process.c
ares_timeout.c
setup.h

diff --git a/CHANGES b/CHANGES
index 3e9f23c..944255e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 * June 2 2007
 
+- Brad House fixed VS2005 compiler warnings due to time_t being 64bit.
+  He also made recent Microsoft compilers use _strdup() instead of strdup().
+
 - Brad House's man pages for ares_save_options() and ares_destroy_options()
   were added.
 
index efc462a..745fe68 100644 (file)
@@ -63,7 +63,7 @@ static void read_udp_packets(ares_channel channel, fd_set *read_fds,
                              ares_socket_t read_fd, time_t now);
 static void process_timeouts(ares_channel channel, time_t now);
 static void process_answer(ares_channel channel, unsigned char *abuf,
-                           int alen, int whichserver, int tcp, int now);
+                           int alen, int whichserver, int tcp, time_t now);
 static void handle_error(ares_channel channel, int whichserver, time_t now);
 static struct query *next_server(ares_channel channel, struct query *query, time_t now);
 static int open_tcp_socket(ares_channel channel, struct server_state *server);
@@ -398,7 +398,7 @@ static void process_timeouts(ares_channel channel, time_t now)
 
 /* Handle an answer from a server. */
 static void process_answer(ares_channel channel, unsigned char *abuf,
-                           int alen, int whichserver, int tcp, int now)
+                           int alen, int whichserver, int tcp, time_t now)
 {
   int id, tc, rcode;
   struct query *query;
index fa5ae01..496db84 100644 (file)
@@ -31,7 +31,8 @@ struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
 {
   struct query *query;
   time_t now;
-  int offset, min_offset;
+  time_t offset, min_offset; /* these use time_t since some 32 bit systems
+                                still use 64 bit time_t! (like VS2005) */
 
   /* No queries, no timeout (and no fetch of the current time). */
   if (!channel->queries)
@@ -57,7 +58,7 @@ struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
    */
   if (min_offset != -1 && (!maxtv || min_offset <= maxtv->tv_sec))
     {
-      tvbuf->tv_sec = min_offset;
+      tvbuf->tv_sec = (long)min_offset;
       tvbuf->tv_usec = 0;
       return tvbuf;
     }
diff --git a/setup.h b/setup.h
index 2106df7..a20b8f1 100644 (file)
--- a/setup.h
+++ b/setup.h
@@ -144,6 +144,11 @@ int ares_strcasecmp(const char *s1, const char *s2);
    same */
 #define strncasecmp(a,b,c) ares_strncasecmp(a,b,c)
 #define strcasecmp(a,b) ares_strcasecmp(a,b)
+#ifdef _MSC_VER
+#  if _MSC_VER >= 1400
+#    define strdup(a) _strdup(a)
+#  endif
+#endif
 #endif
 
 /* IPv6 compatibility */