#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;
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) */
/* 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
#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
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
#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