From 2821d0bdd69b255b6fce10f6d10225fdd6f6ebae Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Wed, 17 Mar 2004 19:33:13 +0000 Subject: [PATCH] Add connection_fake_init() --- servers/slapd/connection.c | 28 ++++++++++++++++++++++++++-- servers/slapd/proto-slap.h | 5 ++++- servers/slapd/syncrepl.c | 19 ++----------------- 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 0ce75ba9af..b25feb5d31 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -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(); +} diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index cbcd3faf70..2956c7ed70 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -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 diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index ea3da5f929..cb0a461adc 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -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 ); -- 2.39.5