]> git.sur5r.net Git - openldap/commitdiff
improve diagnostics when configuring suffix for special databases
authorPierangelo Masarati <ando@openldap.org>
Fri, 15 Jul 2005 16:21:15 +0000 (16:21 +0000)
committerPierangelo Masarati <ando@openldap.org>
Fri, 15 Jul 2005 16:21:15 +0000 (16:21 +0000)
servers/slapd/bconfig.c

index b7e919b72f53fe46850764badf4e390deef7e902..36b5d6e83202e597099ef5e15dd529af0a13084c 100644 (file)
@@ -1546,13 +1546,29 @@ config_overlay(ConfigArgs *c) {
 }
 
 static int
-config_suffix(ConfigArgs *c) {
+config_suffix(ConfigArgs *c)
+{
        Backend *tbe;
        struct berval pdn, ndn;
        int rc;
+       char    *notallowed = NULL;
+
+       if ( c->be == frontendDB ) {
+               notallowed = "frontend";
+
+       } else if ( SLAP_MONITOR(c->be) ) {
+               notallowed = "monitor";
+
+       } else if ( SLAP_CONFIG(c->be) ) {
+               notallowed = "config";
+       }
 
-       if (c->be == frontendDB || SLAP_MONITOR(c->be) ||
-               SLAP_CONFIG(c->be)) return 1;
+       if ( notallowed != NULL ) {
+               Debug(LDAP_DEBUG_ANY,
+                       "%s: suffix <%s> not allowed in %s database.\n",
+                       c->log, c->value_dn.bv_val, notallowed );
+               return 1;
+       }
 
        if (c->op == SLAP_CONFIG_EMIT) {
                if ( c->be->be_suffix == NULL
@@ -1581,6 +1597,7 @@ config_suffix(ConfigArgs *c) {
                }
                return 0;
        }
+
 #ifdef SLAPD_MONITOR_DN
        if(!strcasecmp(c->argv[1], SLAPD_MONITOR_DN)) {
                sprintf( c->msg, "<%s> DN is reserved for monitoring slapd",