]> git.sur5r.net Git - openldap/blob - servers/ldapd/proto-ldapd.h
Fix memory leak if duplicate attr name in at_insert
[openldap] / servers / ldapd / proto-ldapd.h
1 /* $OpenLDAP$ */
2 #ifndef _PROTO_LDAPD_H
3 #define _PROTO_LDAPD_H
4
5 #include <ldap_cdefs.h>
6
7 /*
8  * abandon.c
9  */
10
11 int do_abandon LDAP_P(( struct conn *dsaconn, BerElement *ber, int msgid ));
12
13 /*
14  * add.c
15  */
16
17 int do_add LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
18 void add_result LDAP_P(( Sockbuf *sb, struct msg *m ));
19
20 /*
21  * association.c
22  */
23
24 struct conn *conn_dup LDAP_P(( struct conn *cn ));
25 int conn_init LDAP_P(( void ));
26 void conn_free LDAP_P(( struct conn *conn ));
27 void conn_del LDAP_P(( struct conn *conn ));
28 void conn_setfds LDAP_P(( fd_set *fds ));
29 void conn_badfds LDAP_P(( void ));
30 struct conn *conn_getfd LDAP_P(( fd_set *fds ));
31 void conn_add LDAP_P(( struct conn *new ));
32 struct conn *conn_find LDAP_P(( struct conn *c ));
33 void conn_close LDAP_P(( void ));
34 int isclosed LDAP_P(( int ad ));
35
36 /*
37  * bind.c
38  */
39
40 int do_bind LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber, int *bound ));
41 int do_bind_real LDAP_P(( struct conn *dsaconn, int *bound, char **matched ));
42
43 /*
44  * certificate.c
45  */
46
47 int ldap_certif_print LDAP_P(( PS ps, struct certificate *parm, int format ));
48 void ldap_print_algid LDAP_P(( PS ps, struct alg_id *parm, int format ));
49 struct certificate *ldap_str2cert LDAP_P(( char *str ));
50 void ldap_str2alg LDAP_P(( char *str, struct alg_id *alg ));
51 void certif_init LDAP_P(( void ));
52
53 /*
54  * compare.c
55  */
56
57 struct ds_compare_result;
58 int do_compare LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
59 void compare_result LDAP_P(( Sockbuf *sb, struct msg *m,
60                              struct ds_compare_result *cr ));
61
62 /*
63  * delete.c
64  */
65
66 int do_delete LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
67 void delete_result LDAP_P(( Sockbuf *sb, struct msg *m ));
68
69 /*
70  * error.c
71  */
72
73 void print_error LDAP_P(( struct DSError *e ));
74 int x500err2ldaperr LDAP_P(( struct DSError *e, char **matched ));
75
76 /*
77  * kerberos.c
78  */
79
80 struct ds_bind_arg;
81 int kerberosv4_ldap_auth LDAP_P(( char *cred, long len ));
82 int kerberosv4_bindarg   LDAP_P(( struct ds_bind_arg *ba, DN dn, char *cred,
83                                   long len, u_long *nonce ));
84 int kerberos_check_mutual LDAP_P(( struct ds_bind_arg *res, u_long nonce ));
85
86 /*
87  * main.c
88  */
89
90 RETSIGTYPE log_and_exit LDAP_P(( int exitcode )) LDAP_GCCATTR((noreturn));
91
92 /*
93  * message.c
94  */
95
96 struct msg *add_msg LDAP_P(( int msgid, int msgtype, BerElement *ber,
97         struct conn *dsaconn, int udp, struct sockaddr *clientaddr ));
98 struct msg *get_msg LDAP_P(( int uniqid ));
99 int del_msg LDAP_P(( struct msg *m ));
100 void send_msg LDAP_P(( struct conn *conn, Sockbuf *clientsb, int err, char *str ));
101 struct msg * get_cldap_msg LDAP_P(( int msgid, int msgtype, struct sockaddr *fromaddr ));
102
103 /*
104  * modify.c
105  */
106
107 struct ds_read_result;
108 int do_modify LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
109 int do_modify2 LDAP_P((Sockbuf *sb, struct msg *m, struct ds_read_result *rr));
110 Attr_Sequence get_as LDAP_P(( Sockbuf *clientsb, unsigned long op, struct msg *m,
111                               char *type, struct berval **bvals ));
112 void modify_result LDAP_P(( Sockbuf *sb, struct msg *m ));
113 void modlist_free LDAP_P(( LDAPModList *mods ));
114
115 /*
116  * modrdn.c
117  */
118
119 int do_modrdn LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
120 void modrdn_result  LDAP_P((Sockbuf *sb, struct msg *m));
121
122 /*
123  * request.c
124  */
125
126 void client_request LDAP_P(( Sockbuf *clientsb, struct conn *dsaconn, int  udp ));
127 int do_request LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber,
128         int *bound ));
129 int initiate_dap_operation LDAP_P(( int op, struct msg *m, void *arg ));
130 #ifdef LDAP_DEBUG
131 int trace_ber LDAP_P(( int tag, int len, char *ber,
132                        FILE *trace_file, int prepend, int read_pdu ));
133 #endif
134
135 /*
136  * result.c
137  */
138
139 void dsa_response LDAP_P(( struct conn *dsaconn, Sockbuf *clientsb ));
140 int send_ldap_msgresult LDAP_P(( Sockbuf *sb, unsigned long tag, struct msg *m,
141         int err, char *matched, char *text ));
142 int send_ldap_result LDAP_P(( Sockbuf *sb, unsigned long tag, int msgid, int err,
143         char *matched, char *text ));
144
145 /*
146  * search.c
147  */
148
149 struct ds_search_result;
150 int do_search LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber ));
151 void search_result LDAP_P(( Sockbuf *sb, struct msg *m,
152                             struct ds_search_result *sr ));
153
154
155 /*
156  * syntax.c
157  */
158
159 void get_syntaxes LDAP_P(( void ));
160 int dn_print_real LDAP_P(( PS ps, DN dn, int format));
161 void ldap_dn_print LDAP_P(( PS ps, DN dn, DN base, int format));
162 int encode_dn LDAP_P(( BerElement *ber, DN dn, DN base));
163 int encode_attrs LDAP_P(( BerElement *ber, Attr_Sequence as ));
164 AttributeValue bv_octet2AttrV LDAP_P(( struct berval *bv ));
165 AttributeValue bv_asn2AttrV LDAP_P(( struct berval *bv ));
166 AttributeValue ldap_strdn2AttrV LDAP_P(( char *dnstr ));
167 DN ldap_str2dn LDAP_P(( char *str ));
168 RDN ldap_str2rdn LDAP_P(( char *rdnstr ));
169 AttributeValue ldap_str_at2AttrV LDAP_P(( char *str, AttributeType type ));
170 AttributeValue ldap_str2AttrV LDAP_P(( char *value, short syntax ));
171
172 /*
173  * util.c
174  */
175
176 void bprint LDAP_P(( char *data, int len ));
177 void charlist_free LDAP_P(( char **cl ));
178 int get_ava LDAP_P(( BerElement *ber, AVA *tava ));
179 int chase_referral LDAP_P(( Sockbuf *clientsb, struct msg *m, struct DSError *err,
180         char **matched ));
181
182 #endif /* _proto_ldapd */