Diff for /servers/slapd/root_dse.c between versions 1.110 and 1.111

version 1.110, 2005/08/12 19:24:13 version 1.111, 2005/11/27 22:17:57
Line 1 Line 1
 /* root_dse.c - Provides the Root DSA-Specific Entry */  /* root_dse.c - Provides the Root DSA-Specific Entry */
 /* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.109 2005/07/22 11:18:28 hallvard Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/root_dse.c,v 1.110 2005/08/12 19:24:13 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1999-2005 The OpenLDAP Foundation.   * Copyright 1999-2005 The OpenLDAP Foundation.
Line 28 Line 28
 #include "slapi/slapi.h"  #include "slapi/slapi.h"
 #endif  #endif
   
 static struct berval supportedFeatures[] = {  static struct berval    builtin_supportedFeatures[] = {
         BER_BVC(LDAP_FEATURE_MODIFY_INCREMENT),         /* Modify/increment */          BER_BVC(LDAP_FEATURE_MODIFY_INCREMENT),         /* Modify/increment */
         BER_BVC(LDAP_FEATURE_ALL_OP_ATTRS),                     /* All Op Attrs (+) */          BER_BVC(LDAP_FEATURE_ALL_OP_ATTRS),             /* All Op Attrs (+) */
         BER_BVC(LDAP_FEATURE_OBJECTCLASS_ATTRS),        /* OCs in Attrs List (@class) */          BER_BVC(LDAP_FEATURE_OBJECTCLASS_ATTRS),        /* OCs in Attrs List (@class) */
         BER_BVC(LDAP_FEATURE_ABSOLUTE_FILTERS),         /* (&) and (|) search filters */          BER_BVC(LDAP_FEATURE_ABSOLUTE_FILTERS),         /* (&) and (|) search filters */
         BER_BVC(LDAP_FEATURE_LANGUAGE_TAG_OPTIONS), /* Language Tag Options */          BER_BVC(LDAP_FEATURE_LANGUAGE_TAG_OPTIONS),     /* Language Tag Options */
         BER_BVC(LDAP_FEATURE_LANGUAGE_RANGE_OPTIONS),/* Language Range Options */          BER_BVC(LDAP_FEATURE_LANGUAGE_RANGE_OPTIONS),   /* Language Range Options */
 #ifdef LDAP_FEATURE_SUBORDINATE_SCOPE  #ifdef LDAP_FEATURE_SUBORDINATE_SCOPE
         BER_BVC(LDAP_FEATURE_SUBORDINATE_SCOPE),        /* "children" search scope */          BER_BVC(LDAP_FEATURE_SUBORDINATE_SCOPE),        /* "children" search scope */
 #endif  #endif
         {0,NULL}          BER_BVNULL
 };  };
   static struct berval    *supportedFeatures;
   
 static Entry    *usr_attr = NULL;  static Entry    *usr_attr = NULL;
   
   static int
   supported_feature_init( void )
   {
           int             i;
   
           if ( supportedFeatures != NULL ) {
                   return 0;
           }
   
           for ( i = 0; !BER_BVISNULL( &builtin_supportedFeatures[ i ] ); i++ )
                   ;
   
           supportedFeatures = ch_calloc( sizeof( struct berval ), i + 1 );
           if ( supportedFeatures == NULL ) {
                   return -1;
           }
   
           for ( i = 0; !BER_BVISNULL( &builtin_supportedFeatures[ i ] ); i++ ) {
                   ber_dupbv( &supportedFeatures[ i ], &builtin_supportedFeatures[ i ] );
           }
           BER_BVZERO( &supportedFeatures[ i ] );
   
           return 0;
   }
   
   int
   supported_feature_destroy( void )
   {
           int             i;
   
           if ( supportedFeatures == NULL ) {
                   return 0;
           }
           
           for ( i = 0; !BER_BVISNULL( &supportedFeatures[ i ] ); i++ ) {
                   ch_free( supportedFeatures[ i ].bv_val );
           }
   
           ch_free( supportedFeatures );
           supportedFeatures = NULL;
   
           return 0;
   }
   
   int
   supported_feature_load( struct berval *f )
   {
           struct berval   *tmp;
           int             i;
   
           supported_feature_init();
   
           for ( i = 0; !BER_BVISNULL( &supportedFeatures[ i ] ); i++ )
                   ;
   
           tmp = ch_realloc( supportedFeatures, sizeof( struct berval ) * ( i + 2 ) );
           if ( tmp == NULL ) {
                   return -1;
           }
           supportedFeatures = tmp;
   
           ber_dupbv( &supportedFeatures[ i ], f );
           BER_BVZERO( &supportedFeatures[ i + 1 ] );
   
           return 0;
   }
   
 int  int
 root_dse_info(  root_dse_info(
         Connection *conn,          Connection *conn,
Line 173  root_dse_info( Line 241  root_dse_info(
 #endif /* LDAP_SLAPI */  #endif /* LDAP_SLAPI */
   
         /* supportedFeatures */          /* supportedFeatures */
           if ( supportedFeatures == NULL ) {
                   supported_feature_init();
           }
   
         if( attr_merge( e, ad_supportedFeatures, supportedFeatures, NULL ) ) {          if( attr_merge( e, ad_supportedFeatures, supportedFeatures, NULL ) ) {
                 return LDAP_OTHER;                  return LDAP_OTHER;
         }          }

Removed from v.1.110  
changed lines
  Added in v.1.111


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org