--- include/lber.h 1998/08/08 22:43:13 1.1.3.1 +++ include/lber.h 1998/09/25 17:25:21 1.1.3.1.20.1 @@ -13,13 +13,9 @@ #ifndef _LBER_H #define _LBER_H -#ifdef __cplusplus -extern "C" { -#endif +#include -#if !defined( NEEDPROTOS ) && defined(__STDC__) -#define NEEDPROTOS 1 -#endif +LDAP_BEGIN_DECL /* BER classes and mask */ #define LBER_CLASS_UNIVERSAL 0x00 @@ -58,12 +54,9 @@ extern "C" { #define OLD_LBER_SEQUENCE 0x10L /* w/o constructed bit - broken */ #define OLD_LBER_SET 0x11L /* w/o constructed bit - broken */ -#ifdef NEEDPROTOS -typedef int (*BERTranslateProc)( char **bufp, unsigned long *buflenp, - int free_input ); -#else /* NEEDPROTOS */ -typedef int (*BERTranslateProc)(); -#endif /* NEEDPROTOS */ +typedef int (*BERTranslateProc) LDAP_P(( char **bufp, + unsigned long *buflenp, + int free_input )); typedef struct berelement { char *ber_buf; @@ -123,27 +116,85 @@ struct berval { char *bv_val; }; -#ifndef NEEDPROTOS -extern BerElement *ber_alloc(); -extern BerElement *der_alloc(); -extern BerElement *ber_alloc_t(); -extern BerElement *ber_dup(); +#ifdef LDAP_DEBUG extern int lber_debug; -extern void ber_bvfree(); -extern void ber_bvecfree(); -extern struct berval *ber_bvdup(); -extern void ber_dump(); -extern void ber_sos_dump(); -extern void lber_bprint(); -extern void ber_reset(); -extern void ber_init(); -#else /* NEEDPROTOS */ -#if defined(WINSOCK) -#include "proto-lb.h" +#endif + +/* + * in bprint.c: + */ +LDAP_F void lber_bprint LDAP_P(( char *data, int len )); + +/* + * in decode.c: + */ +LDAP_F unsigned long ber_get_tag LDAP_P(( BerElement *ber )); +LDAP_F unsigned long ber_skip_tag LDAP_P(( BerElement *ber, unsigned long *len )); +LDAP_F unsigned long ber_peek_tag LDAP_P(( BerElement *ber, unsigned long *len )); +LDAP_F unsigned long ber_get_int LDAP_P(( BerElement *ber, long *num )); +LDAP_F unsigned long ber_get_stringb LDAP_P(( BerElement *ber, char *buf, + unsigned long *len )); +LDAP_F unsigned long ber_get_stringa LDAP_P(( BerElement *ber, char **buf )); +LDAP_F unsigned long ber_get_stringal LDAP_P(( BerElement *ber, struct berval **bv )); +LDAP_F unsigned long ber_get_bitstringa LDAP_P(( BerElement *ber, char **buf, + unsigned long *len )); +LDAP_F unsigned long ber_get_null LDAP_P(( BerElement *ber )); +LDAP_F unsigned long ber_get_boolean LDAP_P(( BerElement *ber, int *boolval )); +LDAP_F unsigned long ber_first_element LDAP_P(( BerElement *ber, unsigned long *len, + char **last )); +LDAP_F unsigned long ber_next_element LDAP_P(( BerElement *ber, unsigned long *len, + char *last )); +LDAP_F unsigned long ber_scanf LDAP_P(( BerElement *ber, char *fmt, ... )); +LDAP_F void ber_bvfree LDAP_P(( struct berval *bv )); +LDAP_F void ber_bvecfree LDAP_P(( struct berval **bv )); +LDAP_F struct berval *ber_bvdup LDAP_P(( struct berval *bv )); +#ifdef STR_TRANSLATION +LDAP_F void ber_set_string_translators LDAP_P(( BerElement *ber, + BERTranslateProc encode_proc, BERTranslateProc decode_proc )); +#endif /* STR_TRANSLATION */ + +/* + * in encode.c + */ +LDAP_F int ber_put_enum LDAP_P(( BerElement *ber, long num, unsigned long tag )); +LDAP_F int ber_put_int LDAP_P(( BerElement *ber, long num, unsigned long tag )); +LDAP_F int ber_put_ostring LDAP_P(( BerElement *ber, char *str, unsigned long len, + unsigned long tag )); +LDAP_F int ber_put_string LDAP_P(( BerElement *ber, char *str, unsigned long tag )); +LDAP_F int ber_put_bitstring LDAP_P(( BerElement *ber, char *str, + unsigned long bitlen, unsigned long tag )); +LDAP_F int ber_put_null LDAP_P(( BerElement *ber, unsigned long tag )); +LDAP_F int ber_put_boolean LDAP_P(( BerElement *ber, int boolval, + unsigned long tag )); +LDAP_F int ber_start_seq LDAP_P(( BerElement *ber, unsigned long tag )); +LDAP_F int ber_start_set LDAP_P(( BerElement *ber, unsigned long tag )); +LDAP_F int ber_put_seq LDAP_P(( BerElement *ber )); +LDAP_F int ber_put_set LDAP_P(( BerElement *ber )); + +#ifdef __STDC__ +LDAP_F int ber_printf LDAP_P(( BerElement *ber, char *fmt, ... )); #else -#include "proto-lber.h" +LDAP_F int ber_printf ( ); #endif -#endif /* NEEDPROTOS */ + +/* + * in io.c: + */ +LDAP_F long ber_read LDAP_P(( BerElement *ber, char *buf, unsigned long len )); +LDAP_F long ber_write LDAP_P(( BerElement *ber, char *buf, unsigned long len, + int nosos )); +LDAP_F void ber_free LDAP_P(( BerElement *ber, int freebuf )); +LDAP_F int ber_flush LDAP_P(( Sockbuf *sb, BerElement *ber, int freeit )); +LDAP_F BerElement *ber_alloc LDAP_P(( void )); +LDAP_F BerElement *der_alloc LDAP_P(( void )); +LDAP_F BerElement *ber_alloc_t LDAP_P(( int options )); +LDAP_F BerElement *ber_dup LDAP_P(( BerElement *ber )); +LDAP_F void ber_dump LDAP_P(( BerElement *ber, int inout )); +LDAP_F void ber_sos_dump LDAP_P(( Seqorset *sos )); +LDAP_F unsigned long ber_get_next LDAP_P(( Sockbuf *sb, unsigned long *len, + BerElement *ber )); +LDAP_F void ber_init LDAP_P(( BerElement *ber, int options )); +LDAP_F void ber_reset LDAP_P(( BerElement *ber, int was_writing )); #if !defined(__alpha) || defined(VMS) @@ -163,22 +214,6 @@ extern void ber_init(); | ntohl( ( (l) & 0xFFFFFFFF00000000 ) >> 32 )) #endif /* __alpha */ +LDAP_END_DECL -/* - * SAFEMEMCPY is an overlap-safe copy from s to d of n bytes - */ -#ifdef MACOS -#define SAFEMEMCPY( d, s, n ) BlockMoveData( (Ptr)s, (Ptr)d, n ) -#else /* MACOS */ -#ifdef sunos4 -#define SAFEMEMCPY( d, s, n ) bcopy( s, d, n ) -#else /* sunos4 */ -#define SAFEMEMCPY( d, s, n ) memmove( d, s, n ) -#endif /* sunos4 */ -#endif /* MACOS */ - - -#ifdef __cplusplus -} -#endif #endif /* _LBER_H */