1/*	$NetBSD$	*/
2
3// OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPBindRequest.h,v 1.4.10.2 2008/04/14 23:09:26 quanah Exp
4/*
5 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
6 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
7 */
8
9#ifndef LDAP_BIND_REQUEST_H
10#define LDAP_BIND_REQUEST_H
11
12#include <LDAPRequest.h>
13#include <LDAPResult.h>
14#include <SaslInteractionHandler.h>
15
16class LDAPBindRequest : LDAPRequest {
17    private:
18        std::string m_dn;
19        std::string m_cred;
20        std::string m_mech;
21
22    public:
23        LDAPBindRequest( const LDAPBindRequest& req);
24        //just for simple authentication
25        LDAPBindRequest(const std::string&, const std::string& passwd,
26                LDAPAsynConnection *connect, const LDAPConstraints *cons,
27                bool isReferral=false);
28        virtual ~LDAPBindRequest();
29        virtual LDAPMessageQueue *sendRequest();
30};
31
32class LDAPSaslBindRequest : LDAPRequest
33{
34    public:
35        LDAPSaslBindRequest( const std::string& mech, const std::string& cred,
36        LDAPAsynConnection *connect, const LDAPConstraints *cons,
37                bool isReferral=false);
38        virtual LDAPMessageQueue *sendRequest();
39        virtual ~LDAPSaslBindRequest();
40
41    private:
42        std::string m_mech;
43        std::string m_cred;
44};
45
46class LDAPSaslInteractiveBind : LDAPRequest
47{
48    public:
49        LDAPSaslInteractiveBind( const std::string& mech, int flags,
50                SaslInteractionHandler *sih, LDAPAsynConnection *connect,
51                const LDAPConstraints *cons, bool isReferral=false);
52        virtual LDAPMessageQueue *sendRequest();
53        virtual LDAPMsg* getNextMessage() const;
54        virtual ~LDAPSaslInteractiveBind();
55
56    private:
57        std::string m_mech;
58        int m_flags;
59        SaslInteractionHandler *m_sih;
60        LDAPResult *m_res;
61};
62#endif //LDAP_BIND_REQUEST_H
63
64