more intuitive special limits configuration

This commit is contained in:
Pierangelo Masarati 2001-08-03 17:25:39 +00:00
parent 414783058d
commit 4919363fa0
2 changed files with 27 additions and 8 deletions

View file

@ -183,8 +183,9 @@ limit is used; if the requested time limit exceedes the
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.
@ -207,8 +208,9 @@ limit is used; if the requested size limit exceedes the
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.
@ -219,6 +221,7 @@ to examine.
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

View file

@ -47,7 +47,7 @@ get_limits(
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 );
}
@ -264,7 +264,13 @@ parse_limit(
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 );
@ -297,7 +303,13 @@ parse_limit(
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;
@ -305,7 +317,11 @@ parse_limit(
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 );