OLD | NEW |
| (Empty) |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
4 /* | |
5 * pkix_pl_ldapdefaultclient.h | |
6 * | |
7 * LDAPDefaultClient Object Type Definition | |
8 * | |
9 */ | |
10 | |
11 #ifndef _PKIX_PL_LDAPDEFAULTCLIENT_H | |
12 #define _PKIX_PL_LDAPDEFAULTCLIENT_H | |
13 | |
14 #include "pkix_pl_ldapt.h" | |
15 #include "pkix_pl_common.h" | |
16 | |
17 #ifdef __cplusplus | |
18 extern "C" { | |
19 #endif | |
20 | |
21 /* | |
22 * At the time of this version, there are unresolved questions about the LDAP | |
23 * protocol. Although RFC1777 describes a BIND and UNBIND message, it is not | |
24 * clear whether they are appropriate to this application. We have tested only | |
25 * using servers that do not expect authentication, and that reject BIND | |
26 * messages. It is not clear what values might be appropriate for the bindname | |
27 * and authentication fields, which are currently implemented as char strings | |
28 * supplied by the caller. (If this changes, the API and possibly the templates | |
29 * will have to change.) Therefore the LDAPClient_Create API contains a | |
30 * BindAPI structure, a union, which will have to be revised and extended when | |
31 * this area of the protocol is better understood. | |
32 * | |
33 */ | |
34 | |
35 typedef enum { | |
36 CONNECT_PENDING, | |
37 CONNECTED, | |
38 BIND_PENDING, | |
39 BIND_RESPONSE, | |
40 BIND_RESPONSE_PENDING, | |
41 BOUND, | |
42 SEND_PENDING, | |
43 RECV, | |
44 RECV_PENDING, | |
45 RECV_INITIAL, | |
46 RECV_NONINITIAL, | |
47 ABANDON_PENDING | |
48 } LdapClientConnectStatus; | |
49 | |
50 struct PKIX_PL_LdapDefaultClientStruct { | |
51 PKIX_PL_LdapClient vtable; | |
52 LdapClientConnectStatus connectStatus; | |
53 PKIX_UInt32 messageID; | |
54 PKIX_PL_HashTable *cachePtr; | |
55 PKIX_PL_Socket *clientSocket; | |
56 PRPollDesc pollDesc; | |
57 void *callbackList; /* cast this to (PKIX_PL_Socket_Callback *) */ | |
58 LDAPBindAPI *bindAPI; | |
59 PLArenaPool *arena; | |
60 PRTime lastIO; | |
61 void *sendBuf; | |
62 PKIX_UInt32 bytesToWrite; | |
63 void *rcvBuf; | |
64 PKIX_UInt32 capacity; | |
65 void *currentInPtr; | |
66 PKIX_UInt32 currentBytesAvailable; | |
67 void *bindMsg; | |
68 PKIX_UInt32 bindMsgLen; | |
69 PKIX_List *entriesFound; | |
70 PKIX_PL_LdapRequest *currentRequest; | |
71 PKIX_PL_LdapResponse *currentResponse; | |
72 }; | |
73 | |
74 /* see source file for function documentation */ | |
75 | |
76 PKIX_Error *pkix_pl_LdapDefaultClient_RegisterSelf(void *plContext); | |
77 | |
78 #ifdef __cplusplus | |
79 } | |
80 #endif | |
81 | |
82 #endif /* _PKIX_PL_LDAPDEFAULTCLIENT_H */ | |
OLD | NEW |