X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fschemaparse.c;h=cb5fca8f82d05f7f792ed66f1593ad4f05594dfc;hb=9ba829436e33d42f918f377a7b636869f7a9c371;hp=991c6504c9b68c787d665e612c02da97fbf4e3f9;hpb=6ed15e335069a6dd7cd30971066d6be69a4b1e42;p=openldap diff --git a/servers/slapd/schemaparse.c b/servers/slapd/schemaparse.c index 991c6504c9..cb5fca8f82 100644 --- a/servers/slapd/schemaparse.c +++ b/servers/slapd/schemaparse.c @@ -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 ) {