]> git.sur5r.net Git - openldap/commitdiff
More for prev commit (270ef33acf18dc13bfd07f8a8e66b446f80e7d27)
authorHoward Chu <hyc@openldap.org>
Tue, 24 Jan 2012 22:40:00 +0000 (14:40 -0800)
committerHoward Chu <hyc@openldap.org>
Tue, 24 Jan 2012 23:43:14 +0000 (15:43 -0800)
libraries/libldap/init.c
libraries/libldap/ldap-int.h

index 39292d249b51f2ba645127d9a7630d4470c8cdff..9d37e6493964468e7c2ee86cc5881a6d88764a2c 100644 (file)
 #include "lutil.h"
 
 struct ldapoptions ldap_int_global_options =
-       { LDAP_UNINITIALIZED, LDAP_DEBUG_NONE LDAP_LDO_MUTEX_NULLARG };  
+       { LDAP_UNINITIALIZED, LDAP_DEBUG_NONE
+               LDAP_LDO_NULLARG
+               LDAP_LDO_CONNECTIONLESS_NULLARG
+               LDAP_LDO_TLS_NULLARG
+               LDAP_LDO_SASL_NULLARG
+               LDAP_LDO_GSSAPI_NULLARG
+               LDAP_LDO_MUTEX_NULLARG };
 
 #define ATTR_NONE      0
 #define ATTR_BOOL      1
index 6b33bcdbc82f64efd991860ff85b31ac52848d5b..ac6c9e55da73f9735b86f0d69ee16fd032298a0c 100644 (file)
@@ -185,22 +185,59 @@ struct ldapoptions {
 #define LDAP_TRASHED_SESSION   0xFF
        int   ldo_debug;
 
+       ber_int_t               ldo_version;
+       ber_int_t               ldo_deref;
+       ber_int_t               ldo_timelimit;
+       ber_int_t               ldo_sizelimit;
+
+       /* per API call timeout */
+       struct timeval          ldo_tm_api;
+       struct timeval          ldo_tm_net;
+
+       LDAPURLDesc *ldo_defludp;
+       int             ldo_defport;
+       char*   ldo_defbase;
+       char*   ldo_defbinddn;  /* bind dn */
+
+       /*
+        * Per connection tcp-keepalive settings (Linux only,
+        * ignored where unsupported)
+        */
+       ber_int_t ldo_keepalive_idle;
+       ber_int_t ldo_keepalive_probes;
+       ber_int_t ldo_keepalive_interval;
+
+       int             ldo_refhoplimit;        /* limit on referral nesting */
+
+       /* LDAPv3 server and client controls */
+       LDAPControl     **ldo_sctrls;
+       LDAPControl **ldo_cctrls;
+
+       /* LDAP rebind callback function */
+       LDAP_REBIND_PROC *ldo_rebind_proc;
+       void *ldo_rebind_params;
+       LDAP_NEXTREF_PROC *ldo_nextref_proc;
+       void *ldo_nextref_params;
+       LDAP_URLLIST_PROC *ldo_urllist_proc;
+       void *ldo_urllist_params;
+
+       /* LDAP connection callback stack */
+       ldaplist *ldo_conn_cbs;
+
+       LDAP_BOOLEANS ldo_booleans;     /* boolean options */
+
+#define LDAP_LDO_NULLARG       ,0,0,0,0 ,{0},{0} ,0,0,0,0, 0,0,0,0, 0,0, 0,0,0,0,0,0, 0, 0
+
 #ifdef LDAP_CONNECTIONLESS
 #define        LDAP_IS_UDP(ld)         ((ld)->ld_options.ldo_is_udp)
        void*                   ldo_peer;       /* struct sockaddr* */
        char*                   ldo_cldapdn;
        int                     ldo_is_udp;
+#define        LDAP_LDO_CONNECTIONLESS_NULLARG ,0,0,0
+#else
+#define        LDAP_LDO_CONNECTIONLESS_NULLARG
 #endif
 
-       /* per API call timeout */
-       struct timeval          ldo_tm_api;
-       struct timeval          ldo_tm_net;
-
-       ber_int_t               ldo_version;
-       ber_int_t               ldo_deref;
-       ber_int_t               ldo_timelimit;
-       ber_int_t               ldo_sizelimit;
-
 #ifdef HAVE_TLS
        /* tls context */
        void            *ldo_tls_ctx;
@@ -219,15 +256,11 @@ struct ldapoptions {
        int                     ldo_tls_mode;
        int                     ldo_tls_require_cert;
        int                     ldo_tls_impl;
-#ifdef HAVE_OPENSSL_CRL
        int                     ldo_tls_crlcheck;
+#define LDAP_LDO_TLS_NULLARG ,0,0,0,{0,0,0,0,0,0,0,0,0},0,0,0,0
+#else
+#define LDAP_LDO_TLS_NULLARG
 #endif
-#endif
-
-       LDAPURLDesc *ldo_defludp;
-       int             ldo_defport;
-       char*   ldo_defbase;
-       char*   ldo_defbinddn;  /* bind dn */
 
 #ifdef HAVE_CYRUS_SASL
        char*   ldo_def_sasl_mech;              /* SASL Mechanism(s) */
@@ -237,6 +270,9 @@ struct ldapoptions {
 
        /* SASL Security Properties */
        struct sasl_security_properties ldo_sasl_secprops;
+#define LDAP_LDO_SASL_NULLARG ,0,0,0,0,{0}
+#else
+#define LDAP_LDO_SASL_NULLARG
 #endif
 
 #ifdef HAVE_GSSAPI
@@ -246,35 +282,11 @@ struct ldapoptions {
 #define LDAP_GSSAPI_OPT_DO_NOT_FREE_GSS_CONTEXT        0x0001
 #define LDAP_GSSAPI_OPT_ALLOW_REMOTE_PRINCIPAL 0x0002
        unsigned ldo_gssapi_options;
+#define LDAP_LDO_GSSAPI_NULLARG ,0,0
+#else
+#define LDAP_LDO_GSSAPI_NULLARG
 #endif
 
-       /*
-        * Per connection tcp-keepalive settings (Linux only,
-        * ignored where unsupported)
-        */
-       ber_int_t ldo_keepalive_idle;
-       ber_int_t ldo_keepalive_probes;
-       ber_int_t ldo_keepalive_interval;
-
-       int             ldo_refhoplimit;        /* limit on referral nesting */
-
-       /* LDAPv3 server and client controls */
-       LDAPControl     **ldo_sctrls;
-       LDAPControl **ldo_cctrls;
-
-       /* LDAP rebind callback function */
-       LDAP_REBIND_PROC *ldo_rebind_proc;
-       void *ldo_rebind_params;
-       LDAP_NEXTREF_PROC *ldo_nextref_proc;
-       void *ldo_nextref_params;
-       LDAP_URLLIST_PROC *ldo_urllist_proc;
-       void *ldo_urllist_params;
-
-       /* LDAP connection callback stack */
-       ldaplist *ldo_conn_cbs;
-
-       LDAP_BOOLEANS ldo_booleans;     /* boolean options */
-
 #ifdef LDAP_R_COMPILE
        ldap_pvt_thread_mutex_t ldo_mutex;
 #define LDAP_LDO_MUTEX_NULLARG , LDAP_PVT_MUTEX_NULL
@@ -375,38 +387,6 @@ struct ldap_common {
        Sockbuf         *ldc_sb;        /* socket descriptor & buffer */
 #define ld_sb                  ldc->ldc_sb
 
-       /* protected by ldo_mutex */
-       struct ldapoptions ldc_options;
-#define ld_options             ldc->ldc_options
-
-#define ld_valid               ld_options.ldo_valid
-#define ld_debug               ld_options.ldo_debug
-
-#define ld_deref               ld_options.ldo_deref
-#define ld_timelimit           ld_options.ldo_timelimit
-#define ld_sizelimit           ld_options.ldo_sizelimit
-
-#define ld_defbinddn           ld_options.ldo_defbinddn
-#define ld_defbase             ld_options.ldo_defbase
-#define ld_defhost             ld_options.ldo_defhost
-#define ld_defport             ld_options.ldo_defport
-
-#define ld_refhoplimit         ld_options.ldo_refhoplimit
-
-#define ld_sctrls              ld_options.ldo_sctrls
-#define ld_cctrls              ld_options.ldo_cctrls
-#define ld_rebind_proc         ld_options.ldo_rebind_proc
-#define ld_rebind_params       ld_options.ldo_rebind_params
-#define ld_nextref_proc                ld_options.ldo_nextref_proc
-#define ld_nextref_params      ld_options.ldo_nextref_params
-#define ld_urllist_proc                ld_options.ldo_urllist_proc
-#define ld_urllist_params      ld_options.ldo_urllist_params
-
-#define ld_version             ld_options.ldo_version
-#ifdef LDAP_R_COMPILE
-#define        ld_ldopts_mutex         ld_options.ldo_mutex
-#endif
-
        unsigned short  ldc_lberoptions;
 #define        ld_lberoptions          ldc->ldc_lberoptions
 
@@ -443,20 +423,48 @@ struct ldap_common {
 #define        ld_selectinfo           ldc->ldc_selectinfo
 
        /* ldap_common refcnt - free only if 0 */
-#ifdef LDAP_R_COMPILE
-       ldap_pvt_thread_mutex_t ldc_mutex;
-#define        ld_ldcmutex             ldc->ldc_mutex
-#endif
        /* protected by ldc_mutex */
        unsigned int            ldc_refcnt;
 #define        ld_ldcrefcnt            ldc->ldc_refcnt
 
+       /* protected by ldo_mutex */
+       struct ldapoptions ldc_options;
+#define ld_options             ldc->ldc_options
+
+#define ld_valid               ld_options.ldo_valid
+#define ld_debug               ld_options.ldo_debug
+
+#define ld_deref               ld_options.ldo_deref
+#define ld_timelimit           ld_options.ldo_timelimit
+#define ld_sizelimit           ld_options.ldo_sizelimit
+
+#define ld_defbinddn           ld_options.ldo_defbinddn
+#define ld_defbase             ld_options.ldo_defbase
+#define ld_defhost             ld_options.ldo_defhost
+#define ld_defport             ld_options.ldo_defport
+
+#define ld_refhoplimit         ld_options.ldo_refhoplimit
+
+#define ld_sctrls              ld_options.ldo_sctrls
+#define ld_cctrls              ld_options.ldo_cctrls
+#define ld_rebind_proc         ld_options.ldo_rebind_proc
+#define ld_rebind_params       ld_options.ldo_rebind_params
+#define ld_nextref_proc                ld_options.ldo_nextref_proc
+#define ld_nextref_params      ld_options.ldo_nextref_params
+#define ld_urllist_proc                ld_options.ldo_urllist_proc
+#define ld_urllist_params      ld_options.ldo_urllist_params
+
+#define ld_version             ld_options.ldo_version
+
 #ifdef LDAP_R_COMPILE
+       ldap_pvt_thread_mutex_t ldc_mutex;
        ldap_pvt_thread_mutex_t ldc_msgid_mutex;
        ldap_pvt_thread_mutex_t ldc_conn_mutex;
        ldap_pvt_thread_mutex_t ldc_req_mutex;
        ldap_pvt_thread_mutex_t ldc_res_mutex;
        ldap_pvt_thread_mutex_t ldc_abandon_mutex;
+#define        ld_ldopts_mutex         ld_options.ldo_mutex
+#define        ld_ldcmutex             ldc->ldc_mutex
 #define        ld_msgid_mutex          ldc->ldc_msgid_mutex
 #define        ld_conn_mutex           ldc->ldc_conn_mutex
 #define        ld_req_mutex            ldc->ldc_req_mutex