]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/config.c
alternate fix to ITS#3916
[openldap] / servers / slapd / config.c
index 484e8c5a20538a3a6367405716c1906832dff570..40be0f7ba59d982177f86d8ff6ad259c8128d7b6 100644 (file)
@@ -136,9 +136,19 @@ int config_check_vals(ConfigTable *Conf, ConfigArgs *c, int check_only ) {
                return(ARG_BAD_CONF);
        }
        if(Conf->max_args && (c->argc > Conf->max_args)) {
-               sprintf( c->msg, "<%s> extra cruft after <%s> ignored",
+               char    *ignored = " ignored";
+
+               sprintf( c->msg, "<%s> extra cruft after <%s>",
                        c->argv[0], Conf->what );
-               Debug(LDAP_DEBUG_CONFIG, "%s: %s\n", c->log, c->msg, 0 );
+
+#ifdef LDAP_DEVEL
+               ignored = "";
+#endif /* LDAP_DEVEL */
+               Debug(LDAP_DEBUG_CONFIG, "%s: %s%s.\n",
+                               c->log, c->msg, ignored );
+#ifdef LDAP_DEVEL
+               return(ARG_BAD_CONF);
+#endif /* LDAP_DEVEL */
        }
        if((arg_type & ARG_DB) && !c->be) {
                sprintf( c->msg, "<%s> only allowed within database declaration",
@@ -850,7 +860,7 @@ slap_verbmasks_append(
        int     i;
 
        if ( !m ) {
-               return 1;
+               return LDAP_OPERATIONS_ERROR;
        }
 
        for ( i = 0; !BER_BVISNULL( &(*vp)[ i ].word ); i++ ) {
@@ -869,15 +879,15 @@ slap_verbmasks_append(
                if ( ( m & (*vp)[ i ].mask ) == (*vp)[ i ].mask ) {
                        if ( ber_bvstrcasecmp( v, &(*vp)[ i ].word ) == 0 ) {
                                /* already set; ignore */
-                               return 0;
+                               return LDAP_SUCCESS;
                        }
                        /* conflicts */
-                       return 1;
+                       return LDAP_TYPE_OR_VALUE_EXISTS;
                }
 
                if ( m & (*vp)[ i ].mask ) {
                        /* conflicts */
-                       return 1;
+                       return LDAP_CONSTRAINT_VIOLATION;
                }
 check_next:;
        }
@@ -887,7 +897,7 @@ check_next:;
        *((slap_mask_t *)&(*vp)[ i ].mask) = m;
        BER_BVZERO( &(*vp)[ i + 1 ].word );
 
-       return 0;
+       return LDAP_SUCCESS;
 }
 
 int