summaryrefslogtreecommitdiffstats
path: root/ctdb/client/ctdb_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/client/ctdb_client.c')
-rw-r--r--ctdb/client/ctdb_client.c86
1 files changed, 5 insertions, 81 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c
index 74bfb59a77..d2cf0f69e3 100644
--- a/ctdb/client/ctdb_client.c
+++ b/ctdb/client/ctdb_client.c
@@ -3494,33 +3494,8 @@ uint32_t *list_of_active_nodes(struct ctdb_context *ctdb,
TALLOC_CTX *mem_ctx,
bool include_self)
{
- int i, j, num_nodes;
- uint32_t *nodes;
-
- for (i=num_nodes=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
- continue;
- }
- if (node_map->nodes[i].pnn == ctdb->pnn && !include_self) {
- continue;
- }
- num_nodes++;
- }
-
- nodes = talloc_array(mem_ctx, uint32_t, num_nodes);
- CTDB_NO_MEMORY_FATAL(ctdb, nodes);
-
- for (i=j=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
- continue;
- }
- if (node_map->nodes[i].pnn == ctdb->pnn && !include_self) {
- continue;
- }
- nodes[j++] = node_map->nodes[i].pnn;
- }
-
- return nodes;
+ return list_of_nodes(ctdb, node_map, mem_ctx, NODE_FLAGS_INACTIVE,
+ include_self ? -1 : ctdb->pnn);
}
uint32_t *list_of_active_nodes_except_pnn(struct ctdb_context *ctdb,
@@ -3528,33 +3503,7 @@ uint32_t *list_of_active_nodes_except_pnn(struct ctdb_context *ctdb,
TALLOC_CTX *mem_ctx,
uint32_t pnn)
{
- int i, j, num_nodes;
- uint32_t *nodes;
-
- for (i=num_nodes=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
- continue;
- }
- if (node_map->nodes[i].pnn == pnn) {
- continue;
- }
- num_nodes++;
- }
-
- nodes = talloc_array(mem_ctx, uint32_t, num_nodes);
- CTDB_NO_MEMORY_FATAL(ctdb, nodes);
-
- for (i=j=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_INACTIVE) {
- continue;
- }
- if (node_map->nodes[i].pnn == pnn) {
- continue;
- }
- nodes[j++] = node_map->nodes[i].pnn;
- }
-
- return nodes;
+ return list_of_nodes(ctdb, node_map, mem_ctx, NODE_FLAGS_INACTIVE, pnn);
}
uint32_t *list_of_connected_nodes(struct ctdb_context *ctdb,
@@ -3562,33 +3511,8 @@ uint32_t *list_of_connected_nodes(struct ctdb_context *ctdb,
TALLOC_CTX *mem_ctx,
bool include_self)
{
- int i, j, num_nodes;
- uint32_t *nodes;
-
- for (i=num_nodes=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_DISCONNECTED) {
- continue;
- }
- if (node_map->nodes[i].pnn == ctdb->pnn && !include_self) {
- continue;
- }
- num_nodes++;
- }
-
- nodes = talloc_array(mem_ctx, uint32_t, num_nodes);
- CTDB_NO_MEMORY_FATAL(ctdb, nodes);
-
- for (i=j=0;i<node_map->num;i++) {
- if (node_map->nodes[i].flags & NODE_FLAGS_DISCONNECTED) {
- continue;
- }
- if (node_map->nodes[i].pnn == ctdb->pnn && !include_self) {
- continue;
- }
- nodes[j++] = node_map->nodes[i].pnn;
- }
-
- return nodes;
+ return list_of_nodes(ctdb, node_map, mem_ctx, NODE_FLAGS_DISCONNECTED,
+ include_self ? -1 : ctdb->pnn);
}
/*