]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/root_dse.c
Per ITS#419, don't require SLAPD_RLOOKUPS when HAVE_TCPD
[openldap] / servers / slapd / root_dse.c
index 361f7bc4e34fd9d0ab0e961afb8560df256ddb78..5d688c936dbb0fb9ed022b8e2bc82d28521c7bc5 100644 (file)
@@ -1,3 +1,4 @@
+/* $OpenLDAP$ */
 /* root_dse.c - Provides the ROOT DSA-Specific Entry
  *
  * Copyright 1999 The OpenLDAP Foundation.
@@ -12,8 +13,8 @@
 #include "portable.h"
 
 #include <stdio.h>
+#include <ac/string.h>
 
-#include "ldap_defaults.h"
 #include "slap.h"
 
 void
@@ -33,7 +34,7 @@ root_dse_info( Connection *conn, Operation *op, char **attrs, int attrsonly )
        e->e_attrs = NULL;
        e->e_dn = ch_strdup( LDAP_ROOT_DSE );
        e->e_ndn = ch_strdup( LDAP_ROOT_DSE );
-       (void) dn_normalize_case( e->e_ndn );
+       (void) dn_normalize( e->e_ndn );
        e->e_private = NULL;
 
        for ( i = 0; i < nbackends; i++ ) {
@@ -73,8 +74,7 @@ root_dse_info( Connection *conn, Operation *op, char **attrs, int attrsonly )
        }
 
        /* supportedExtension */
-       for ( i=0; supportedExtensions[i] != NULL; i++ ) {
-               val.bv_val = supportedExtensions[i];
+       for ( i=0; (val.bv_val = get_supported_extop(i)) != NULL; i++ ) {
                val.bv_len = strlen( val.bv_val );
                attr_merge( e, "supportedExtension", vals );
        }
@@ -88,11 +88,21 @@ root_dse_info( Connection *conn, Operation *op, char **attrs, int attrsonly )
        }
 
        /* supportedSASLMechanism */
-       for ( i=0; supportedSASLMechanisms[i] != NULL; i++ ) {
-               val.bv_val = supportedSASLMechanisms[i];
+       if( supportedSASLMechanisms != NULL ) {
+               for ( i=0; supportedSASLMechanisms[i] != NULL; i++ ) {
+                       val.bv_val = supportedSASLMechanisms[i];
+                       val.bv_len = strlen( val.bv_val );
+                       attr_merge( e, "supportedSASLMechanisms", vals );
+               }
+       }
+
+#ifdef SLAPD_ACI_ENABLED
+       /* supportedACIMechanisms */
+       for ( i=0; (val.bv_val = get_supported_acimech(i)) != NULL; i++ ) {
                val.bv_len = strlen( val.bv_val );
-               attr_merge( e, "supportedSASLMechanisms", vals );
+               attr_merge( e, "supportedACIMechanisms", vals );
        }
+#endif
 
        if ( default_referral != NULL ) {
                attr_merge( e, "ref", default_referral );
@@ -102,8 +112,12 @@ root_dse_info( Connection *conn, Operation *op, char **attrs, int attrsonly )
        val.bv_len = sizeof("top")-1;
        attr_merge( e, "objectClass", vals );
 
-       val.bv_val = "extenisbleObject";
-       val.bv_len = sizeof("extenisbleObject")-1;
+       val.bv_val = "LDAProotDSE";
+       val.bv_len = sizeof("LDAProotDSE")-1;
+       attr_merge( e, "objectClass", vals );
+
+       val.bv_val = "extensibleObject";
+       val.bv_len = sizeof("extensibleObject")-1;
        attr_merge( e, "objectClass", vals );
 
        send_search_entry( &backends[0], conn, op,