From abce5abf34adf2f61ad27280bb77765e1030c216 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Fri, 4 May 2001 21:55:07 +0000 Subject: [PATCH] Quick sb_max_incoming hack, should be configurable (likely with differing anonymous vs authenticated values). --- servers/slapd/connection.c | 40 +++++++++++++++++++++++++------------- servers/slapd/slap.h | 1 + 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 9412979476..56c4b1bfc0 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -404,33 +404,39 @@ long connection_init( assert( c != NULL ); - if( c->c_struct_state == SLAP_C_UNINITIALIZED ) { + if( c->c_struct_state == SLAP_C_UNINITIALIZED ) { c->c_authmech = NULL; - c->c_dn = NULL; - c->c_cdn = NULL; + c->c_dn = NULL; + c->c_cdn = NULL; c->c_listener_url = NULL; c->c_peer_domain = NULL; - c->c_peer_name = NULL; - c->c_sock_name = NULL; + c->c_peer_name = NULL; + c->c_sock_name = NULL; - c->c_ops = NULL; - c->c_pending_ops = NULL; + c->c_ops = NULL; + c->c_pending_ops = NULL; c->c_sasl_bind_mech = NULL; c->c_sasl_context = NULL; c->c_sasl_extra = NULL; - c->c_sb = ber_sockbuf_alloc( ); + c->c_sb = ber_sockbuf_alloc( ); + + { + ber_len_t max = SLAP_MAX_INCOMING; + ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_SET_MAX_INCOMING, &max ); + } + c->c_currentber = NULL; - /* should check status of thread calls */ - ldap_pvt_thread_mutex_init( &c->c_mutex ); - ldap_pvt_thread_mutex_init( &c->c_write_mutex ); - ldap_pvt_thread_cond_init( &c->c_write_cv ); + /* should check status of thread calls */ + ldap_pvt_thread_mutex_init( &c->c_mutex ); + ldap_pvt_thread_mutex_init( &c->c_write_mutex ); + ldap_pvt_thread_cond_init( &c->c_write_cv ); - c->c_struct_state = SLAP_C_UNUSED; - } + c->c_struct_state = SLAP_C_UNUSED; + } ldap_pvt_thread_mutex_lock( &c->c_mutex ); @@ -625,8 +631,14 @@ connection_destroy( Connection *c ) } ber_sockbuf_free( c->c_sb ); + c->c_sb = ber_sockbuf_alloc( ); + { + ber_len_t max = SLAP_MAX_INCOMING; + ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_SET_MAX_INCOMING, &max ); + } + c->c_conn_state = SLAP_C_INVALID; c->c_struct_state = SLAP_C_UNUSED; } diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 5afd568472..7aab3ca522 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -58,6 +58,7 @@ LDAP_BEGIN_DECL #define MAXREMATCHES 10 +#define SLAP_MAX_INCOMING (1<<18 - 1) #define SLAP_MAX_WORKER_THREADS 32 -- 2.39.5