limit, an "Unwilling to perform" is returned.
If the
.BR hard
-limit is set to zero, the soft limit is used in either case;
-if it is set to -1, no hard limit is enforced.
+limit is set to 0 or to the keyword "soft", the soft limit is used
+in either case; if it is set to -1 or to the keyword "none",
+no hard limit is enforced.
Explicit requests for time limits smaller or equal to the
.BR hard
limit are honored.
limit, an "Unwilling to perform" is returned.
If the
.BR hard
-limit is set to zero, the soft limit is used in either case;
-if it is set to -1, no hard limit is enforced.
+limit is set to 0 or to the keyword "soft", the soft limit is used
+in either case; if it is set to -1 or to the keyword "none",
+no hard limit is enforced.
Explicit requests for size limits smaller or equal to the
.BR hard
limit are honored.
If the selected candidates exceed the
.BR unchecked
limit, the search will abort with "Unwilling to perform".
+If it is set to -1 or to the keyword "none", no limit is applied (the default).
If no flag is set, the value is assigned to the
.BR soft
limit, and the
break;
case SLAP_LIMITS_REGEX:
- if ( regexec( &lm[0]->lm_dn_regex, ndn, 0, NULL, 0) == 0 ) {
+ if ( regexec( &lm[0]->lm_dn_regex, ndn, 0, NULL, 0 ) == 0 ) {
*limit = &lm[0]->lm_limits;
return( 0 );
}
return( 1 );
}
arg++;
- limit->lms_t_hard = atoi( arg );
+ if ( strcasecmp( arg, "soft" ) == 0 ) {
+ limit->lms_t_hard = 0;
+ } else if ( strcasecmp( arg, "none" ) == 0 ) {
+ limit->lms_t_hard = -1;
+ } else {
+ limit->lms_t_hard = atoi( arg );
+ }
} else {
return( 1 );
return( 1 );
}
arg++;
- limit->lms_s_hard = atoi( arg );
+ if ( strcasecmp( arg, "soft" ) == 0 ) {
+ limit->lms_s_hard = 0;
+ } else if ( strcasecmp( arg, "none" ) == 0 ) {
+ limit->lms_s_hard = -1;
+ } else {
+ limit->lms_s_hard = atoi( arg );
+ }
} else if ( strncasecmp( arg, "unchecked", 9 ) == 0 ) {
arg += 9;
return( 1 );
}
arg++;
- limit->lms_s_unchecked = atoi( arg );
+ if ( strcasecmp( arg, "none" ) == 0 ) {
+ limit->lms_s_unchecked = -1;
+ } else {
+ limit->lms_s_unchecked = atoi( arg );
+ }
} else {
return( 1 );