}
struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
+ struct ctdbd_connection *conn,
const char *name,
int hash_size, int tdb_flags,
int open_flags, mode_t mode,
}
struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
+ struct ctdbd_connection *conn,
const char *name,
int hash_size, int tdb_flags,
int open_flags, mode_t mode,
db_ctdb->transaction = NULL;
db_ctdb->db = result;
-
- db_ctdb->conn = messaging_ctdbd_connection();
- if (db_ctdb->conn == NULL) {
- DEBUG(1, ("Could not connect to ctdb\n"));
- TALLOC_FREE(result);
- return NULL;
- }
+ db_ctdb->conn = conn;
ret = ctdbd_db_attach(db_ctdb->conn, name, &db_ctdb->db_id, tdb_flags);
if (ret != 0) {
#include "dbwrap/dbwrap_private.h"
struct db_context;
+struct ctdbd_connection;
struct db_context *db_open_ctdb(TALLOC_CTX *mem_ctx,
+ struct ctdbd_connection *conn,
const char *name,
int hash_size, int tdb_flags,
int open_flags, mode_t mode,
#include "lib/cluster_support.h"
#include "util_tdb.h"
#include "ctdbd_conn.h"
+#include "messages.h"
bool db_is_local(const char *name)
{
}
/* allow ctdb for individual databases to be disabled */
if (lp_parm_bool(-1, "ctdb", partname, True)) {
- result = db_open_ctdb(mem_ctx, partname, hash_size,
+ struct ctdbd_connection *conn;
+
+ conn = messaging_ctdbd_connection();
+ if (conn == NULL) {
+ DBG_WARNING("No ctdb connection\n");
+ errno = EIO;
+ return NULL;
+ }
+ result = db_open_ctdb(mem_ctx, conn, partname,
+ hash_size,
tdb_flags, open_flags, mode,
lock_order, dbwrap_flags);
if (result == NULL) {
#include "system/filesys.h"
#include "lib/dbwrap/dbwrap.h"
#include "lib/dbwrap/dbwrap_ctdb.h"
+#include "messages.h"
bool run_local_dbwrap_ctdb(int dummy)
{
- struct db_context *db;
+ struct db_context *db = NULL;
int res;
bool ret = false;
NTSTATUS status;
uint32_t val;
+ struct ctdbd_connection *conn;
- db = db_open_ctdb(talloc_tos(), "torture.tdb", 0, TDB_DEFAULT,
+ conn = messaging_ctdbd_connection();
+ if (conn == NULL) {
+ fprintf(stderr, "no ctdbd connection\n");
+ goto fail;
+ }
+
+ db = db_open_ctdb(talloc_tos(), conn, "torture.tdb", 0, TDB_DEFAULT,
O_RDWR, 0755, DBWRAP_LOCK_ORDER_1, DBWRAP_FLAG_NONE);
if (db == NULL) {
perror("db_open_ctdb failed");