static Connection *connections = NULL;
static ldap_pvt_thread_mutex_t conn_nextid_mutex;
-static unsigned long conn_nextid = 0;
+static unsigned long conn_nextid = SLAPD_SYNC_SYNCCONN_OFFSET;
static const char conn_lost_str[] = "connection lost";
-/* structure state (protected by connections_mutex) */
-enum sc_struct_state {
- SLAP_C_UNINITIALIZED = 0, /* MUST BE ZERO (0) */
- SLAP_C_UNUSED,
- SLAP_C_USED,
- SLAP_C_PENDING
-};
-
-/* connection state (protected by c_mutex ) */
-enum sc_conn_state {
- SLAP_C_INVALID = 0, /* MUST BE ZERO (0) */
- SLAP_C_INACTIVE, /* zero threads */
- SLAP_C_CLOSING, /* closing */
- SLAP_C_ACTIVE, /* one or more threads */
- SLAP_C_BINDING, /* binding */
- SLAP_C_CLIENT /* outbound client conn */
-};
-
const char *
connection_state2str( int state )
{
c->c_connid, (int) s, c->c_tls_ssf, c->c_ssf, 0 );
slap_sasl_external( c, c->c_tls_ssf, &authid );
if ( authid.bv_val ) free( authid.bv_val );
- } else if ( rc == 1 ) { /* need to retry */
- slapd_set_read( s, 0 );
+ } else if ( rc == 1 && ber_sockbuf_ctrl( c->c_sb,
+ LBER_SB_OPT_NEEDS_WRITE, NULL )) { /* need to retry */
slapd_set_write( s, 1 );
connection_return( c );
return 0;