Diff for /servers/slapd/ava.c between versions 1.3 and 1.3.4.5

version 1.3, 1999/07/07 16:51:39 version 1.3.4.5, 2000/07/04 20:10:00
Line 1 Line 1
   /* $OpenLDAP: pkg/ldap/servers/slapd/ava.c,v 1.3.4.4 2000/07/04 18:30:02 kurt Exp $ */
   /*
    * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
    * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
    */
 /* ava.c - routines for dealing with attribute value assertions */  /* ava.c - routines for dealing with attribute value assertions */
   
 #include "portable.h"  #include "portable.h"
Line 9 Line 14
   
 #include "slap.h"  #include "slap.h"
   
   
   void
   ava_free(
       AttributeAssertion *ava,
       int freeit
   )
   {
           ad_free( ava->aa_desc, 1 );
           ber_bvfree( ava->aa_value );
           if ( freeit ) {
                   ch_free( (char *) ava );
           }
   }
   
 int  int
 get_ava(  get_ava(
     BerElement  *ber,      BerElement  *ber,
     Ava         *ava      AttributeAssertion  **ava,
           unsigned usage,
           const char **text
 )  )
 {  {
         if ( ber_scanf( ber, "{ao}", &ava->ava_type, &ava->ava_value )          int rc;
             == LBER_ERROR ) {          struct berval type, value, *nvalue;
           AttributeAssertion *aa;
   
           rc = ber_scanf( ber, "{oo}", &type, &value );
   
           if( rc == LBER_ERROR ) {
                 Debug( LDAP_DEBUG_ANY, "  get_ava ber_scanf\n", 0, 0, 0 );                  Debug( LDAP_DEBUG_ANY, "  get_ava ber_scanf\n", 0, 0, 0 );
                 return( -1 );                  *text = "Error decoding attribute value assertion";
                   return SLAPD_DISCONNECT;
         }          }
         attr_normalize( ava->ava_type );  
         value_normalize( ava->ava_value.bv_val, attr_syntax( ava->ava_type ) );  
   
         return( LDAP_SUCCESS );          aa = ch_malloc( sizeof( AttributeAssertion ) );
 }          aa->aa_desc = NULL;
           aa->aa_value = NULL;
   
           rc = slap_bv2ad( &type, &aa->aa_desc, text );
           ch_free( type.bv_val );
   
           if( rc != LDAP_SUCCESS ) {
                   ch_free( value.bv_val );
                   ch_free( aa );
                   return rc;
           }
   
 void          rc = value_normalize( aa->aa_desc, usage, &value, &nvalue, text );
 ava_free(          ch_free( value.bv_val );
     Ava *ava,  
     int freeit          if( rc != LDAP_SUCCESS ) {
 )                  ad_free( aa->aa_desc, 1 );
 {                  ch_free( aa );
         free( (char *) ava->ava_type );                  return rc;
         free( (char *) ava->ava_value.bv_val );  
         if ( freeit ) {  
                 free( (char *) ava );  
         }          }
   
           aa->aa_value = nvalue;
           *ava = aa;
   
           return LDAP_SUCCESS;
 }  }
   

Removed from v.1.3  
changed lines
  Added in v.1.3.4.5


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