]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/ldap-int.h
ITS#897 Internal connection that is closed on one end and about to
[openldap] / libraries / libldap / ldap-int.h
index 004d68468b16e8dcf46d54cfd4dd865d4baeb761..f2dcea3488e54bca41f438dec2b11b62f45a520e 100644 (file)
@@ -50,6 +50,9 @@
 #define Debug( level, fmt, arg1, arg2, arg3 ) \
        ldap_log_printf( NULL, (level), (fmt), (arg1), (arg2), (arg3) )
 
+#define LDAP_Debug( subsystem, level, fmt, arg1, arg2, arg3 )\
+       ldap_log_printf( NULL, (level), (fmt), (arg1), (arg2), (arg3) )
+
 #include "ldap.h"
 
 #include "ldap_pvt.h"
@@ -125,11 +128,16 @@ struct ldapoptions {
        LDAPURLDesc *ldo_defludp;
        int             ldo_defport;
        char*   ldo_defbase;
-       char*   ldo_defbinddn;  /* simple bind dn */
+       char*   ldo_defbinddn;  /* bind dn */
 
-#ifdef LDAP_CONNECTIONLESS
-       int             ldo_cldaptries; /* connectionless search retry count */
-       int             ldo_cldaptimeout;/* time between retries */
+#ifdef HAVE_CYRUS_SASL
+       char*   ldo_def_sasl_mech;              /* SASL Mechanism(s) */
+       char*   ldo_def_sasl_realm;             /* SASL realm */
+       char*   ldo_def_sasl_authcid;   /* SASL authentication identity */
+       char*   ldo_def_sasl_authzid;   /* SASL authorization identity */
+
+       /* SASL Security Properties */
+       struct sasl_security_properties ldo_sasl_secprops;
 #endif
 
        int             ldo_refhoplimit;        /* limit on referral nesting */
@@ -145,10 +153,6 @@ struct ldapoptions {
        /* tls context */
        void            *ldo_tls_ctx;
        int             ldo_tls_mode;
-#endif
-#ifdef HAVE_CYRUS_SASL
-       struct sasl_security_properties ldo_sasl_secprops;
-       LDAP_SASL_INTERACT_PROC *ldo_sasl_interact;
 #endif
        LDAP_BOOLEANS ldo_booleans;     /* boolean options */
 };
@@ -180,7 +184,9 @@ typedef struct ldap_conn {
 #define LDAP_CONNST_CONNECTING         2
 #define LDAP_CONNST_CONNECTED          3
        LDAPURLDesc             *lconn_server;
+#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND
        char                    *lconn_krbinstance;
+#endif
        struct ldap_conn        *lconn_next;
        BerElement              *lconn_ber;/* ber receiving on this conn. */
 } LDAPConn;
@@ -237,12 +243,6 @@ typedef struct ldapreqinfo {
        char            *ri_url;
 } LDAPreqinfo;
 
-/*
- * handy macro for checking if handle is connectionless
- */
-
-#define LDAP_IS_CLDAP(ld) ((ld)->ld_cldapnaddr>0)
-
 /*
  * structure representing an ldap connection
  */
@@ -264,8 +264,6 @@ struct ldap {
 #define ld_defhost             ld_options.ldo_defhost
 #define ld_defport             ld_options.ldo_defport
 
-#define ld_cldaptries  ld_options.ldo_cldaptries
-#define ld_cldaptimeout        ld_options.ldo_cldaptimeout
 #define ld_refhoplimit ld_options.ldo_refhoplimit
 
 #define ld_sctrls              ld_options.ldo_sctrls
@@ -294,11 +292,6 @@ struct ldap {
        ber_int_t               *ld_abandoned;  /* array of abandoned requests */
 
        LDAPCache       *ld_cache;      /* non-null if cache is initialized */
-       /* stuff used by connectionless searches. */
-
-       char            *ld_cldapdn;    /* DN used in connectionless search */
-       int             ld_cldapnaddr; /* number of addresses */
-       void            **ld_cldapaddrs;/* addresses to send request to */
 
        /* do not mess with the rest though */
 
@@ -376,12 +369,6 @@ LDAP_F (int) ldap_int_put_controls LDAP_P((
        LDAPControl *const *ctrls,
        BerElement *ber ));
 
-LDAP_F( int ) 
-ldap_int_create_control LDAP_P(( 
-       const char *requestOID, 
-       BerElement *ber, 
-       int iscritical,
-       LDAPControl **ctrlp ));
 
 /*
  * in dsparse.c
@@ -435,10 +422,10 @@ LDAP_F (int) ldap_is_write_ready( LDAP *ld, Sockbuf *sb );
 /*
  * in os-local.c
  */
-#ifdef LDAP_PF_UNIX 
-LDAP_F (int) ldap_connect_to_path( LDAP *ld, Sockbuf *sb, int proto,
+#ifdef LDAP_PF_LOCAL
+LDAP_F (int) ldap_connect_to_path( LDAP *ld, Sockbuf *sb,
        const char *path, int async );
-#endif /* LDAP_PF_UNIX */
+#endif /* LDAP_PF_LOCAL */
 
 /*
  * in request.c
@@ -456,15 +443,12 @@ LDAP_F (void) ldap_free_connection( LDAP *ld, LDAPConn *lc, int force, int unbin
 LDAP_F (void) ldap_dump_connection( LDAP *ld, LDAPConn *lconns, int all );
 LDAP_F (void) ldap_dump_requests_and_responses( LDAP *ld );
 LDAP_F (int) ldap_chase_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, int *hadrefp );
-LDAP_F (int) ldap_chase_v3referrals( LDAP *ld, LDAPRequest *lr, char **refs, char **referralsp, int *hadrefp );
+LDAP_F (int) ldap_chase_v3referrals( LDAP *ld, LDAPRequest *lr, char **refs, int sref, char **referralsp, int *hadrefp );
 LDAP_F (int) ldap_append_referral( LDAP *ld, char **referralsp, char *s );
 
 /*
  * in result.c:
  */
-#ifdef LDAP_CONNECTIONLESS
-LDAP_F (int) cldap_getmsg( LDAP *ld, struct timeval *timeout, BerElement *ber );
-#endif
 LDAP_F (char *) ldap_int_msgtype2str( ber_tag_t tag );
 
 /*
@@ -517,7 +501,8 @@ LDAP_F (int) ldap_url_parselist LDAP_P((
 
 LDAP_F (int) ldap_url_parsehosts LDAP_P((
        LDAPURLDesc **ludlist,
-       const char *hosts ));
+       const char *hosts,
+       int port ));
 
 LDAP_F (char *) ldap_url_list2hosts LDAP_P((
        LDAPURLDesc *ludlist ));
@@ -538,6 +523,9 @@ LDAP_F (int) ldap_int_sasl_open LDAP_P((
        const char* host, ber_len_t ssf ));
 LDAP_F (int) ldap_int_sasl_close LDAP_P(( LDAP *ld, LDAPConn *conn ));
 
+LDAP_F (int) ldap_int_sasl_external LDAP_P((
+       LDAP *ld, const char* authid, ber_len_t ssf ));
+
 LDAP_F (int) ldap_int_sasl_get_option LDAP_P(( LDAP *ld,
        int option, void *arg ));
 LDAP_F (int) ldap_int_sasl_set_option LDAP_P(( LDAP *ld,
@@ -546,8 +534,15 @@ LDAP_F (int) ldap_int_sasl_config LDAP_P(( struct ldapoptions *lo,
        int option, const char *arg ));
 
 LDAP_F (int) ldap_int_sasl_bind LDAP_P((
-       struct ldap *, LDAP_CONST char *,
-       const char *, LDAPControl **, LDAPControl ** ));
+       struct ldap *ld,
+       const char *,
+       const char *,
+       LDAPControl **, LDAPControl **,
+
+       /* should be passed in client controls */
+       unsigned flags,
+       LDAP_SASL_INTERACT_PROC *interact,
+       void *defaults ));
 
 /*
  * in tls.c