diff options
Diffstat (limited to 'source3/libads/ldap.c')
-rw-r--r-- | source3/libads/ldap.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c index 8c37a90e73..494bd930e4 100644 --- a/source3/libads/ldap.c +++ b/source3/libads/ldap.c @@ -75,20 +75,24 @@ static int ldap_search_with_timeout(LDAP *ld, int attrsonly, LDAPControl **sctrls, LDAPControl **cctrls, - struct timeval *timeout, int sizelimit, LDAPMessage **res ) { + struct timeval timeout; int result; - /* Setup timeout */ + /* Setup timeout for the ldap_search_ext_s call - local and remote. */ + timeout.tv_sec = lp_ldap_timeout(); + timeout.tv_usec = 0; + + /* Setup alarm timeout.... Do we need both of these ? JRA. */ gotalarm = 0; CatchSignal(SIGALRM, SIGNAL_CAST gotalarm_sig); alarm(lp_ldap_timeout()); /* End setup timeout. */ result = ldap_search_ext_s(ld, base, scope, filter, attrs, - attrsonly, sctrls, cctrls, timeout, + attrsonly, sctrls, cctrls, &timeout, sizelimit, res); /* Teardown timeout. */ @@ -504,14 +508,14 @@ ADS_STATUS ads_do_paged_search(ADS_STRUCT *ads, const char *bind_path, rc = ldap_search_with_timeout(ads->ld, utf8_path, scope, utf8_expr, search_attrs, 0, controls, - NULL, NULL, LDAP_NO_LIMIT, + NULL, LDAP_NO_LIMIT, (LDAPMessage **)res); ber_free(cookie_be, 1); ber_bvfree(cookie_bv); if (rc) { - DEBUG(3,("ldap_search_with_timeout(%s) -> %s\n", expr, + DEBUG(3,("ads_do_paged_search: ldap_search_with_timeout(%s) -> %s\n", expr, ldap_err2string(rc))); goto done; } @@ -655,7 +659,6 @@ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, const char *expr, const char **attrs, void **res) { - struct timeval timeout; int rc; char *utf8_expr, *utf8_path, **search_attrs = NULL; TALLOC_CTX *ctx; @@ -689,15 +692,12 @@ ADS_STATUS ads_do_search(ADS_STRUCT *ads, const char *bind_path, int scope, } } - timeout.tv_sec = ADS_SEARCH_TIMEOUT; - timeout.tv_usec = 0; - /* see the note in ads_do_paged_search - we *must* disable referrals */ ldap_set_option(ads->ld, LDAP_OPT_REFERRALS, LDAP_OPT_OFF); rc = ldap_search_with_timeout(ads->ld, utf8_path, scope, utf8_expr, search_attrs, 0, NULL, NULL, - &timeout, LDAP_NO_LIMIT, + LDAP_NO_LIMIT, (LDAPMessage **)res); if (rc == LDAP_SIZELIMIT_EXCEEDED) { |