donn@u.washington.edu wrote:
Full_Name: Donn Cave Version: 2.4.4 OS: Red Hat RHEL 3 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (128.95.135.150)
Appears to me that unless timelimit value passed to ldap_search_ext() is positive, the ld_timelimit from .ldaprc overrides, so there's no way for syncrepl ldap_sync_search() to literally specify "unlimited".
To duplicate: configure syncrepl timelimit=unlimited; edit /.ldaprc -> "TIMELIMIT 23"; start replica slapd with a sufficiently large replication backlog; observe timeout at 23 seconds.
To kludge: use extravagantly large value instead: if (si->si_tlimit > 0) timeout.tv_sec = si->tlimit; else timeout.tv_sec = 31536000;
and pass &timeout unconditionally.
Hmmm. I guess this is a consequence of changing the timeout representation in the LDAP handle. I suppose we can just make the syncrepl consumer do an explicit ldap_set_option() on its session handles to override any .ldaprc setting. Will have to play with this a bit to see how we can maintain backward compatibility.