--- servers/slapd/root_dse.c 2000/08/31 16:51:15 1.39 +++ servers/slapd/root_dse.c 2001/09/09 02:01:07 1.40 @@ -1,4 +1,4 @@ -/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.38 2000/07/13 20:54:49 kurt Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.39 2000/08/31 16:51:15 kurt Exp $ */ /* root_dse.c - Provides the ROOT DSA-Specific Entry * * Copyright 1999-2000 The OpenLDAP Foundation. @@ -17,6 +17,12 @@ #include "slap.h" +static char *supportedFeatures[] = { + "1.3.6.1.4.1.4203.1.5.1", /* All Operational Attributes ("+") */ + NULL +}; + + int root_dse_info( Connection *conn, @@ -36,6 +42,7 @@ root_dse_info( AttributeDescription *ad_supportedExtension = slap_schema.si_ad_supportedExtension; AttributeDescription *ad_supportedLDAPVersion = slap_schema.si_ad_supportedLDAPVersion; AttributeDescription *ad_supportedSASLMechanisms = slap_schema.si_ad_supportedSASLMechanisms; + AttributeDescription *ad_supportedFeatures = slap_schema.si_ad_supportedFeatures; AttributeDescription *ad_ref = slap_schema.si_ad_ref; vals[0] = &val; @@ -80,6 +87,13 @@ root_dse_info( attr_merge( e, ad_supportedExtension, vals ); } + /* supportedFeatures */ + for ( i=0; supportedFeatures[i] != NULL; i++ ) { + val.bv_val = supportedFeatures[i]; + val.bv_len = strlen( val.bv_val ); + attr_merge( e, ad_supportedFeatures, vals ); + } + /* supportedLDAPVersion */ for ( i=LDAP_VERSION_MIN; i<=LDAP_VERSION_MAX; i++ ) { if (( global_disallows & SLAP_DISALLOW_BIND_V2 ) &&