1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

ctdb-daemon: Add function ctdb_ip_to_node()

This is the core logic from ctdb_ip_to_pnn(), so re-implement that
that function using ctdb_ip_to_node().

Something similar (ctdb_ip_to_nodeid()) was recently removed in commit
010c1d77cd because it wasn't required.
Now there is a use case.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14084

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
This commit is contained in:
Martin Schwenke 2019-08-08 16:20:44 +10:00 committed by Martin Schwenke
parent 5cb539d8ad
commit 3acb8e9d1c
2 changed files with 21 additions and 5 deletions

View File

@ -831,6 +831,8 @@ void ctdb_stop_recoverd(struct ctdb_context *ctdb);
int ctdb_set_transport(struct ctdb_context *ctdb, const char *transport);
struct ctdb_node *ctdb_ip_to_node(struct ctdb_context *ctdb,
const ctdb_sock_addr *nodeip);
uint32_t ctdb_ip_to_pnn(struct ctdb_context *ctdb,
const ctdb_sock_addr *nodeip);

View File

@ -45,9 +45,9 @@ int ctdb_set_transport(struct ctdb_context *ctdb, const char *transport)
return 0;
}
/* Return the PNN for nodeip, CTDB_UNKNOWN_PNN if nodeip is invalid */
uint32_t ctdb_ip_to_pnn(struct ctdb_context *ctdb,
const ctdb_sock_addr *nodeip)
/* Return the node structure for nodeip, NULL if nodeip is invalid */
struct ctdb_node *ctdb_ip_to_node(struct ctdb_context *ctdb,
const ctdb_sock_addr *nodeip)
{
unsigned int nodeid;
@ -56,11 +56,25 @@ uint32_t ctdb_ip_to_pnn(struct ctdb_context *ctdb,
continue;
}
if (ctdb_same_ip(&ctdb->nodes[nodeid]->address, nodeip)) {
return ctdb->nodes[nodeid]->pnn;
return ctdb->nodes[nodeid];
}
}
return CTDB_UNKNOWN_PNN;
return NULL;
}
/* Return the PNN for nodeip, CTDB_UNKNOWN_PNN if nodeip is invalid */
uint32_t ctdb_ip_to_pnn(struct ctdb_context *ctdb,
const ctdb_sock_addr *nodeip)
{
struct ctdb_node *node;
node = ctdb_ip_to_node(ctdb, nodeip);
if (node == NULL) {
return CTDB_UNKNOWN_PNN;
}
return node->pnn;
}
/* Load a nodes list file into a nodes array */