]> git.sur5r.net Git - openldap/commitdiff
Add connection_fake_init()
authorHoward Chu <hyc@openldap.org>
Wed, 17 Mar 2004 19:33:13 +0000 (19:33 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 17 Mar 2004 19:33:13 +0000 (19:33 +0000)
servers/slapd/connection.c
servers/slapd/proto-slap.h
servers/slapd/syncrepl.c

index 0ce75ba9af94e1a4939849a101a03973a1d513a0..b25feb5d31f65bce166391a992a5c330327afb6f 100644 (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();
+}
index cbcd3faf7083c9bcf5cf340a9761be47fb0d6daa..2956c7ed7071fb76111fca74576c186a96c1659e 100644 (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
index ea3da5f929513ec5e2990d86f6fd69234fc3e842..cb0a461adc4c00126cde391ee670cdeafcdf9b6e 100644 (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 );