X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fconnection.c;h=241c6003915b825b4968eb7072889b5389b3e1f6;hb=9ba829436e33d42f918f377a7b636869f7a9c371;hp=04cc49eaefa8608ff2313910057381029e470e82;hpb=925714ceeff035c596ad3d3c899ff631986c6757;p=openldap diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 04cc49eaef..241c600391 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -139,7 +139,6 @@ int connections_destroy(void) ber_sockbuf_free( connections[i].c_sb ); ldap_pvt_thread_mutex_destroy( &connections[i].c_mutex ); ldap_pvt_thread_mutex_destroy( &connections[i].c_write_mutex ); - ldap_pvt_thread_mutex_destroy( &connections[i].c_sasl_bindmutex ); ldap_pvt_thread_cond_destroy( &connections[i].c_write_cv ); } } @@ -451,7 +450,6 @@ long connection_init( /* 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_mutex_init( &c->c_sasl_bindmutex ); ldap_pvt_thread_cond_init( &c->c_write_cv ); c->c_struct_state = SLAP_C_UNUSED; @@ -503,26 +501,25 @@ long connection_init( #ifdef LDAP_CONNECTIONLESS c->c_is_udp = 0; - if (tls_udp_option == 2) - { + if( tls_udp_option == 2 ) { c->c_is_udp = 1; #ifdef LDAP_DEBUG - ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_debug, - LBER_SBIOD_LEVEL_PROVIDER, (void*)"udp_" ); + ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_debug, + LBER_SBIOD_LEVEL_PROVIDER, (void*)"udp_" ); #endif - ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_udp, - LBER_SBIOD_LEVEL_PROVIDER, (void *)&s ); - ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_readahead, - LBER_SBIOD_LEVEL_PROVIDER, NULL ); + ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_udp, + LBER_SBIOD_LEVEL_PROVIDER, (void *)&s ); + ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_readahead, + LBER_SBIOD_LEVEL_PROVIDER, NULL ); } else #endif { #ifdef LDAP_DEBUG - ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_debug, - LBER_SBIOD_LEVEL_PROVIDER, (void*)"tcp_" ); + ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_debug, + LBER_SBIOD_LEVEL_PROVIDER, (void*)"tcp_" ); #endif - ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_tcp, - LBER_SBIOD_LEVEL_PROVIDER, (void *)&s ); + ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_tcp, + LBER_SBIOD_LEVEL_PROVIDER, (void *)&s ); } #ifdef LDAP_DEBUG @@ -1309,8 +1306,9 @@ connection_input( char *cdn = NULL; #endif - if ( conn->c_currentber == NULL && (conn->c_currentber = ber_alloc()) - == NULL ) { + if ( conn->c_currentber == NULL && + ( conn->c_currentber = ber_alloc()) == NULL ) + { #ifdef NEW_LOGGING LDAP_LOG( CONNECTION, ERR, "connection_input: conn %lu ber_alloc failed.\n", @@ -1324,8 +1322,7 @@ connection_input( errno = 0; #ifdef LDAP_CONNECTIONLESS - if (conn->c_is_udp) - { + if ( conn->c_is_udp ) { char peername[sizeof("IP=255.255.255.255:65336")]; len = ber_int_sb_read(conn->c_sb, &peeraddr, sizeof(struct sockaddr)); @@ -1398,12 +1395,12 @@ connection_input( } #ifdef LDAP_CONNECTIONLESS - if (conn->c_is_udp) { - if (tag == LBER_OCTETSTRING) { + if( conn->c_is_udp ) { + if( tag == LBER_OCTETSTRING ) { ber_get_stringa( ber, &cdn ); tag = ber_peek_tag(ber, &len); } - if (tag != LDAP_REQ_ABANDON && tag != LDAP_REQ_SEARCH) { + if( tag != LDAP_REQ_ABANDON && tag != LDAP_REQ_SEARCH ) { #ifdef NEW_LOGGING LDAP_LOG( CONNECTION, ERR, "connection_input: conn %lu invalid req for UDP 0x%lx.\n", @@ -1424,17 +1421,17 @@ connection_input( op = slap_op_alloc( ber, msgid, tag, conn->c_n_ops_received++ ); + op->o_conn = conn; op->vrFilter = NULL; - op->o_pagedresults_state = conn->c_pagedresults_state; - #ifdef LDAP_CONNECTIONLESS op->o_peeraddr = peeraddr; - if (cdn) { + if (cdn ) { ber_str2bv( cdn, 0, 1, &op->o_dn ); op->o_protocol = LDAP_VERSION2; } #endif + if ( conn->c_conn_state == SLAP_C_BINDING || conn->c_conn_state == SLAP_C_CLOSING ) {