X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldif.h;h=ccb9fb82b1223243929e631835b2cdfc2f3ca0c7;hb=a119d25a2d29075fd52abec61da649df0007d3e8;hp=d89b7da8cc295c7332eaf1b9655163a81063f2cc;hpb=5c6ad6c5b160c26108bfd0c1fa3c3f27c4d6c8d8;p=openldap diff --git a/include/ldif.h b/include/ldif.h index d89b7da8cc..ccb9fb82b1 100644 --- a/include/ldif.h +++ b/include/ldif.h @@ -1,4 +1,15 @@ +/* $OpenLDAP$ */ /* + * Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. A copy of this license is available at + * http://www.OpenLDAP.org/license.html or in file LICENSE in the + * top-level directory of the distribution. + */ +/* Portions * Copyright (c) 1996 Regents of the University of Michigan. * All rights reserved. * @@ -17,14 +28,17 @@ LDAP_BEGIN_DECL -#define LINE_WIDTH 76 /* maximum length of LDIF lines */ +/* 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 */ /* * Macro to calculate maximum number of bytes that the base64 equivalent - * of an item that is "vlen" bytes long will take up. Base64 encoding + * of an item that is "len" bytes long will take up. Base64 encoding * uses one byte for every six bits in the value plus up to two pad bytes. */ -#define LDIF_BASE64_LEN(vlen) (((vlen) * 4 / 3 ) + 3) +#define LDIF_BASE64_LEN(len) (((len) * 4 / 3 ) + 3) /* * Macro to calculate maximum size that an LDIF-encoded type (length @@ -32,15 +46,63 @@ LDAP_BEGIN_DECL * first newline + base64 value + continued lines. Each continued line * needs room for a newline and a leading space character. */ -#define LDIF_SIZE_NEEDED(tlen,vlen) \ - ((tlen) + 4 + LDIF_BASE64_LEN(vlen) \ - + ((LDIF_BASE64_LEN(vlen) + (tlen) + 3) / LINE_WIDTH * 2 )) +#define LDIF_SIZE_NEEDED(nlen,vlen) \ + ((nlen) + 4 + LDIF_BASE64_LEN(vlen) \ + + ((LDIF_BASE64_LEN(vlen) + (nlen) + 3) / LDIF_LINE_WIDTH * 2 )) + +LDAP_LDIF_F( int ) +ldif_parse_line LDAP_P(( + LDAP_CONST char *line, + char **name, + char **value, + ber_len_t *vlen )); + +LDAP_LDIF_F( int ) +ldif_fetch_url LDAP_P(( + LDAP_CONST char *line, + char **value, + ber_len_t *vlen )); + +LDAP_LDIF_F( char * ) +ldif_getline LDAP_P(( char **next )); + +LDAP_LDIF_F( int ) +ldif_read_record LDAP_P(( + FILE *fp, + int *lineno, + char **bufp, + int *buflen )); + + +#define LDIF_PUT_NOVALUE 0x0000 /* no value */ +#define LDIF_PUT_VALUE 0x0001 /* value w/ auto detection */ +#define LDIF_PUT_TEXT 0x0002 /* assume text */ +#define LDIF_PUT_BINARY 0x0004 /* assume binary (convert to base64) */ +#define LDIF_PUT_B64 0x0008 /* pre-converted base64 value */ + +#define LDIF_PUT_COMMENT 0x0010 /* comment */ +#define LDIF_PUT_URL 0x0020 /* url */ +#define LDIF_PUT_SEP 0x0040 /* separator */ + +LDAP_LDIF_F( void ) +ldif_sput LDAP_P(( + char **out, + int type, + LDAP_CONST char *name, + LDAP_CONST char *val, + ber_len_t vlen )); -int ldif_parse_line LDAP_P(( char *line, char **type, char **value, int *vlen)); -char * ldif_getline LDAP_P(( char **next )); -void ldif_put_type_and_value LDAP_P(( char **out, char *t, char *val, int vlen )); -char *ldif_type_and_value LDAP_P(( char *type, char *val, int vlen )); +LDAP_LDIF_F( char * ) +ldif_put LDAP_P(( + int type, + LDAP_CONST char *name, + LDAP_CONST char *val, + ber_len_t vlen )); +LDAP_LDIF_F( int ) +ldif_is_not_printable LDAP_P(( + LDAP_CONST char *val, + ber_len_t vlen )); LDAP_END_DECL