summaryrefslogtreecommitdiff
path: root/ares_init.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2008-05-15 00:00:19 +0000
committerYang Tse <yangsita@gmail.com>2008-05-15 00:00:19 +0000
commita43aec1b56aaba9bbe5ef585aa87c77f6f5cbb8e (patch)
tree4aab9bdfe0a60aceea3f98dd0fbc86e68b4a40a5 /ares_init.c
parent6882b4020e77e637021e4a9ddf08d7d62de885a8 (diff)
downloadc-ares-a43aec1b56aaba9bbe5ef585aa87c77f6f5cbb8e.tar.gz
c-ares-a43aec1b56aaba9bbe5ef585aa87c77f6f5cbb8e.tar.bz2
c-ares-a43aec1b56aaba9bbe5ef585aa87c77f6f5cbb8e.zip
use same time source for timeout initialization and processing
Diffstat (limited to 'ares_init.c')
-rw-r--r--ares_init.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ares_init.c b/ares_init.c
index 2781813..0b96371 100644
--- a/ares_init.c
+++ b/ares_init.c
@@ -108,6 +108,7 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options,
int i;
int status = ARES_SUCCESS;
struct server_state *server;
+ struct timeval now;
#ifdef CURLDEBUG
const char *env = getenv("CARES_MEMDEBUG");
@@ -125,6 +126,8 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options,
return ARES_ENOMEM;
}
+ now = ares__tvnow();
+
/* Set everything to distinguished values so we know they haven't
* been set yet.
*/
@@ -147,7 +150,7 @@ int ares_init_options(ares_channel *channelptr, struct ares_options *options,
channel->sock_state_cb = NULL;
channel->sock_state_cb_data = NULL;
- channel->last_timeout_processed = (long)time(NULL);
+ channel->last_timeout_processed = (time_t)now.tv_sec;
/* Initialize our lists of queries */
ares__init_list_head(&(channel->all_queries));