summaryrefslogtreecommitdiff
path: root/source4/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'source4/cluster')
-rw-r--r--source4/cluster/cluster.c6
-rw-r--r--source4/cluster/cluster.h6
-rw-r--r--source4/cluster/cluster_private.h2
-rw-r--r--source4/cluster/ctdb/ctdb_cluster.c5
-rw-r--r--source4/cluster/local.c5
5 files changed, 14 insertions, 10 deletions
diff --git a/source4/cluster/cluster.c b/source4/cluster/cluster.c
index 6bac1dcbe5..cc61974cbd 100644
--- a/source4/cluster/cluster.c
+++ b/source4/cluster/cluster.c
@@ -47,12 +47,12 @@ static void cluster_init(void)
}
/*
- server a server_id for the local node
+ create a server_id for the local node
*/
-struct server_id cluster_id(uint32_t id)
+struct server_id cluster_id(uint64_t id, uint32_t id2)
{
cluster_init();
- return ops->cluster_id(ops, id);
+ return ops->cluster_id(ops, id, id2);
}
diff --git a/source4/cluster/cluster.h b/source4/cluster/cluster.h
index 7cd31282cc..7545757f2c 100644
--- a/source4/cluster/cluster.h
+++ b/source4/cluster/cluster.h
@@ -25,7 +25,9 @@
/*
test for same cluster id
*/
-#define cluster_id_equal(id1, id2) ((id1)->id == (id2)->id && (id1)->node == (id2)->node)
+#define cluster_id_equal(id_1, id_2) ((id_1)->id == (id_2)->id \
+ && (id_1)->id2 == (id_2)->id2 \
+ && (id_1)->node == (id_2)->node)
/*
test for same cluster node
@@ -36,7 +38,7 @@ struct messaging_context;
typedef void (*cluster_message_fn_t)(struct messaging_context *, DATA_BLOB);
/* prototypes */
-struct server_id cluster_id(uint32_t id);
+struct server_id cluster_id(uint64_t id, uint32_t id2);
const char *cluster_id_string(TALLOC_CTX *mem_ctx, struct server_id id);
struct tdb_wrap *cluster_tdb_tmp_open(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *dbname, int flags);
void *cluster_backend_handle(void);
diff --git a/source4/cluster/cluster_private.h b/source4/cluster/cluster_private.h
index 1c895b8640..79394b46db 100644
--- a/source4/cluster/cluster_private.h
+++ b/source4/cluster/cluster_private.h
@@ -23,7 +23,7 @@
#define _CLUSTER_PRIVATE_H_
struct cluster_ops {
- struct server_id (*cluster_id)(struct cluster_ops *ops, uint32_t id);
+ struct server_id (*cluster_id)(struct cluster_ops *ops, uint64_t id, uint32_t id2);
const char *(*cluster_id_string)(struct cluster_ops *ops,
TALLOC_CTX *, struct server_id );
struct tdb_wrap *(*cluster_tdb_tmp_open)(struct cluster_ops *,
diff --git a/source4/cluster/ctdb/ctdb_cluster.c b/source4/cluster/ctdb/ctdb_cluster.c
index 53df1e968e..ce295c4474 100644
--- a/source4/cluster/ctdb/ctdb_cluster.c
+++ b/source4/cluster/ctdb/ctdb_cluster.c
@@ -52,13 +52,14 @@ struct cluster_state {
/*
return a server_id for a ctdb node
*/
-static struct server_id ctdb_id(struct cluster_ops *ops, uint32_t id)
+static struct server_id ctdb_id(struct cluster_ops *ops, uint64_t id, uint32_t id2)
{
struct cluster_state *state = (struct cluster_state *)ops->private;
struct ctdb_context *ctdb = state->ctdb;
struct server_id server_id;
server_id.node = ctdb_get_vnn(ctdb);
server_id.id = id;
+ server_id.id2 = id2;
return server_id;
}
@@ -69,7 +70,7 @@ static struct server_id ctdb_id(struct cluster_ops *ops, uint32_t id)
static const char *ctdb_id_string(struct cluster_ops *ops,
TALLOC_CTX *mem_ctx, struct server_id id)
{
- return talloc_asprintf(mem_ctx, "%u.%u", id.node, id.id);
+ return talloc_asprintf(mem_ctx, "%u.%llu.%u", id.node, (unsigned long long)id.id, id.id2);
}
/*
diff --git a/source4/cluster/local.c b/source4/cluster/local.c
index 539e47d271..96636927f1 100644
--- a/source4/cluster/local.c
+++ b/source4/cluster/local.c
@@ -31,11 +31,12 @@
/*
server a server_id for the local node
*/
-static struct server_id local_id(struct cluster_ops *ops, uint32_t id)
+static struct server_id local_id(struct cluster_ops *ops, uint64_t id, uint32_t id2)
{
struct server_id server_id;
ZERO_STRUCT(server_id);
server_id.id = id;
+ server_id.id2 = id2;
return server_id;
}
@@ -46,7 +47,7 @@ static struct server_id local_id(struct cluster_ops *ops, uint32_t id)
static const char *local_id_string(struct cluster_ops *ops,
TALLOC_CTX *mem_ctx, struct server_id id)
{
- return talloc_asprintf(mem_ctx, "%u.%u", id.node, id.id);
+ return talloc_asprintf(mem_ctx, "%u.%llu.%u", id.node, (unsigned long long)id.id, id.id2);
}