]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schemaparse.c
ITS#3777 fix scheme comparison
[openldap] / servers / slapd / schemaparse.c
index 6205f382fba2aa653325b7a9e5600601449b7fd9..0834dc0ae8c08a6795bce87c7e65c7fec5f71910 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2004 The OpenLDAP Foundation.
+ * Copyright 1998-2005 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,12 +35,14 @@ static char *const err2text[] = {
        "user-defined ObjectClass includes operational attributes",
        "user-defined ObjectClass has inappropriate SUPerior",
        "Duplicate objectClass",
        "user-defined ObjectClass includes operational attributes",
        "user-defined ObjectClass has inappropriate SUPerior",
        "Duplicate objectClass",
+       "Inconsistent duplicate objectClass",
        "AttributeType not found",
        "AttributeType inappropriate matching rule",
        "AttributeType inappropriate USAGE",
        "AttributeType inappropriate SUPerior",
        "AttributeType SYNTAX or SUPerior required",
        "Duplicate attributeType",
        "AttributeType not found",
        "AttributeType inappropriate matching rule",
        "AttributeType inappropriate USAGE",
        "AttributeType inappropriate SUPerior",
        "AttributeType SYNTAX or SUPerior required",
        "Duplicate attributeType",
+       "Inconsistent duplicate attributeType",
        "MatchingRule not found",
        "MatchingRule incomplete",
        "Duplicate matchingRule",
        "MatchingRule not found",
        "MatchingRule incomplete",
        "Duplicate matchingRule",
@@ -53,7 +55,8 @@ static char *const err2text[] = {
        "Duplicate Content Rule",
        "Content Rule not for STRUCTURAL object class",
        "Content Rule AUX contains inappropriate object class",
        "Duplicate Content Rule",
        "Content Rule not for STRUCTURAL object class",
        "Content Rule AUX contains inappropriate object class",
-       "Content Rule attribute type list contains duplicate"
+       "Content Rule attribute type list contains duplicate",
+       NULL
 };
 
 char *
 };
 
 char *
@@ -124,7 +127,8 @@ parse_cr(
     const char *fname,
     int                lineno,
     char       *line,
     const char *fname,
     int                lineno,
     char       *line,
-    char       **argv )
+    char       **argv,
+       ContentRule **scr )
 {
        LDAPContentRule *cr;
        int             code;
 {
        LDAPContentRule *cr;
        int             code;
@@ -146,7 +150,7 @@ parse_cr(
                return 1;
        }
 
                return 1;
        }
 
-       code = cr_add(cr,1,&err);
+       code = cr_add(cr,1,scr,&err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
@@ -162,7 +166,8 @@ parse_oc(
     const char *fname,
     int                lineno,
     char       *line,
     const char *fname,
     int                lineno,
     char       *line,
-    char       **argv )
+    char       **argv,
+       ObjectClass **soc )
 {
        LDAPObjectClass *oc;
        int             code;
 {
        LDAPObjectClass *oc;
        int             code;
@@ -184,7 +189,7 @@ parse_oc(
                return 1;
        }
 
                return 1;
        }
 
-       code = oc_add(oc,1,&err);
+       code = oc_add(oc,1,soc,&err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
@@ -243,7 +248,8 @@ parse_at(
     const char *fname,
     int                lineno,
     char       *line,
     const char *fname,
     int                lineno,
     char       *line,
-    char       **argv )
+    char       **argv,
+       AttributeType **sat )
 {
        LDAPAttributeType *at;
        int             code;
 {
        LDAPAttributeType *at;
        int             code;
@@ -272,7 +278,7 @@ parse_at(
                return 1;
        }
 
                return 1;
        }
 
-       code = at_add(at,&err);
+       code = at_add(at,1,sat,&err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);