]> git.sur5r.net Git - openldap/commitdiff
more intuitive special limits configuration
authorPierangelo Masarati <ando@openldap.org>
Fri, 3 Aug 2001 17:25:39 +0000 (17:25 +0000)
committerPierangelo Masarati <ando@openldap.org>
Fri, 3 Aug 2001 17:25:39 +0000 (17:25 +0000)
doc/man/man5/slapd.conf.5
servers/slapd/limits.c

index 3808a60cf6f6cf0971046b384c47b9eb5a7d1336..5a1f3aaac555d44c492a1ba9a14aa9129221894b 100644 (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
index 5e27a2d8320297e5d2b5681487c326b4b75e71f2..614bd2cee733313b6995bb73bc63326d0a018f10 100644 (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 );