diff options
author | Martin Schwenke <martin@meltin.net> | 2019-06-22 05:53:15 +1000 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2019-07-05 05:03:23 +0000 |
commit | 010c1d77cd7e192b1fff39b7b91fccbdbbf4a786 (patch) | |
tree | b254307ce73b7f7eb5cc44defe5d851496745a61 /ctdb/server | |
parent | 888ecc74ed1a6617b8a0a4450b671cf5f6d88f8b (diff) | |
download | samba-010c1d77cd7e192b1fff39b7b91fccbdbbf4a786.tar.gz |
ctdb-daemon: Replace function ctdb_ip_to_nodeid() with ctdb_ip_to_pnn()
Node ID is a poorly defined concept, indicating the slot in the node
map where the IP address was found. This signed value also ends up
compared to num_nodes, which is unsigned, producing unwanted warnings.
Just return the PNN because this what both callers really want.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb/server')
-rw-r--r-- | ctdb/server/ctdb_daemon.c | 11 | ||||
-rw-r--r-- | ctdb/server/ctdb_server.c | 14 |
2 files changed, 10 insertions, 15 deletions
diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c index 6a4e42d8010..e9fbc29cb98 100644 --- a/ctdb/server/ctdb_daemon.c +++ b/ctdb/server/ctdb_daemon.c @@ -1374,21 +1374,18 @@ static void ctdb_initialise_vnn_map(struct ctdb_context *ctdb) static void ctdb_set_my_pnn(struct ctdb_context *ctdb) { - int nodeid; - if (ctdb->address == NULL) { ctdb_fatal(ctdb, "Can not determine PNN - node address is not set\n"); } - nodeid = ctdb_ip_to_nodeid(ctdb, ctdb->address); - if (nodeid == -1) { + ctdb->pnn = ctdb_ip_to_pnn(ctdb, ctdb->address); + if (ctdb->pnn == CTDB_UNKNOWN_PNN) { ctdb_fatal(ctdb, - "Can not determine PNN - node address not found in node list\n"); + "Can not determine PNN - unknown node address\n"); } - ctdb->pnn = ctdb->nodes[nodeid]->pnn; - DEBUG(DEBUG_NOTICE, ("PNN is %u\n", ctdb->pnn)); + D_NOTICE("PNN is %u\n", ctdb->pnn); } /* diff --git a/ctdb/server/ctdb_server.c b/ctdb/server/ctdb_server.c index eb11eb1f95c..dcd761a2961 100644 --- a/ctdb/server/ctdb_server.c +++ b/ctdb/server/ctdb_server.c @@ -45,24 +45,22 @@ int ctdb_set_transport(struct ctdb_context *ctdb, const char *transport) return 0; } -/* - Check whether an ip is a valid node ip - Returns the node id for this ip address or -1 -*/ -int ctdb_ip_to_nodeid(struct ctdb_context *ctdb, const ctdb_sock_addr *nodeip) +/* 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) { - int nodeid; + unsigned int nodeid; for (nodeid=0;nodeid<ctdb->num_nodes;nodeid++) { if (ctdb->nodes[nodeid]->flags & NODE_FLAGS_DELETED) { continue; } if (ctdb_same_ip(&ctdb->nodes[nodeid]->address, nodeip)) { - return nodeid; + return ctdb->nodes[nodeid]->pnn; } } - return -1; + return CTDB_UNKNOWN_PNN; } /* Load a nodes list file into a nodes array */ |