]> git.sur5r.net Git - openldap/blob - servers/slapd/ava.c
Import Hallvards idl memory plugs from devel.
[openldap] / servers / slapd / ava.c
1 /* ava.c - routines for dealing with attribute value assertions */
2
3 #include <stdio.h>
4 #include <string.h>
5 #include <sys/types.h>
6 #include <sys/socket.h>
7 #include "slap.h"
8
9 int
10 get_ava(
11     BerElement  *ber,
12     Ava         *ava
13 )
14 {
15         if ( ber_scanf( ber, "{ao}", &ava->ava_type, &ava->ava_value )
16             == LBER_ERROR ) {
17                 Debug( LDAP_DEBUG_ANY, "  get_ava ber_scanf\n", 0, 0, 0 );
18                 return( LDAP_PROTOCOL_ERROR );
19         }
20         attr_normalize( ava->ava_type );
21         value_normalize( ava->ava_value.bv_val, attr_syntax( ava->ava_type ) );
22
23         return( 0 );
24 }
25
26 void
27 ava_free(
28     Ava *ava,
29     int freeit
30 )
31 {
32         free( (char *) ava->ava_type );
33         free( (char *) ava->ava_value.bv_val );
34         if ( freeit ) {
35                 free( (char *) ava );
36         }
37 }
38