diff options
author | Yang Tse <yangsita@gmail.com> | 2007-02-02 16:01:55 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2007-02-02 16:01:55 +0000 |
commit | 6f872e206a9f4f0c71d07f4320e01284079b1f78 (patch) | |
tree | 396472a87bd6e06e207f85ec9e30383ad602354a | |
parent | 94f2d923fca94acf83e4b67154572147ac102188 (diff) | |
download | c-ares-6f872e206a9f4f0c71d07f4320e01284079b1f78.tar.gz c-ares-6f872e206a9f4f0c71d07f4320e01284079b1f78.tar.bz2 c-ares-6f872e206a9f4f0c71d07f4320e01284079b1f78.zip |
add debug messages for initialization failures
-rw-r--r-- | ares_init.c | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/ares_init.c b/ares_init.c index e837190..1fd43f4 100644 --- a/ares_init.c +++ b/ares_init.c @@ -91,7 +91,8 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, int optmask) { ares_channel channel; - int i, status; + int i; + int status = ARES_SUCCESS; struct server_state *server; struct timeval tv; @@ -106,8 +107,10 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, #endif channel = malloc(sizeof(struct ares_channeldata)); - if (!channel) + if (!channel) { + *channelptr = NULL; return ARES_ENOMEM; + } /* Set everything to distinguished values so we know they haven't * been set yet. @@ -132,13 +135,31 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options, /* Initialize configuration by each of the four sources, from highest * precedence to lowest. */ + + if (status == ARES_SUCCESS) { status = init_by_options(channel, options, optmask); - if (status == ARES_SUCCESS) + if (status != ARES_SUCCESS) + DEBUGF(fprintf(stderr, "Error: init_by_options failed: %s\n", + ares_strerror(status))); + } + if (status == ARES_SUCCESS) { status = init_by_environment(channel); - if (status == ARES_SUCCESS) + if (status != ARES_SUCCESS) + DEBUGF(fprintf(stderr, "Error: init_by_environment failed: %s\n", + ares_strerror(status))); + } + if (status == ARES_SUCCESS) { status = init_by_resolv_conf(channel); - if (status == ARES_SUCCESS) + if (status != ARES_SUCCESS) + 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))); + } if (status != ARES_SUCCESS) { /* Something failed; clean up memory we may have allocated. */ |