Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
authorDaniel Stenberg <daniel@haxx.se>
Fri, 28 Sep 2007 21:48:28 +0000 (21:48 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 28 Sep 2007 21:48:28 +0000 (21:48 +0000)
notifier callback(s).

CHANGES
RELEASE-NOTES
lib/hostasyn.c
lib/hostip.h

diff --git a/CHANGES b/CHANGES
index 7d3c93a..fb3646b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
 
                                   Changelog
 
+Daniel S (28 September 2007)
+- Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
+  notifier callback(s).
+
 Dan F (26 September 2007)
 - Enabled a few more gcc warnings with --enable-debug.  Renamed a few
   variables to avoid shadowing global declarations.
index c5041ee..c6e666d 100644 (file)
@@ -15,6 +15,7 @@ This release includes the following changes:
  o improved NSS support
  o added --proxy-negotiate
  o added --post301 and CURLOPT_POST301
+ o builds with c-ares 1.5.0
 
 This release includes the following bugfixes:
 
index 792ef9a..b7fff89 100644 (file)
@@ -151,19 +151,31 @@ static CURLcode addrinfo_callback(void *arg, /* "struct connectdata *" */
 
 CURLcode Curl_addrinfo4_callback(void *arg, /* "struct connectdata *" */
                                  int status,
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+                                 int timeouts,
+#endif
                                  struct hostent *hostent)
 {
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+  (void)timeouts; /* ignored */
+#endif
   return addrinfo_callback(arg, status, hostent);
 }
 
 #ifdef CURLRES_IPV6
 CURLcode Curl_addrinfo6_callback(void *arg, /* "struct connectdata *" */
                                  int status,
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+                                 int timeouts,
+#endif
                                  struct addrinfo *ai)
 {
  /* NOTE: for CURLRES_ARES, the 'ai' argument is really a
   * 'struct hostent' pointer.
   */
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+  (void)timeouts; /* ignored */
+#endif
   return addrinfo_callback(arg, status, ai);
 }
 #endif
index 199c666..53093c1 100644 (file)
@@ -7,7 +7,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
  */
 
 #ifdef USE_ARES
+#include <ares_version.h>
+#endif
+
+#ifdef USE_ARES
 #define CURLRES_ASYNCH
 #define CURLRES_ARES
 #endif
 
 #ifdef CURLRES_ARES
 #define CURL_ASYNC_SUCCESS ARES_SUCCESS
+#if ARES_VERSION >= 0x010500
+/* c-ares 1.5.0 or later, the callback proto is modified */
+#define HAVE_CARES_CALLBACK_TIMEOUTS 1
+#endif
 #else
 #define CURL_ASYNC_SUCCESS CURLE_OK
 #define ares_cancel(x) do {} while(0)
@@ -216,11 +224,17 @@ int curl_dogetnameinfo(GETNAMEINFO_QUAL_ARG1 GETNAMEINFO_TYPE_ARG1 sa,
    resolve, ipv4 */
 CURLcode Curl_addrinfo4_callback(void *arg,
                                  int status,
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+                                 int timeouts,
+#endif
                                  struct hostent *hostent);
 /* This is the callback function that is used when we build with asynch
    resolve, ipv6 */
 CURLcode Curl_addrinfo6_callback(void *arg,
                                  int status,
+#ifdef HAVE_CARES_CALLBACK_TIMEOUTS
+                                 int timeouts,
+#endif
                                  struct addrinfo *ai);