Add an early return if there are no known IP addresses.
Also add an extra comment for clarification.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12254
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
bool ipalloc_can_host_ips(struct ipalloc_state *ipalloc_state)
{
int i;
+ bool have_ips = false;
for (i=0; i < ipalloc_state->num; i++) {
struct ctdb_public_ip_list *ips =
ipalloc_state->known_public_ips;
if (ips[i].num != 0) {
int j;
+ have_ips = true;
/* Succeed if an address is hosted on node i */
for (j=0; j < ips[i].num; j++) {
if (ips[i].ip[j].pnn == i) {
}
}
+ if (! have_ips) {
+ return false;
+ }
+
+ /* At this point there are known addresses but none are
+ * hosted. Need to check if cluster can now host some
+ * addresses.
+ */
for (i=0; i < ipalloc_state->num; i++) {
if (ipalloc_state->available_public_ips[i].num != 0) {
return true;