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