Add connection_fake_init()

This commit is contained in:
Howard Chu 2004-03-17 19:33:13 +00:00
parent 829bc9969d
commit 2821d0bdd6
3 changed files with 32 additions and 20 deletions

View File

@ -1167,15 +1167,16 @@ operations_error:
return NULL;
}
static const Listener dummy_list = { {0, ""}, {0, ""} };
int connection_client_setup(
ber_socket_t s,
Listener *l,
ldap_pvt_thread_start_t *func,
void *arg )
{
Connection *c;
if ( connection_init( s, l, "", "", CONN_IS_CLIENT, 0, NULL ) < 0 ) {
if ( connection_init( s, &dummy_list, "", "", CONN_IS_CLIENT, 0, NULL ) < 0 ) {
return -1;
}
@ -1858,3 +1859,26 @@ int connection_write(ber_socket_t s)
return 0;
}
void
connection_fake_init(
Connection *conn,
Operation *op,
void *ctx )
{
conn->c_connid = -1;
conn->c_send_ldap_result = slap_send_ldap_result;
conn->c_send_search_entry = slap_send_search_entry;
conn->c_send_search_reference = slap_send_search_reference;
conn->c_listener = (Listener *)&dummy_list;
conn->c_peer_name = slap_empty_bv;
/* set memory context */
op->o_tmpmemctx = sl_mem_create( SLMALLOC_SLAB_SIZE, ctx );
op->o_tmpmfuncs = &sl_mfuncs;
op->o_threadctx = ctx;
op->o_conn = conn;
op->o_connid = op->o_conn->c_connid;
op->o_time = slap_get_time();
}

View File

@ -340,7 +340,6 @@ LDAP_SLAPD_F (int) connections_timeout_idle LDAP_P((time_t));
LDAP_SLAPD_F (int) connection_client_setup LDAP_P((
ber_socket_t s,
Listener *l,
ldap_pvt_thread_start_t *func,
void *arg ));
LDAP_SLAPD_F (void) connection_client_enable LDAP_P(( ber_socket_t s ));
@ -372,6 +371,10 @@ LDAP_SLAPD_F (Connection *) connection_next LDAP_P((
LDAP_SLAPD_F (void) connection_done LDAP_P((Connection *));
LDAP_SLAPD_F (void) connection2anonymous LDAP_P((Connection *));
LDAP_SLAPD_F (void) connection_fake_init LDAP_P((
Connection *conn,
Operation *op,
void *threadctx ));
/*
* cr.c

View File

@ -165,8 +165,6 @@ ldap_sync_search(
return rc;
}
static const Listener dummy_list = { {0, ""}, {0, ""} };
static int
do_syncrep1(
Operation *op,
@ -809,25 +807,12 @@ do_syncrepl(
return NULL;
}
conn.c_connid = -1;
conn.c_send_ldap_result = slap_send_ldap_result;
conn.c_send_search_entry = slap_send_search_entry;
conn.c_send_search_reference = slap_send_search_reference;
conn.c_listener = (Listener *)&dummy_list;
conn.c_peer_name = slap_empty_bv;
/* set memory context */
op.o_tmpmemctx = sl_mem_create( SLMALLOC_SLAB_SIZE, ctx );
op.o_tmpmfuncs = &sl_mfuncs;
connection_fake_init( &conn, &op, ctx );
op.o_dn = si->si_updatedn;
op.o_ndn = si->si_updatedn;
op.o_time = slap_get_time();
op.o_threadctx = ctx;
op.o_managedsait = 1;
op.o_bd = si->si_be;
op.o_conn = &conn;
op.o_connid = op.o_conn->c_connid;
op.o_sync_state.ctxcsn = NULL;
op.o_sync_state.sid = -1;
@ -854,7 +839,7 @@ do_syncrepl(
*/
if ( rc == LDAP_SUCCESS ) {
if ( first ) {
rc = connection_client_setup( s, (Listener *)&dummy_list, do_syncrepl,
rc = connection_client_setup( s, do_syncrepl,
arg );
} else {
connection_client_enable( s );