| 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 |