From 408df8efcdc7d724e3c94c2ae14b9b35372f95c4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 3 Aug 2009 11:51:06 +0000 Subject: [PATCH] - Timo Teras changed the reason code used in the resolve callback done when ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to better allow the callback to know what's happening. --- CHANGES | 4 ++++ RELEASE-NOTES | 4 +++- ares.h | 1 + ares_cancel.3 | 7 ++++++- ares_cancel.c | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index c61e3192..888b7ae5 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,10 @@ fails to get inited by other means. This fixes a case of when the c-ares init fails when internet access is fone. +- Timo Teras changed the reason code used in the resolve callback done when + ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to + better allow the callback to know what's happening. + * 14 Jul 2009 (Guenter Knauf) - renamed generated config.h to ares_config.h to avoid any future clashes with config.h from other projects. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index c144d1c7..cfd4a95e 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -9,6 +9,7 @@ Changed: o a build-time configured ares_socklen_t is now used instead of socklen_t o new ares_library_init() and ares_library_cleanup() functions o new --enable-curldebug configure option + o ARES_ECANCELLED is now sent as reason for ares_cancel() Fixed: @@ -20,6 +21,7 @@ Fixed: Thanks go to these friendly people for their efforts and contributions: - Phil Blundell, Japheth Cleaver, Yang Tse, Gregor Jasny, Joshua Kwan + Phil Blundell, Japheth Cleaver, Yang Tse, Gregor Jasny, Joshua Kwan, + Timo Teras Have fun! diff --git a/ares.h b/ares.h index 386c0cae..f64e862b 100644 --- a/ares.h +++ b/ares.h @@ -86,6 +86,7 @@ extern "C" { #define ARES_ENOMEM 15 #define ARES_EDESTRUCTION 16 #define ARES_EBADSTR 17 +#define ARES_ECANCELLED 21 /* ares_getnameinfo error codes */ #define ARES_EBADFLAGS 18 diff --git a/ares_cancel.3 b/ares_cancel.3 index 875f0f43..fc1e983e 100644 --- a/ares_cancel.3 +++ b/ares_cancel.3 @@ -27,7 +27,7 @@ ares_cancel \- Cancel a resolve The \fBares_cancel\fP function cancels all lookups/requests made on the the name service channel identified by \fIchannel\fP. \fBares_cancel\fP invokes the callbacks for each pending query on the channel, passing a status of -.BR ARES_ETIMEOUT . +.BR ARES_ECANCELLED . These calls give the callbacks a chance to clean up any state which might have been stored in their arguments. .SH SEE ALSO @@ -35,5 +35,10 @@ might have been stored in their arguments. .BR ares_destroy (3) .SH NOTES This function was added in c-ares 1.2.0 + +c-ares 1.6.0 and earlier pass a status of +.BR ARES_ETIMEOUT +instead of +.BR ARES_ECANCELLED . .SH AUTHOR Dirk Manske diff --git a/ares_cancel.c b/ares_cancel.c index 982ebc19..63b1514e 100644 --- a/ares_cancel.c +++ b/ares_cancel.c @@ -36,7 +36,7 @@ void ares_cancel(ares_channel channel) { query = list_node->data; list_node = list_node->next; /* since we're deleting the query */ - query->callback(query->arg, ARES_ETIMEOUT, 0, NULL, 0); + query->callback(query->arg, ARES_ECANCELLED, 0, NULL, 0); ares__free_query(query); } #ifndef NDEBUG