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