X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fschemaparse.c;h=6b22bf38eba7a250737bcfe130e7fe3dc71759cc;hb=f3c2c7ba48e67468e4052cea4699ffabad59a741;hp=fbfd93a59bd49d527b0772c356e630b73aacbf47;hpb=c315e28779ab1be382e60396c8922f76fe95c19c;p=openldap diff --git a/servers/slapd/schemaparse.c b/servers/slapd/schemaparse.c index fbfd93a59b..6b22bf38eb 100644 --- a/servers/slapd/schemaparse.c +++ b/servers/slapd/schemaparse.c @@ -1,8 +1,17 @@ /* schemaparse.c - routines to parse config file objectclass definitions */ /* $OpenLDAP$ */ -/* - * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2006 The OpenLDAP Foundation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ #include "portable.h" @@ -16,8 +25,6 @@ #include "slap.h" #include "ldap_schema.h" -int global_schemacheck = 1; /* schemacheck ON is default */ - static void oc_usage(void); static void at_usage(void); @@ -28,12 +35,14 @@ static char *const err2text[] = { "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", + "Inconsistent duplicate attributeType", "MatchingRule not found", "MatchingRule incomplete", "Duplicate matchingRule", @@ -45,8 +54,9 @@ static char *const err2text[] = { "OID could not be expanded", "Duplicate Content Rule", "Content Rule not for STRUCTURAL object class", - "Content Rule AUX contains non-AUXILIARY object class" - "Content Rule attribute type list contains duplicate" + "Content Rule AUX contains inappropriate object class", + "Content Rule attribute type list contains duplicate", + NULL }; char * @@ -96,8 +106,6 @@ dscompare(const char *s1, const char *s2, char delim) return 0; } -#ifdef SLAP_EXTENDED_SCHEMA - static void cr_usage( void ) { @@ -119,8 +127,8 @@ parse_cr( const char *fname, int lineno, char *line, - char **argv -) + char **argv, + ContentRule **scr ) { LDAPContentRule *cr; int code; @@ -142,7 +150,7 @@ parse_cr( 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); @@ -153,15 +161,13 @@ parse_cr( return 0; } -#endif - int parse_oc( const char *fname, int lineno, char *line, - char **argv -) + char **argv, + ObjectClass **soc ) { LDAPObjectClass *oc; int code; @@ -183,7 +189,7 @@ parse_oc( 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); @@ -214,20 +220,20 @@ oc_usage( void ) static void at_usage( void ) { - fprintf( stderr, + fprintf( stderr, "%s%s%s", "AttributeTypeDescription = \"(\" whsp\n" " numericoid whsp ; AttributeType identifier\n" " [ \"NAME\" qdescrs ] ; name used in AttributeType\n" " [ \"DESC\" qdstring ] ; description\n" " [ \"OBSOLETE\" whsp ]\n" " [ \"SUP\" woid ] ; derived from this other\n" - " ; AttributeType\n" + " ; AttributeType\n", " [ \"EQUALITY\" woid ] ; Matching Rule name\n" " [ \"ORDERING\" woid ] ; Matching Rule name\n" " [ \"SUBSTR\" woid ] ; Matching Rule name\n" " [ \"SYNTAX\" whsp noidlen whsp ] ; see section 4.3\n" " [ \"SINGLE-VALUE\" whsp ] ; default multi-valued\n" - " [ \"COLLECTIVE\" whsp ] ; default not collective\n" + " [ \"COLLECTIVE\" whsp ] ; default not collective\n", " [ \"NO-USER-MODIFICATION\" whsp ]; default user modifiable\n" " [ \"USAGE\" whsp AttributeUsage ]; default userApplications\n" " ; userApplications\n" @@ -242,8 +248,8 @@ parse_at( const char *fname, int lineno, char *line, - char **argv -) + char **argv, + AttributeType **sat ) { LDAPAttributeType *at; int code; @@ -272,8 +278,9 @@ parse_at( return 1; } - code = at_add(at,&err); + code = at_add(at,1,sat,&err); if ( code ) { + ldap_attributetype_free( at ); fprintf( stderr, "%s: line %d: %s: \"%s\"\n", fname, lineno, scherr2str(code), err); return 1;