]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/schemaparse.c
Add dummy reference to lutil_uuidstr() for dynamically loaded back-bdb
[openldap] / servers / slapd / schemaparse.c
index 991c6504c9b68c787d665e612c02da97fbf4e3f9..cb5fca8f82d05f7f792ed66f1593ad4f05594dfc 100644 (file)
@@ -21,22 +21,25 @@ int global_schemacheck = 1; /* schemacheck ON is default */
 static void            oc_usage(void); 
 static void            at_usage(void);
 
-static char *const err2text[SLAP_SCHERR_LAST+1] = {
+static char *const err2text[] = {
        "Success",
        "Out of memory",
        "ObjectClass not found",
-       "ObjectClass inappropriate SUPerior",
+       "user-defined ObjectClass includes operational attributes",
+       "user-defined ObjectClass has inappropriate SUPerior",
+       "Duplicate objectClass",
        "AttributeType not found",
+       "AttributeType inappropriate matching rule",
        "AttributeType inappropriate USAGE",
-       "Duplicate objectClass",
+       "AttributeType inappropriate SUPerior",
+       "AttributeType SYNTAX or SUPerior required",
        "Duplicate attributeType",
-       "Duplicate ldapSyntax",
-       "Duplicate matchingRule",
-       "OID or name required",
-       "SYNTAX or SUPerior required",
        "MatchingRule not found",
+       "MatchingRule incomplete",
+       "Duplicate matchingRule",
        "Syntax not found",
-       "Syntax required",
+       "Duplicate ldapSyntax",
+       "OID or name required",
        "Qualifier not supported",
        "Invalid NAME",
        "OID could not be expanded"
@@ -45,7 +48,7 @@ static char *const err2text[SLAP_SCHERR_LAST+1] = {
 char *
 scherr2str(int code)
 {
-       if ( code < 0 || code >= (sizeof(err2text)/sizeof(char *)) ) {
+       if ( code < 0 || SLAP_SCHERR_LAST <= code ) {
                return "Unknown error";
        } else {
                return err2text[code];
@@ -101,9 +104,8 @@ parse_oc(
        LDAPObjectClass *oc;
        int             code;
        const char      *err;
-       char            *oid = NULL;
 
-       oc = ldap_str2objectclass(line,&code,&err,LDAP_SCHEMA_ALLOW_ALL);
+       oc = ldap_str2objectclass(line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );
        if ( !oc ) {
                fprintf( stderr, "%s: line %d: %s before %s\n",
                         fname, lineno, ldap_scherr2str(code), err );
@@ -119,22 +121,7 @@ parse_oc(
                return 1;
        }
 
-       if ( !OID_LEADCHAR( oc->oc_oid[0] )) {
-               /* Expand OID macros */
-               oid = oidm_find( oc->oc_oid );
-               if ( !oid ) {
-                       fprintf( stderr,
-                               "%s: line %d: OID %s not recognized\n",
-                               fname, lineno, oc->oc_oid);
-                       return 1;
-               }
-               if ( oid != oc->oc_oid ) {
-                       ldap_memfree( oc->oc_oid );
-                       oc->oc_oid = oid;
-               }
-       }
-
-       code = oc_add(oc,&err);
+       code = oc_add(oc,1,&err);
        if ( code ) {
                fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                         fname, lineno, scherr2str(code), err);
@@ -200,7 +187,6 @@ parse_at(
        LDAPAttributeType *at;
        int             code;
        const char      *err;
-       char            *oid = NULL;
 
        at = ldap_str2attributetype( line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );
        if ( !at ) {