X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldif.h;h=6a641a21ab39f5ca4b1c4d7c80d85f52080fc06c;hb=a255e44bf0fcb703a3a5ac58117fd54a00727fd1;hp=0dc1a30b851fb9d773f1251629b032e7e5738c19;hpb=3c598e89fb34a892d369a138daa8c3314294493c;p=openldap diff --git a/include/ldif.h b/include/ldif.h index 0dc1a30b85..6a641a21ab 100644 --- a/include/ldif.h +++ b/include/ldif.h @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2004 The OpenLDAP Foundation. + * Copyright 1998-2012 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -33,7 +33,9 @@ LDAP_BEGIN_DECL /* This is NOT a bogus extern declaration (unlike ldap_debug) */ LDAP_LDIF_V (int) ldif_debug; -#define LDIF_LINE_WIDTH 76 /* maximum length of LDIF lines */ +#define LDIF_LINE_WIDTH 76 /* default maximum length of LDIF lines */ +#define LDIF_LINE_WIDTH_MAX ((ber_len_t)-1) /* maximum length of LDIF lines */ +#define LDIF_LINE_WIDTH_WRAP(wrap) ((wrap) == 0 ? LDIF_LINE_WIDTH : (wrap)) /* * Macro to calculate maximum number of bytes that the base64 equivalent @@ -52,6 +54,11 @@ LDAP_LDIF_V (int) ldif_debug; ((nlen) + 4 + LDIF_BASE64_LEN(vlen) \ + ((LDIF_BASE64_LEN(vlen) + (nlen) + 3) / LDIF_LINE_WIDTH * 2 )) +#define LDIF_SIZE_NEEDED_WRAP(nlen,vlen,wrap) \ + ((nlen) + 4 + LDIF_BASE64_LEN(vlen) \ + + ((wrap) == 0 ? ((LDIF_BASE64_LEN(vlen) + (nlen) + 3) / ( LDIF_LINE_WIDTH ) * 2 ) : \ + ((wrap) == LDIF_LINE_WIDTH_MAX ? 0 : ((LDIF_BASE64_LEN(vlen) + (nlen) + 3) / (wrap) * 2 )))) + LDAP_LDIF_F( int ) ldif_parse_line LDAP_P(( LDAP_CONST char *line, @@ -59,6 +66,16 @@ ldif_parse_line LDAP_P(( char **value, ber_len_t *vlen )); +LDAP_LDIF_F( int ) +ldif_parse_line2 LDAP_P(( + char *line, + struct berval *type, + struct berval *value, + int *freeval )); + +LDAP_LDIF_F( FILE * ) +ldif_open_url LDAP_P(( LDAP_CONST char *urlstr )); + LDAP_LDIF_F( int ) ldif_fetch_url LDAP_P(( LDAP_CONST char *line, @@ -68,13 +85,37 @@ ldif_fetch_url LDAP_P(( LDAP_LDIF_F( char * ) ldif_getline LDAP_P(( char **next )); +LDAP_LDIF_F( int ) +ldif_countlines LDAP_P(( LDAP_CONST char *line )); + +/* ldif_ropen, rclose, read_record - just for reading LDIF files, + * no special open/close needed to write LDIF files. + */ +typedef struct LDIFFP { + FILE *fp; + struct LDIFFP *prev; +} LDIFFP; + +LDAP_LDIF_F( LDIFFP * ) +ldif_open LDAP_P(( LDAP_CONST char *file, LDAP_CONST char *mode )); + +LDAP_LDIF_F( void ) +ldif_close LDAP_P(( LDIFFP * )); + LDAP_LDIF_F( int ) ldif_read_record LDAP_P(( - FILE *fp, + LDIFFP *fp, int *lineno, char **bufp, int *buflen )); +LDAP_LDIF_F( int ) +ldif_must_b64_encode_register LDAP_P(( + LDAP_CONST char *name, + LDAP_CONST char *oid )); + +LDAP_LDIF_F( void ) +ldif_must_b64_encode_release LDAP_P(( void )); #define LDIF_PUT_NOVALUE 0x0000 /* no value */ #define LDIF_PUT_VALUE 0x0001 /* value w/ auto detection */ @@ -94,6 +135,15 @@ ldif_sput LDAP_P(( LDAP_CONST char *val, ber_len_t vlen )); +LDAP_LDIF_F( void ) +ldif_sput_wrap LDAP_P(( + char **out, + int type, + LDAP_CONST char *name, + LDAP_CONST char *val, + ber_len_t vlen, + ber_len_t wrap )); + LDAP_LDIF_F( char * ) ldif_put LDAP_P(( int type, @@ -101,6 +151,14 @@ ldif_put LDAP_P(( LDAP_CONST char *val, ber_len_t vlen )); +LDAP_LDIF_F( char * ) +ldif_put_wrap LDAP_P(( + int type, + LDAP_CONST char *name, + LDAP_CONST char *val, + ber_len_t vlen, + ber_len_t wrap )); + LDAP_LDIF_F( int ) ldif_is_not_printable LDAP_P(( LDAP_CONST char *val,