]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
Must use txns everywhere, otherwise it will deadlock
[openldap] / servers / slapd / slap.h
index dadd88d5c92db7cc444587eeb1c056e5d29f7468..a47d1bb54bc1adc1c14eca00a3cc4937c9f652c6 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2008 The OpenLDAP Foundation.
+ * Copyright 1998-2009 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -1607,6 +1607,7 @@ typedef struct slap_bindconf {
        char *sb_tls_cacertdir;
        char *sb_tls_reqcert;
        char *sb_tls_cipher_suite;
+       char *sb_tls_protocol_min;
 #ifdef HAVE_OPENSSL_CRL
        char *sb_tls_crlcheck;
 #endif
@@ -2370,6 +2371,7 @@ typedef struct PagedResultsState {
 
 struct slap_csn_entry {
        struct berval ce_csn;
+       int ce_sid;
        unsigned long ce_opid;
        unsigned long ce_connid;
 #define SLAP_CSN_PENDING       1
@@ -2801,14 +2803,17 @@ struct Connection {
        LDAP_STAILQ_HEAD(c_o, Operation) c_ops; /* list of operations being processed */
        LDAP_STAILQ_HEAD(c_po, Operation) c_pending_ops;        /* list of pending operations */
 
-       ldap_pvt_thread_mutex_t c_write_mutex;  /* only one pdu written at a time */
-       ldap_pvt_thread_cond_t  c_write_cv;             /* used to wait for sd write-ready*/
+       ldap_pvt_thread_mutex_t c_write1_mutex; /* only one pdu written at a time */
+       ldap_pvt_thread_cond_t  c_write1_cv;    /* only one pdu written at a time */
+       ldap_pvt_thread_mutex_t c_write2_mutex; /* used to wait for sd write-ready */
+       ldap_pvt_thread_cond_t  c_write2_cv;    /* used to wait for sd write-ready*/
 
        BerElement      *c_currentber;  /* ber we're attempting to read */
+       int                     c_writers;              /* number of writers waiting */
 
        char            c_sasl_bind_in_progress;        /* multi-op bind in progress */
+       char            c_writewaiter;  /* true if blocked on write */
 
-       char            c_writewaiter;  /* true if writer is waiting */
 
 #define        CONN_IS_TLS     1
 #define        CONN_IS_UDP     2
@@ -2883,7 +2888,7 @@ struct Connection {
 #define Statslog( level, fmt, connid, opid, arg1, arg2, arg3 ) \
        do { \
                if ( ldap_debug & (level) ) \
-                       fprintf( stderr, (fmt), (connid), (opid), (arg1), (arg2), (arg3) );\
+                       lutil_debug( ldap_debug, (level), (fmt), (connid), (opid), (arg1), (arg2), (arg3) );\
        } while (0)
 #define StatslogTest( level ) (ldap_debug & (level))
 #endif /* !LDAP_SYSLOG */