lib: Pass parameters to ctdbd_init_connection()
authorVolker Lendecke <vl@samba.org>
Fri, 25 Sep 2015 23:09:23 +0000 (16:09 -0700)
committerJeremy Allison <jra@samba.org>
Fri, 2 Oct 2015 22:01:11 +0000 (00:01 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/include/ctdbd_conn.h
source3/lib/ctdbd_conn.c
source3/lib/dbwrap/dbwrap_ctdb.c

index 9f7ec9f44eb26e4fefd015ccb7ad39e67119931f..803d3d42114697575006fbc0fb2a973ac43a77c8 100644 (file)
@@ -63,7 +63,7 @@ NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
                                    void *private_data),
                     void *private_data);
 
-NTSTATUS ctdbd_traverse(uint32_t db_id,
+NTSTATUS ctdbd_traverse(struct ctdbd_connection *master, uint32_t db_id,
                        void (*fn)(TDB_DATA key, TDB_DATA data,
                                   void *private_data),
                        void *private_data);
index 8977e02fd1915f3459d7e910497307005a8cb667..1bb9125f69ffbc8e91f5e78defecf9a7a5a51440 100644 (file)
@@ -425,6 +425,7 @@ static int ctdbd_connection_destructor(struct ctdbd_connection *c)
  */
 
 static NTSTATUS ctdbd_init_connection(TALLOC_CTX *mem_ctx,
+                                     const char *sockname, int timeout,
                                      struct ctdbd_connection **pconn)
 {
        struct ctdbd_connection *conn;
@@ -436,14 +437,14 @@ static NTSTATUS ctdbd_init_connection(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       conn->sockname = talloc_strdup(conn, lp_ctdbd_socket());
+       conn->sockname = talloc_strdup(conn, sockname);
        if (conn->sockname == NULL) {
                DBG_ERR("%s: talloc failed\n", __func__);
                status = NT_STATUS_NO_MEMORY;
                goto fail;
        }
 
-       conn->timeout = lp_ctdb_timeout();
+       conn->timeout = timeout;
 
        if (conn->timeout == 0) {
                conn->timeout = -1;
@@ -499,7 +500,8 @@ NTSTATUS ctdbd_messaging_connection(TALLOC_CTX *mem_ctx,
         struct ctdbd_connection *conn;
        NTSTATUS status;
 
-       status = ctdbd_init_connection(mem_ctx, &conn);
+       status = ctdbd_init_connection(mem_ctx, lp_ctdbd_socket(),
+                                      lp_ctdb_timeout(), &conn);
 
        if (!NT_STATUS_IS_OK(status)) {
                return status;
@@ -1066,7 +1068,7 @@ NTSTATUS ctdbd_parse(struct ctdbd_connection *conn, uint32_t db_id,
   everything in-line.
 */
 
-NTSTATUS ctdbd_traverse(uint32_t db_id,
+NTSTATUS ctdbd_traverse(struct ctdbd_connection *master, uint32_t db_id,
                        void (*fn)(TDB_DATA key, TDB_DATA data,
                                   void *private_data),
                        void *private_data)
@@ -1079,7 +1081,8 @@ NTSTATUS ctdbd_traverse(uint32_t db_id,
        int cstatus;
 
        become_root();
-       status = ctdbd_init_connection(NULL, &conn);
+       status = ctdbd_init_connection(NULL, master->sockname, master->timeout,
+                                      &conn);
        unbecome_root();
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("ctdbd_init_connection failed: %s\n",
index 3b68338841e9a1de4dc7c600cec53613e102b69b..75dad427ac127491e409ea71be2c24a4d42c52c4 100644 (file)
@@ -1414,7 +1414,8 @@ static int db_ctdb_traverse(struct db_context *db,
                return ret;
        }
 
-       status = ctdbd_traverse(ctx->db_id, traverse_callback, &state);
+       status = ctdbd_traverse(messaging_ctdbd_connection(), ctx->db_id,
+                               traverse_callback, &state);
        if (!NT_STATUS_IS_OK(status)) {
                return -1;
        }
@@ -1503,7 +1504,8 @@ static int db_ctdb_traverse_read(struct db_context *db,
                return tdb_traverse_read(ctx->wtdb->tdb, traverse_persistent_callback_read, &state);
        }
 
-       status = ctdbd_traverse(ctx->db_id, traverse_read_callback, &state);
+       status = ctdbd_traverse(messaging_ctdbd_connection(), ctx->db_id,
+                               traverse_read_callback, &state);
        if (!NT_STATUS_IS_OK(status)) {
                return -1;
        }