From 0da10c842e06e98cf94482b654b87ff5991344ae Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 18 May 2012 22:01:14 +1000 Subject: s3-libads: Use a reducing page size to try and cope with a slow LDAP server If we cannot get 1000 users downloaded in 15seconds, try with 500, 250 and then 125 users at a time. Andrew Bartlett Signed-off-by: Jeremy Allison --- source3/libads/ldap_utils.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source3/libads/ldap_utils.c') diff --git a/source3/libads/ldap_utils.c b/source3/libads/ldap_utils.c index 2f1c1b8e0a..8a4b452b87 100644 --- a/source3/libads/ldap_utils.c +++ b/source3/libads/ldap_utils.c @@ -84,6 +84,13 @@ static ADS_STATUS ads_do_search_retry_internal(ADS_STRUCT *ads, const char *bind while (--count) { + if (NT_STATUS_EQUAL(ads_ntstatus(status), NT_STATUS_IO_TIMEOUT) && ads->config.ldap_page_size >= 250) { + int new_page_size = (ads->config.ldap_page_size / 2); + DEBUG(1, ("Reducing LDAP page size from %d to %d due to IO_TIMEOUT\n", + ads->config.ldap_page_size, new_page_size)); + ads->config.ldap_page_size = new_page_size; + } + if (*res) ads_msgfree(ads, *res); *res = NULL; -- cgit