]> git.sur5r.net Git - openldap/blob - include/ldif.h
Delete obsolete symbols acl_access_allowed and acl_get_applicable
[openldap] / include / ldif.h
1 /* $OpenLDAP$ */
2 /*
3  * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms are permitted only
7  * as authorized by the OpenLDAP Public License.  A copy of this
8  * license is available at http://www.OpenLDAP.org/license.html or
9  * in file LICENSE in the top-level directory of the distribution.
10  */
11 /* Portions
12  * Copyright (c) 1996 Regents of the University of Michigan.
13  * All rights reserved.
14  *
15  * Redistribution and use in source and binary forms are permitted
16  * provided that this notice is preserved and that due credit is given
17  * to the University of Michigan at Ann Arbor. The name of the University
18  * may not be used to endorse or promote products derived from this
19  * software without specific prior written permission. This software
20  * is provided ``as is'' without express or implied warranty.
21  */
22
23 #ifndef _LDIF_H
24 #define _LDIF_H
25
26 #include <ldap_cdefs.h>
27
28 LDAP_BEGIN_DECL
29
30 extern int ldif_debug;
31
32 #define LDIF_LINE_WIDTH      76      /* maximum length of LDIF lines */
33
34 /*
35  * Macro to calculate maximum number of bytes that the base64 equivalent
36  * of an item that is "len" bytes long will take up.  Base64 encoding
37  * uses one byte for every six bits in the value plus up to two pad bytes.
38  */
39 #define LDIF_BASE64_LEN(len)    (((len) * 4 / 3 ) + 3)
40
41 /*
42  * Macro to calculate maximum size that an LDIF-encoded type (length
43  * tlen) and value (length vlen) will take up:  room for type + ":: " +
44  * first newline + base64 value + continued lines.  Each continued line
45  * needs room for a newline and a leading space character.
46  */
47 #define LDIF_SIZE_NEEDED(nlen,vlen) \
48     ((nlen) + 4 + LDIF_BASE64_LEN(vlen) \
49     + ((LDIF_BASE64_LEN(vlen) + (nlen) + 3) / LDIF_LINE_WIDTH * 2 ))
50
51 #ifdef __MINGW32__
52 #   undef LDAP_F_PRE
53 #   ifdef LIBLDIF_DECL
54 #       define LDAP_F_PRE       extern __declspec(LIBLDIF_DECL)
55 #   else
56 #       define LDAP_F_PRE       extern
57 #   endif
58 #endif
59
60 LDAP_F( int )
61 ldif_parse_line LDAP_P((
62         LDAP_CONST char *line,
63         char **name,
64         char **value,
65         ber_len_t *vlen ));
66
67 LDAP_F( int )
68 ldif_fetch_url LDAP_P((
69         LDAP_CONST char *line,
70         char **value,
71         ber_len_t *vlen ));
72
73 LDAP_F( char * )
74 ldif_getline LDAP_P(( char **next ));
75
76 LDAP_F( int )
77 ldif_read_record LDAP_P((
78         FILE *fp,
79         int *lineno,
80         char **bufp,
81         int *buflen ));
82
83
84 #define LDIF_PUT_NOVALUE        0x0000  /* no value */
85 #define LDIF_PUT_VALUE          0x0001  /* value w/ auto detection */
86 #define LDIF_PUT_TEXT           0x0002  /* assume text */
87 #define LDIF_PUT_BINARY         0x0004  /* assume binary (convert to base64) */
88 #define LDIF_PUT_B64            0x0008  /* pre-converted base64 value */
89
90 #define LDIF_PUT_COMMENT        0x0010  /* comment */
91 #define LDIF_PUT_URL            0x0020  /* url */
92 #define LDIF_PUT_SEP            0x0040  /* separator */
93
94 LDAP_F( void )
95 ldif_sput LDAP_P((
96         char **out,
97         int type,
98         LDAP_CONST char *name,
99         LDAP_CONST char *val,
100         ber_len_t vlen ));
101
102 LDAP_F( char * )
103 ldif_put LDAP_P((
104         int type,
105         LDAP_CONST char *name,
106         LDAP_CONST char *val,
107         ber_len_t vlen ));
108
109 LDAP_F( int )
110 ldif_is_not_printable LDAP_P((
111         LDAP_CONST char *val,
112         ber_len_t vlen ));
113
114 LDAP_END_DECL
115
116 #endif /* _LDIF_H */