*/
static NTSTATUS ctdbd_init_connection(TALLOC_CTX *mem_ctx,
+ const char *sockname, int timeout,
struct ctdbd_connection **pconn)
{
struct ctdbd_connection *conn;
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;
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;
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)
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",
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;
}
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;
}