--- servers/slapd/root_dse.c 2002/01/04 20:17:47 1.55 +++ servers/slapd/root_dse.c 2002/01/26 22:14:51 1.59 @@ -1,4 +1,4 @@ -/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.54 2002/01/03 07:02:17 kurt Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.58 2002/01/10 21:34:11 kurt Exp $ */ /* root_dse.c - Provides the ROOT DSA-Specific Entry * * Copyright 1999-2002 The OpenLDAP Foundation. @@ -22,6 +22,8 @@ static char *supportedFeatures[] = { "1.3.6.1.4.1.4203.1.5.1", /* all Operational Attributes ("+") */ "1.3.6.1.4.1.4203.1.5.2", /* OCs in Attributes List */ "1.3.6.1.4.1.4203.1.5.3", /* (&) and (|) search filters */ + "1.3.6.1.4.1.4203.1.5.4", /* Language Tag Options */ + "1.3.6.1.4.1.4203.1.5.5", /* Language Range Options */ NULL }; @@ -58,8 +60,6 @@ root_dse_info( AttributeDescription *ad_ref = slap_schema.si_ad_ref; - Attribute *a; - vals[1].bv_val = NULL; e = (Entry *) ch_calloc( 1, sizeof(Entry) ); @@ -89,8 +89,9 @@ root_dse_info( attr_merge( e, ad_objectClass, vals ); for ( i = 0; i < nbackends; i++ ) { - if ( backends[i].be_glueflags & SLAP_GLUE_SUBORDINATE ) + if ( backends[i].be_flags & SLAP_BFLAG_GLUE_SUBORDINATE ) { continue; + } for ( j = 0; backends[i].be_suffix[j] != NULL; j++ ) { vals[0] = *backends[i].be_suffix[j]; attr_merge( e, ad_namingContexts, vals ); @@ -100,8 +101,7 @@ root_dse_info( /* altServer unsupported */ /* supportedControl */ - for ( i=0; supportedControls[i] != NULL; i++ ) { - vals[0].bv_val = supportedControls[i]; + for ( i=0; (vals[0].bv_val = get_supported_ctrl(i)) != NULL; i++ ) { vals[0].bv_len = strlen( vals[0].bv_val ); attr_merge( e, ad_supportedControl, vals ); } @@ -150,7 +150,8 @@ root_dse_info( } if( usr_attr != NULL) { - for(a = usr_attr->e_attrs; a != NULL; a = a->a_next) { + Attribute *a; + for( a = usr_attr->e_attrs; a != NULL; a = a->a_next ) { attr_merge( e, a->a_desc, a->a_vals ); } } @@ -171,8 +172,6 @@ int read_root_dse_file( const char *fnam int rc = 0, lineno = 0, lmax = 0; char *buf = NULL; - Attribute *a; - if ( (fp = fopen( fname, "r" )) == NULL ) { Debug( LDAP_DEBUG_ANY, "could not open rootdse attr file \"%s\" - absolute path?\n", @@ -186,6 +185,7 @@ int read_root_dse_file( const char *fnam while( ldif_read_record( fp, &lineno, &buf, &lmax ) ) { Entry *e = str2entry( buf ); + Attribute *a; if( e == NULL ) { fprintf( stderr, "root_dse: could not parse entry (line=%d)\n",