From 0371c6107349e8f7a192754e259df081e7fdc275 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Wed, 19 Jun 2002 06:44:16 +0000 Subject: [PATCH] Add monitorContext rootDSE attribute --- libraries/libldap/os-ip.c | 6 +++++- servers/slapd/root_dse.c | 9 +++++---- servers/slapd/schema_prep.c | 9 +++++++++ servers/slapd/slap.h | 1 + 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/libraries/libldap/os-ip.c b/libraries/libldap/os-ip.c index 0084743d84..7412a58014 100644 --- a/libraries/libldap/os-ip.c +++ b/libraries/libldap/os-ip.c @@ -30,6 +30,10 @@ int ldap_int_tblsize = 0; +#if defined( HAVE_GETADDRINFO ) && defined( HAVE_INET_NTOP ) +int ldap_int_inet4or6 = AF_UNSPEC; +#endif + /* * nonblock connect code * written by Lars Uffmann, . @@ -340,7 +344,7 @@ ldap_connect_to_host(LDAP *ld, Sockbuf *sb, struct addrinfo hints, *res, *sai; memset( &hints, '\0', sizeof(hints) ); - hints.ai_family = AF_UNSPEC; + hints.ai_family = ldap_int_inet4or6; hints.ai_socktype = socktype; snprintf(serv, sizeof serv, "%d", port ); diff --git a/servers/slapd/root_dse.c b/servers/slapd/root_dse.c index e4b0b0159b..e814c5155d 100644 --- a/servers/slapd/root_dse.c +++ b/servers/slapd/root_dse.c @@ -58,6 +58,8 @@ root_dse_info( = slap_schema.si_ad_supportedSASLMechanisms; AttributeDescription *ad_supportedFeatures = slap_schema.si_ad_supportedFeatures; + AttributeDescription *ad_monitorContext + = slap_schema.si_ad_monitorContext; AttributeDescription *ad_ref = slap_schema.si_ad_ref; @@ -77,10 +79,6 @@ root_dse_info( e->e_private = NULL; - vals[0].bv_val = "OpenLDAProotDSE"; - vals[0].bv_len = sizeof("OpenLDAProotDSE")-1; - attr_merge( e, ad_structuralObjectClass, vals ); - vals[0].bv_val = "top"; vals[0].bv_len = sizeof("top")-1; attr_merge( e, ad_objectClass, vals ); @@ -88,9 +86,12 @@ root_dse_info( vals[0].bv_val = "OpenLDAProotDSE"; vals[0].bv_len = sizeof("OpenLDAProotDSE")-1; attr_merge( e, ad_objectClass, vals ); + attr_merge( e, ad_structuralObjectClass, vals ); for ( i = 0; i < nbackends; i++ ) { if ( backends[i].be_flags & SLAP_BFLAG_MONITOR ) { + vals[0] = backends[i].be_suffix[0]; + attr_merge( e, ad_monitorContext, vals ); continue; } if ( backends[i].be_flags & SLAP_BFLAG_GLUE_SUBORDINATE ) { diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index 64d3de2164..53d7433e7a 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -364,6 +364,15 @@ static struct slap_schema_ad_map { "USAGE dSAOperation )", rootDseAttribute, 0, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedFeatures) }, + { "monitorContext", "( 1.3.6.1.4.1.4203.666.1.10 " + "NAME 'monitorContext' " + "DESC 'monitor context' " + "EQUALITY objectIdentifierMatch " + "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " + "SINGLE-VALUE NO-USER-MODIFICATION " + "USAGE dSAOperation )", + rootDseAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + offsetof(struct slap_internal_schema, si_ad_monitorContext) }, { "vendorName", "( 1.3.6.1.1.4 NAME 'vendorName' " "DESC 'RFC3045: name of implementation vendor' " "EQUALITY 1.3.6.1.4.1.1466.109.114.1 " diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index ca7967cba1..358ac63340 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -598,6 +598,7 @@ struct slap_internal_schema { AttributeDescription *si_ad_supportedLDAPVersion; AttributeDescription *si_ad_supportedSASLMechanisms; AttributeDescription *si_ad_supportedFeatures; + AttributeDescription *si_ad_monitorContext; AttributeDescription *si_ad_vendorName; AttributeDescription *si_ad_vendorVersion; -- 2.39.5