.B integer
seconds must have passed since the last successful bind. In a
replicated environment with frequent bind activity it may be
-useful to set this to a large value.
+useful to set this to a large value. On a backend, if set to
+.B 0
+(the default), the value set on the frontend is used.
.TP
.B olcLimits: <selector> <limit> [<limit> [...]]
Specify time and size limits based on the operation's initiator or
.B integer
seconds must have passed since the last successful bind. In a
replicated environment with frequent bind activity it may be
-useful to set this to a large value.
+useful to set this to a large value. On a backend, if set to
+.B 0
+(the default), the value set on the frontend is used.
.TP
.B limits <selector> <limit> [<limit> [...]]
Specify time and size limits based on the operation's initiator or
if ( (a = attr_find( e->e_attrs, slap_schema.si_ad_pwdLastSuccess )) != NULL ) {
struct lutil_tm tm;
struct lutil_timet tt;
+ unsigned int precision = op->o_bd->be_lastbind_precision;
+
+ if ( precision == 0 ) {
+ precision = frontendDB->be_lastbind_precision;
+ }
if ( lutil_parsetime( a->a_nvals[0].bv_val, &tm ) == 0 ) {
lutil_tm2time( &tm, &tt );
* TODO: If the recorded bind time is within configurable precision,
* it doesn't need to be updated (save a write for nothing)
*/
- if ( bindtime != (time_t)-1 &&
- op->o_time <= bindtime + op->o_bd->be_lastbind_precision ) {
+ if ( bindtime != (time_t)-1 && op->o_time <= bindtime + precision ) {
be_entry_release_r( op, e );
return LDAP_SUCCESS;
}