From 5b016dbab852cd443c8f9049acb94a113de227e1 Mon Sep 17 00:00:00 2001 From: Björn Jacke Date: Tue, 7 Sep 2010 02:15:09 +0200 Subject: s3/libads: use monotonic clock for ldap connection timeouts --- source3/include/ads.h | 2 +- source3/libads/ldap.c | 2 +- source3/libads/ldap_utils.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'source3') diff --git a/source3/include/ads.h b/source3/include/ads.h index b45d53de07..6ef5455766 100644 --- a/source3/include/ads.h +++ b/source3/include/ads.h @@ -65,7 +65,7 @@ typedef struct ads_struct { struct { LDAP *ld; struct sockaddr_storage ss; /* the ip of the active connection, if any */ - time_t last_attempt; /* last attempt to reconnect */ + time_t last_attempt; /* last attempt to reconnect, monotonic clock */ int port; enum ads_saslwrap_type wrap_type; diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 77ab51ee26..970f20a8d9 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -596,7 +596,7 @@ ADS_STATUS ads_connect(ADS_STRUCT *ads) char addr[INET6_ADDRSTRLEN]; ZERO_STRUCT(ads->ldap); - ads->ldap.last_attempt = time(NULL); + ads->ldap.last_attempt = time_mono(NULL); ads->ldap.wrap_type = ADS_SASLWRAP_TYPE_PLAIN; /* try with a user specified server */ diff --git a/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c index c0c1adba30..0c07961153 100644 --- a/source3/libads/ldap_utils.c +++ b/source3/libads/ldap_utils.c @@ -40,7 +40,7 @@ static ADS_STATUS ads_do_search_retry_internal(ADS_STRUCT *ads, const char *bind *res = NULL; if (!ads->ldap.ld && - time(NULL) - ads->ldap.last_attempt < ADS_RECONNECT_TIME) { + time_mono(NULL) - ads->ldap.last_attempt < ADS_RECONNECT_TIME) { return ADS_ERROR(LDAP_SERVER_DOWN); } -- cgit