summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2012-01-12 23:13:19 +0100
committerDaniel Stenberg <daniel@haxx.se>2012-01-12 23:13:19 +0100
commit9f20379fe445d0994daa11d022270aea5ab99af6 (patch)
treeae270fbf9f829ef8161697c2239bd6333232faef
parent123c92c904b2f258ae69e211aa2663e80cb5429a (diff)
downloadcurl-9f20379fe445d0994daa11d022270aea5ab99af6.tar.gz
hostip: avoid getaddrinfo when c-ares is used
Some functions using getaddrinfo and gethostbyname were still mistakingly being used/linked even if c-ares was selected as resolver backend. Reported by: Arthur Murray Bug: http://curl.haxx.se/mail/lib-2012-01/0160.html
-rw-r--r--lib/hostip4.c5
-rw-r--r--lib/setup.h3
-rw-r--r--lib/tftp.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/lib/hostip4.c b/lib/hostip4.c
index 1a5e26585..f68618c08 100644
--- a/lib/hostip4.c
+++ b/lib/hostip4.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2012, 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
@@ -119,6 +119,8 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
#endif /* CURLRES_SYNCH */
#endif /* CURLRES_IPV4 */
+#if defined(CURLRES_IPV4) && !defined(CURLRES_ARES)
+
/*
* Curl_ipv4_resolve_r() - ipv4 threadsafe resolver function.
*
@@ -311,3 +313,4 @@ Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname,
return ai;
}
+#endif /* defined(CURLRES_IPV4) && !defined(CURLRES_ARES) */
diff --git a/lib/setup.h b/lib/setup.h
index f6e39d9ee..446c793c0 100644
--- a/lib/setup.h
+++ b/lib/setup.h
@@ -487,6 +487,9 @@
#ifdef USE_ARES
# define CURLRES_ASYNCH
# define CURLRES_ARES
+/* now undef the stock libc functions just to avoid them being used */
+# undef HAVE_GETADDRINFO
+# undef HAVE_GETHOSTBYNAME
#elif defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
# define CURLRES_ASYNCH
# define CURLRES_THREADED
diff --git a/lib/tftp.c b/lib/tftp.c
index 370665a43..85404de8b 100644
--- a/lib/tftp.c
+++ b/lib/tftp.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2012, 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
@@ -727,7 +727,7 @@ static CURLcode tftp_tx(tftp_state_data_t *state, tftp_event_t event)
}
else {
/* Re-send the data packet */
- sbytes = sendto(state->sockfd, (void *)&state->spacket.data,
+ sbytes = sendto(state->sockfd, (void *)state->spacket.data,
4+state->sbytes, SEND_4TH_ARG,
(struct sockaddr *)&state->remote_addr,
state->remote_addrlen);