Skip to content
Snippets Groups Projects
Commit 6a5b253b authored by Pierangelo Masarati's avatar Pierangelo Masarati
Browse files

allow multiple limits setting on one global/per backend config line

parent 4919363f
No related branches found
No related tags found
No related merge requests found
......@@ -512,10 +512,11 @@ e.g. ldapi:// (and eventually IPSEC). It is not normally used.
.TP
.B sizelimit <integer>
.TP
.B sizelimit size[.{soft|hard|unchecked}]=<integer>
.B sizelimit size[.{soft|hard|unchecked}]=<integer> [...]
Specify the maximum number of entries to return from a search operation.
The default size limit is 500.
The second format allows a fine grain setting of the size limits.
Extra args can be added on the same line.
See
.BR limits
for an explanation of the different flags.
......@@ -539,11 +540,12 @@ The default is 32.
.TP
.B timelimit <integer>
.TP
.B timelimit time[.{soft|hard}]=<integer>
.B timelimit time[.{soft|hard}]=<integer> [...]
Specify the maximum number of seconds (in real time)
.B slapd
will spend answering a search request. The default time limit is 3600.
The second format allows a fine grain setting of the time limits.
Extra args can be added on the same line.
See
.BR limits
for an explanation of the different flags.
......
......@@ -694,7 +694,7 @@ read_config( const char *fname )
/* set size limit */
} else if ( strcasecmp( cargv[0], "sizelimit" ) == 0 ) {
int rc = 0;
int rc = 0, i;
struct slap_limits_set *lim;
if ( cargc < 2 ) {
......@@ -717,30 +717,36 @@ read_config( const char *fname )
lim = &be->be_def_limit;
}
if ( strncasecmp( cargv[1], "size", 4 ) == 0 ) {
rc = parse_limit( cargv[1], lim );
} else {
lim->lms_s_soft = atoi( cargv[1] );
lim->lms_s_hard = 0;
}
for ( i = 1; i < cargc; i++ ) {
if ( strncasecmp( cargv[i], "size", 4 ) == 0 ) {
rc = parse_limit( cargv[i], lim );
} else {
lim->lms_s_soft = atoi( cargv[i] );
lim->lms_s_hard = 0;
}
if ( rc ) {
if ( rc ) {
#ifdef NEW_LOGGING
LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
"%s: line %d: unable to parse value"
" \"%s\" in \"sizelimit <limit>\""
" line.\n",
fname, lineno, cargv[1] ));
LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
"%s: line %d: unable "
"to parse value \"%s\" "
"in \"sizelimit "
"<limit>\" line.\n",
fname, lineno, cargv[i] ));
#else
Debug( LDAP_DEBUG_ANY,
"%s: line %d: unable to parse value \"%s\" in \"sizelimit <limit>\" line\n",
fname, lineno, cargv[1] );
Debug( LDAP_DEBUG_ANY,
"%s: line %d: unable "
"to parse value \"%s\" "
"in \"sizelimit "
"<limit>\" line\n",
fname, lineno, cargv[i] );
#endif
}
}
/* set time limit */
} else if ( strcasecmp( cargv[0], "timelimit" ) == 0 ) {
int rc = 0;
int rc = 0, i;
struct slap_limits_set *lim;
if ( cargc < 2 ) {
......@@ -763,25 +769,31 @@ read_config( const char *fname )
lim = &be->be_def_limit;
}
if ( strncasecmp( cargv[1], "time", 4 ) == 0 ) {
rc = parse_limit( cargv[1], lim );
} else {
lim->lms_t_soft = atoi( cargv[1] );
lim->lms_t_hard = 0;
}
for ( i = 1; i < cargc; i++ ) {
if ( strncasecmp( cargv[i], "time", 4 ) == 0 ) {
rc = parse_limit( cargv[i], lim );
} else {
lim->lms_t_soft = atoi( cargv[i] );
lim->lms_t_hard = 0;
}
if ( rc ) {
if ( rc ) {
#ifdef NEW_LOGGING
LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
"%s: line %d: unable to parse value"
" \"%s\" in \"timelimit <limit>\""
" line.\n",
fname, lineno, cargv[1] ));
LDAP_LOG(( "config", LDAP_LEVEL_CRIT,
"%s: line %d: unable "
"to parse value \"%s\" "
"in \"timelimit "
"<limit>\" line.\n",
fname, lineno, cargv[i] ));
#else
Debug( LDAP_DEBUG_ANY,
"%s: line %d: unable to parse value \"%s\" in \"timelimit <limit>\" line\n",
fname, lineno, cargv[1] );
Debug( LDAP_DEBUG_ANY,
"%s: line %d: unable "
"to parse value \"%s\" "
"in \"timelimit "
"<limit>\" line\n",
fname, lineno, cargv[i] );
#endif
}
}
/* set regex-based limits */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment