]> git.sur5r.net Git - openldap/blobdiff - include/lber.h
Fix "configurations".
[openldap] / include / lber.h
index a2e006fab385d652ffac0a79024a276881c38a08..bf939f90b31a44449621c6106830f797745cb657 100644 (file)
@@ -1,4 +1,13 @@
 /*
+ * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms 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) 1990 Regents of the University of Michigan.
  * All rights reserved.
  *
@@ -40,7 +49,7 @@ LDAP_BEGIN_DECL
  */
 #define LBER_ERROR             0xffffffffL
 #define LBER_DEFAULT           0xffffffffL
-#define LBER_END_SEQORSET      0xfffffffeL
+/* #define LBER_END_SEQORSET   0xfffffffeL *//* no part of LDAP C-API */
 
 /* general BER types we know about */
 #define LBER_BOOLEAN           0x01L
@@ -55,33 +64,46 @@ LDAP_BEGIN_DECL
 #define OLD_LBER_SEQUENCE      0x10L   /* w/o constructed bit - broken */
 #define OLD_LBER_SET           0x11L   /* w/o constructed bit - broken */
 
-/* get/set options for BerElement */
-#define LBER_SOCKBUF_OPT_TO_FILE                               0x01
-#define LBER_SOCKBUF_OPT_TO_FILE_ONLY                  0x02
-#define        LBER_SOCKBUF_OPT_TO_MAX_INCOMING_SIZE   0x04
-#define LBER_SOCKBUF_OPT_TO_NO_READ_AHEAD              0x08
-#define LBER_SOCKBUF_OPT_TO_DESC                               0x10
-#define        LBER_SOCKBUF_OPT_TO_COPYDESC                    0x20
-#define LBER_SOCKBUF_OPT_TO_READFN                             0x40
-#define LBER_SOCKBUF_OPT_TO_WRITE_FN                   0x80
-
-/* LBER on/off values */
-#define LBER_OPT_ON ((void *) 1)
-#define LBER_OPT_OFF ((void *) 0)
-
 typedef int (*BERTranslateProc) LDAP_P(( char **bufp,
        unsigned long *buflenp,
        int free_input ));
 
+/* LBER BerElement options */
 #define LBER_USE_DER           0x01
 #define LBER_USE_INDEFINITE_LEN        0x02
 #define LBER_TRANSLATE_STRINGS 0x04
 
+/* get/set options for BerElement */
+#define LBER_OPT_BER_OPTIONS   0x01
+#define LBER_OPT_BER_DEBUG             0x02
+
+#define LBER_OPT_DEBUG_LEVEL   LBER_OPT_BER_DEBUG
+#define LBER_OPT_LOG_PRINT_FN  0x8001
+
+typedef void (*BER_LOG_PRINT_FN) LDAP_P(( char *buf ));
+
+/* LBER Sockbuf options */ 
+#define LBER_TO_FILE           0x01    /* to a file referenced by sb_fd   */
+#define LBER_TO_FILE_ONLY      0x02    /* only write to file, not network */
+#define LBER_MAX_INCOMING_SIZE 0x04    /* impose limit on incoming stuff  */
+#define LBER_NO_READ_AHEAD     0x08    /* read only as much as requested  */
+
+/* get/set options for Sockbuf */
+#define LBER_OPT_SOCKBUF_DESC          0x1000
+#define LBER_OPT_SOCKBUF_OPTIONS       0x1001
+#define LBER_OPT_SOCKBUF_DEBUG         0x1002
+
+/* on/off values */
+#define LBER_OPT_ON            ((void *) 1)
+#define LBER_OPT_OFF   ((void *) 0)
+
+#define LBER_OPT_SUCCESS       0
+#define LBER_OPT_ERROR         (-1)
+
 typedef struct berelement BerElement;
 #define NULLBER        ((BerElement *) 0)
 
 typedef struct sockbuf Sockbuf;
-#define READBUFSIZ     8192
 
 typedef struct seqorset Seqorset;
 #define NULLSEQORSET ((Seqorset *) 0)
@@ -92,16 +114,16 @@ struct berval {
        char            *bv_val;
 };
 
-#ifdef LDAP_DEBUG
-extern int lber_debug;
-#endif
-
 /*
  * in bprint.c:
  */
 LDAP_F void ber_print_error LDAP_P(( char *data ));
 LDAP_F void ber_bprint LDAP_P(( char *data, int len ));
-#define lber_bprint(d,l)       ber_bprint((d),(l))
+#define lber_bprint(d,l)       ber_bprint((d),(l))
+
+LDAP_F void ber_dump LDAP_P(( BerElement *ber, int inout ));
+LDAP_F void ber_sos_dump LDAP_P(( Seqorset *sos ));
+
 
 /*
  * in decode.c:
@@ -147,7 +169,6 @@ 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 ));
 LDAP_F int ber_printf LDAP_P(( BerElement *ber, char *fmt, ... ));
-LDAP_F int ber_fatten LDAP_P(( BerElement *ber, struct berval **bvPtr));
 /*
  * in io.c:
  */
@@ -156,24 +177,39 @@ 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 void ber_clear 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_w_nullc LDAP_P(( BerElement *ber, int options ));
 LDAP_F void ber_reset LDAP_P(( BerElement *ber, int was_writing ));
 
 /*
- * LDAPv3 routines (not yet implemented)
+ * LBER draft-ietf-ldapext-ldap-c-api-01 routines
  */
 LDAP_F BerElement *ber_init LDAP_P(( struct berval *bv ));
 LDAP_F int ber_flatten LDAP_P(( BerElement *ber, struct berval **bvPtr ));
 
+/*
+ * LBER ber accessor functions
+ */
+LDAP_F int
+lber_get_option LDAP_P((void *item, int option, void *outvalue));
+
+LDAP_F int
+lber_set_option LDAP_P((void *item, int option, void *invalue));
+
+/*
+ * LBER Sockbuf functions
+ */
+LDAP_F Sockbuf *lber_pvt_sk_alloc LDAP_P((void));
+LDAP_F Sockbuf *lber_pvt_sb_alloc_fd LDAP_P((int fd));
+LDAP_F void lber_pvt_sb_free LDAP_P((Sockbuf *sb));
+
 LDAP_END_DECL
 
 #endif /* _LBER_H */