]> git.sur5r.net Git - openldap/blob - libraries/liblber/lber-int.h
81def4b97455d8efc3db2e87ca244a71af1f49f2
[openldap] / libraries / liblber / lber-int.h
1 /*
2  * Copyright (c) 1990 Regents of the University of Michigan.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms are permitted
6  * provided that this notice is preserved and that due credit is given
7  * to the University of Michigan at Ann Arbor. The name of the University
8  * may not be used to endorse or promote products derived from this
9  * software without specific prior written permission. This software
10  * is provided ``as is'' without express or implied warranty.
11  */
12
13 #ifndef _LBER_INT_H
14 #define _LBER_INT_H
15
16 #include "lber.h"
17 #include "ldap_log.h"
18
19 LDAP_BEGIN_DECL
20
21 #define LBER_ITEM_BERELEMENT 1
22 #define LBER_ITEM_SOCKBUF 2
23
24 extern int lber_int_debug;
25
26 struct berelement {
27         short           ber_item_type;  /* always LBER_ITEM_BERELEMENT */
28         short           ber_options;
29         int                     ber_debug;
30
31         int                     ber_usertag;
32
33         unsigned long   ber_tag;
34         unsigned long   ber_len;
35
36         char            *ber_buf;
37         char            *ber_ptr;
38         char            *ber_end;
39
40         struct seqorset *ber_sos;
41         char            *ber_rwptr;
42         BERTranslateProc ber_encode_translate_proc;
43         BERTranslateProc ber_decode_translate_proc;
44 };
45 #define NULLBER ((BerElement *) 0)
46
47 struct sockbuf {
48         short           sb_item_type;   /* always LBER_ITEM_SOCKBUF */
49         short           sb_options;     /* to support copying ber elements */
50         int                     sb_debug;
51
52         int                     sb_fd;
53 #ifndef MACOS
54         int             sb_sd;
55 #else /* MACOS */
56         void            *sb_sd;
57 #endif /* MACOS */
58
59         long            sb_max_incoming;
60
61         BerElement      sb_ber;
62
63         int                     sb_naddr;       /* > 0 implies using CLDAP (UDP) */
64         void            *sb_useaddr;    /* pointer to sockaddr to use next */
65         void            *sb_fromaddr;   /* pointer to message source sockaddr */
66         void            **sb_addrs;     /* actually an array of pointers to
67                                                 sockaddrs */
68 };
69 #define READBUFSIZ      8192
70
71 struct seqorset {
72         BerElement      *sos_ber;
73         unsigned long   sos_clen;
74         unsigned long   sos_tag;
75         char            *sos_first;
76         char            *sos_ptr;
77         struct seqorset *sos_next;
78 };
79 #define NULLSEQORSET    ((Seqorset *) 0)
80
81 /*
82  * bprint.c
83  */
84 LDAP_F int lber_log_printf LDAP_P((
85         int errlvl,
86         int loglvl,
87         char *fmt,
88         ... ));
89
90 LDAP_F int lber_log_bprint LDAP_P((
91         int errlvl,
92         int loglvl,
93         char *data,
94         int len ));
95
96 LDAP_F int lber_log_dump LDAP_P((
97         int errlvl,
98         int loglvl,
99         BerElement *ber,
100         int inout ));
101
102 LDAP_F int lber_log_sos_dump LDAP_P((
103         int errlvl,
104         int loglvl,
105         Seqorset *sos ));
106
107 #endif /* _LBER_INT_H */