X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fschema.c;h=ad022a60bbfa062a185d49523edc49e0a59850a2;hb=6147119dc8526a758a7c576940fe8483e2b93915;hp=c7bafd9b8a51b2e5f068915c6b5c2d4901ca7f54;hpb=a39cf6f93d38118375cabdf801391a5b08d81e13;p=openldap diff --git a/servers/slapd/schema.c b/servers/slapd/schema.c index c7bafd9b8a..ad022a60bb 100644 --- a/servers/slapd/schema.c +++ b/servers/slapd/schema.c @@ -1,4 +1,8 @@ /* schema.c - routines to enforce schema definitions */ +/* + * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" @@ -1006,7 +1010,7 @@ schema_init( void ) if ( res ) { fprintf( stderr, "schema_init: Error registering syntax %s\n", syntax_defs[i].sd_desc ); - exit( 1 ); + exit( EXIT_FAILURE ); } } for ( i=0; mrule_defs[i].mrd_desc != NULL; i++ ) { @@ -1018,7 +1022,7 @@ schema_init( void ) if ( res ) { fprintf( stderr, "schema_init: Error registering matching rule %s\n", mrule_defs[i].mrd_desc ); - exit( 1 ); + exit( EXIT_FAILURE ); } } schema_init_done = 1; @@ -1159,6 +1163,10 @@ schema_info( Connection *conn, Operation *op, char **attrs, int attrsonly ) val.bv_len = sizeof("top")-1; attr_merge( e, "objectClass", vals ); + val.bv_val = "LDAPsubentry"; + val.bv_len = sizeof("LDAPsubentry")-1; + attr_merge( e, "objectClass", vals ); + val.bv_val = "subschema"; val.bv_len = sizeof("subschema")-1; attr_merge( e, "objectClass", vals ); @@ -1182,24 +1190,21 @@ static void oc_print( ObjectClass *oc ) { int i; + const char *mid; - if ( oc->soc_names && oc->soc_names[0] ) { - printf( "objectclass %s\n", oc->soc_names[0] ); - } else { - printf( "objectclass %s\n", oc->soc_oid ); - } + printf( "objectclass %s\n", ldap_objectclass2name( &oc->soc_oclass ) ); if ( oc->soc_required != NULL ) { - printf( "\trequires %s", oc->soc_required[0] ); - for ( i = 1; oc->soc_required[i] != NULL; i++ ) { - printf( ",%s", oc->soc_required[i] ); - } + mid = "\trequires "; + for ( i = 0; oc->soc_required[i] != NULL; i++, mid = "," ) + printf( "%s%s", mid, + ldap_attributetype2name( &oc->soc_required[i]->sat_atype ) ); printf( "\n" ); } if ( oc->soc_allowed != NULL ) { - printf( "\tallows %s", oc->soc_allowed[0] ); - for ( i = 1; oc->soc_allowed[i] != NULL; i++ ) { - printf( ",%s", oc->soc_allowed[i] ); - } + mid = "\tallows "; + for ( i = 0; oc->soc_allowed[i] != NULL; i++, mid = "," ) + printf( "%s%s", mid, + ldap_attributetype2name( &oc->soc_allowed[i]->sat_atype ) ); printf( "\n" ); } }