tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pkix_pl_ldapdefaultclient.h (2498B)


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