summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2009-08-03 11:29:17 +0000
committerDaniel Stenberg <daniel@haxx.se>2009-08-03 11:29:17 +0000
commitd0a8c3b68bcea7c790bcb7c338aea0411def3fba (patch)
tree110cbf753d0e92604e9fcdf6b707938b41e7440d
parent8ddea4e287d89c677e0c78127515768c4c25eab1 (diff)
downloadc-ares-d0a8c3b68bcea7c790bcb7c338aea0411def3fba.tar.gz
c-ares-d0a8c3b68bcea7c790bcb7c338aea0411def3fba.tar.bz2
c-ares-d0a8c3b68bcea7c790bcb7c338aea0411def3fba.zip
- Joshua Kwan fixed the init routine to fill in the defaults for stuff that
fails to get inited by other means. This fixes a case of when the c-ares init fails when internet access is fone.
-rw-r--r--CHANGES5
-rw-r--r--RELEASE-NOTES3
-rw-r--r--ares_init.c15
3 files changed, 16 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index e7b3b8d..c61e319 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,10 @@
Changelog for the c-ares project
+* 3 Aug 2009 (Daniel Stenberg)
+- Joshua Kwan fixed the init routine to fill in the defaults for stuff that
+ fails to get inited by other means. This fixes a case of when the c-ares
+ init fails when internet access is fone.
+
* 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 c1e23d6..c144d1c 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -16,9 +16,10 @@ Fixed:
ARES_EBADNAME if the name in the response failed to decode
o only expose/export symbols starting with 'ares_'
o fix \Device\TCP handle leaks triggered by buggy iphlpapi.dll
+ o init without internet gone no longer fails
Thanks go to these friendly people for their efforts and contributions:
- Phil Blundell, Japheth Cleaver, Yang Tse, Gregor Jasny
+ Phil Blundell, Japheth Cleaver, Yang Tse, Gregor Jasny, Joshua Kwan
Have fun!
diff --git a/ares_init.c b/ares_init.c
index bd29fe9..e04cfdd 100644
--- a/ares_init.c
+++ b/ares_init.c
@@ -201,12 +201,15 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options,
DEBUGF(fprintf(stderr, "Error: init_by_resolv_conf failed: %s\n",
ares_strerror(status)));
}
- if (status == ARES_SUCCESS) {
- status = init_by_defaults(channel);
- if (status != ARES_SUCCESS)
- DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
- ares_strerror(status)));
- }
+
+ /*
+ * No matter what failed or succeeded, seed defaults to provide
+ * useful behavior for things that we missed.
+ */
+ status = init_by_defaults(channel);
+ if (status != ARES_SUCCESS)
+ DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
+ ares_strerror(status)));
/* Generate random key */