]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/connection.c
Fix previous commit
[openldap] / servers / slapd / connection.c
index 799c4adf7b014d09b7fb48868c0478f83043969d..a252370a28cecf77a72894c3c39a6c8baef7daa8 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -417,7 +417,8 @@ long connection_init(
                c->c_dn.bv_len = 0;
                c->c_ndn.bv_val = NULL;
                c->c_ndn.bv_len = 0;
-               c->c_cdn = NULL;
+               c->c_cdn.bv_val = NULL;
+               c->c_cdn.bv_len = 0;
                c->c_groups = NULL;
 
                c->c_listener_url = NULL;
@@ -455,7 +456,7 @@ long connection_init(
        assert( c->c_authmech == NULL );
     assert(    c->c_dn.bv_val == NULL );
     assert(    c->c_ndn.bv_val == NULL );
-    assert(    c->c_cdn == NULL );
+    assert(    c->c_cdn.bv_val == NULL );
     assert( c->c_groups == NULL );
     assert( c->c_listener_url == NULL );
     assert( c->c_peer_domain == NULL );
@@ -504,6 +505,8 @@ long connection_init(
 #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 );
        } else
 #endif
        {
@@ -514,8 +517,6 @@ long connection_init(
        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_readahead,
-               LBER_SBIOD_LEVEL_PROVIDER, NULL );
 
 #ifdef LDAP_DEBUG
        ber_sockbuf_add_io( c->c_sb, &ber_sockbuf_io_debug,
@@ -591,10 +592,11 @@ void connection2anonymous( Connection *c )
     }
     c->c_ndn.bv_len = 0;
 
-       if(c->c_cdn != NULL) {
-               free(c->c_cdn);
-               c->c_cdn = NULL;
+       if(c->c_cdn.bv_val != NULL) {
+               free(c->c_cdn.bv_val);
+               c->c_cdn.bv_val = NULL;
        }
+       c->c_cdn.bv_len = 0;
 
        c->c_authc_backend = NULL;
        c->c_authz_backend = NULL;
@@ -1550,66 +1552,3 @@ int connection_write(ber_socket_t s)
        return 0;
 }
 
-
-/*
- * Create client side and server side connection structures, connected to
- * one another, for the front end to use for searches on arbitrary back ends.
- */
-
-int connection_internal_open( Connection **conn, LDAP **ldp, const char *id )
-{
-       int rc;
-       ber_socket_t fd[2] = {-1,-1};
-       Operation *op;
-
-       *conn=NULL;
-       *ldp=NULL;
-
-       rc = lutil_pair( fd );
-       if( rc == -1 ) {
-               return LDAP_OTHER;
-       }
-
-       rc = connection_init( fd[1], "INT", "localhost", 
-      "localhost:0", "localhost:00", 0, 256, id );
-       if( rc < 0 ) {
-               tcp_close( fd[0] );
-               tcp_close( fd[1] );
-               return LDAP_OTHER;
-       }
-       slapd_add_internal( fd[1] );
-
-       /* A search operation, number 0 */
-       op = slap_op_alloc( NULL, 0, LDAP_REQ_SEARCH, 0);
-       op->o_ndn.bv_val = ch_strdup( id );
-       op->o_ndn.bv_len = strlen( id );
-       op->o_protocol = LDAP_VERSION3;
-
-       (*conn) = connection_get( fd[1] );
-       LDAP_STAILQ_INSERT_HEAD( &(*conn)->c_ops, op, o_next);
-       (*conn)->c_conn_state = SLAP_C_ACTIVE;
-
-       /* Create the client side of the connection */
-       rc = ldap_open_internal_connection( ldp, &(fd[0]) );
-       if( rc != LDAP_SUCCESS ) {
-               tcp_close( fd[0] );
-               return LDAP_OTHER;
-       }
-
-       /* The connection_get() will have locked the connection's mutex */
-       ldap_pvt_thread_mutex_unlock(  &((*conn)->c_mutex) );
-
-       return LDAP_SUCCESS;
-}
-
-
-void connection_internal_close( Connection *conn )
-{
-       Operation *op = LDAP_STAILQ_FIRST(&conn->c_ops);
-
-       LDAP_STAILQ_REMOVE_HEAD(&conn->c_ops, o_next);
-       LDAP_STAILQ_NEXT(op, o_next) = NULL;
-       slap_op_free( op );
-       connection_closing( conn );
-       connection_close( conn );
-}