From 0a155934abfa3beccd547139eab6d655b2d1f57e Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sun, 9 Sep 2001 04:01:07 +0000 Subject: [PATCH] Add root DSE supportedFeatures support. --- servers/slapd/root_dse.c | 14 ++++++++++++++ servers/slapd/schema/core.schema | 16 +++++++++++++++- servers/slapd/schema_prep.c | 2 ++ servers/slapd/slap.h | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/servers/slapd/root_dse.c b/servers/slapd/root_dse.c index 942364e005..c208c82e06 100644 --- a/servers/slapd/root_dse.c +++ b/servers/slapd/root_dse.c @@ -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 ) && diff --git a/servers/slapd/schema/core.schema b/servers/slapd/schema/core.schema index cad13de0c5..e3b4e9d8e8 100644 --- a/servers/slapd/schema/core.schema +++ b/servers/slapd/schema/core.schema @@ -638,7 +638,17 @@ attributetype ( 1.3.6.1.4.1.250.1.32 SINGLE-VALUE ) # -# OpenLDAP specific schema items +# draft-zeilenga-ldap-features-xx.txt (supportedFeatures) +# +attributetype ( 1.3.6.1.4.1.4203.1.3.5 + NAME 'supportedFeatures' + DESC 'features supported by the server' + EQUALITY objectIdentifierMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 + USAGE dSAOperation ) + +# +# RFC 3112 (authPassword) # attributetype ( 1.3.6.1.4.1.4203.666.1.1 NAME 'authPassword' @@ -653,6 +663,10 @@ attributetype ( 1.3.6.1.4.1.4203.666.1.2 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} NO-USER-MODIFICATION USAGE dSAOperation ) +# +# OpenLDAP specific schema items +# + attributetype ( 1.3.6.1.4.1.4203.1.3.1 NAME 'entry' DESC 'OpenLDAP ACL entry pseudo-attribute' diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index 9b12088478..16efb4c1ee 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -175,6 +175,8 @@ struct slap_schema_ad_map { offsetof(struct slap_internal_schema, si_ad_supportedLDAPVersion) }, { "supportedSASLMechanisms", NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedSASLMechanisms) }, + { "supportedFeatures", NULL, NULL, NULL, + offsetof(struct slap_internal_schema, si_ad_supportedFeatures) }, /* subschema subentry attributes */ { "attributeTypes", NULL, NULL, NULL, diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index aaefe20868..40e6580b36 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -450,6 +450,7 @@ struct slap_internal_schema { AttributeDescription *si_ad_supportedExtension; AttributeDescription *si_ad_supportedLDAPVersion; AttributeDescription *si_ad_supportedSASLMechanisms; + AttributeDescription *si_ad_supportedFeatures; /* subschema subentry attribute descriptions */ AttributeDescription *si_ad_objectClasses; -- 2.39.5