diff options
author | Martin Schwenke <martin@meltin.net> | 2015-12-01 16:12:03 +1100 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2016-02-12 08:40:21 +0100 |
commit | 2deba05c5865211c39a67247e4aabb9257125f58 (patch) | |
tree | 47f58cd1956f298d552d04d7a286c54ee0cc1f7e /ctdb/tests | |
parent | 53752bcf2960141c7b982a085866ef98a9f05ecb (diff) | |
download | samba-2deba05c5865211c39a67247e4aabb9257125f58.tar.gz |
ctdb-ipalloc: Remove most uses of struct ctdb_public_ip_list_old
Where possible, this should no longer be used.
struct ctdb_public_ip_list is a fixed size structure and introduces an
extra level of indirection. This means one level of indirection can
be dropped for known_public_ips and available_public_ips.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Fri Feb 12 08:40:21 CET 2016 on sn-devel-144
Diffstat (limited to 'ctdb/tests')
-rw-r--r-- | ctdb/tests/src/ctdb_takeover_tests.c | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/ctdb/tests/src/ctdb_takeover_tests.c b/ctdb/tests/src/ctdb_takeover_tests.c index bbd004e6859..a6c61cf0fb2 100644 --- a/ctdb/tests/src/ctdb_takeover_tests.c +++ b/ctdb/tests/src/ctdb_takeover_tests.c @@ -109,29 +109,25 @@ static bool read_ctdb_public_ip_info(TALLOC_CTX *ctx , int numnodes, struct public_ip_list ** all_ips, - struct ctdb_public_ip_list_old *** known, - struct ctdb_public_ip_list_old *** avail) + struct ctdb_public_ip_list ** known, + struct ctdb_public_ip_list ** avail) { char line[1024]; ctdb_sock_addr addr; char *t, *tok; struct public_ip_list * ta; int pnn, numips, curr, n, i; - struct ctdb_public_ip_list_old * a; + struct ctdb_public_ip_list * a; struct public_ip_list *last = NULL; enum ctdb_runstate *runstate; runstate = get_runstate(ctx, numnodes); - *known = talloc_array_size(ctx, sizeof(struct ctdb_public_ip_list_old *), CTDB_TEST_MAX_NODES); - memset(*known, 0, - sizeof(struct ctdb_public_ip_list_old *) * CTDB_TEST_MAX_NODES); - - *avail = talloc_array_size(ctx, sizeof(struct ctdb_public_ip_list_old *), + *known = talloc_zero_array(ctx, struct ctdb_public_ip_list, + CTDB_TEST_MAX_NODES); + *avail = talloc_zero_array(ctx, struct ctdb_public_ip_list, CTDB_TEST_MAX_NODES); - memset(*avail, 0, - sizeof(struct ctdb_public_ip_list_old *) * CTDB_TEST_MAX_NODES); numips = 0; *all_ips = NULL; @@ -195,39 +191,36 @@ read_ctdb_public_ip_info(TALLOC_CTX *ctx , t = strtok(tok, ","); while (t != NULL) { n = (int) strtol(t, (char **) NULL, 10); - if ((*known)[n] == NULL) { + if ((*known)[n].num == 0) { /* Array size here has to be * CTDB_TEST_MAX_IPS because total * number of IPs isn't yet known */ - (*known)[n] = talloc_size(ctx, - offsetof(struct ctdb_public_ip_list_old, ips) + - CTDB_TEST_MAX_IPS * sizeof(struct ctdb_public_ip)); - (*known)[n]->num = 0; + (*known)[n].ip = talloc_zero_array( + *known, struct ctdb_public_ip, CTDB_TEST_MAX_IPS); } - curr = (*known)[n]->num; - (*known)[n]->ips[curr].pnn = pnn; - memcpy(&((*known)[n]->ips[curr].addr), + curr = (*known)[n].num; + (*known)[n].ip[curr].pnn = pnn; + memcpy(&((*known)[n].ip[curr].addr), &addr, sizeof(addr)); - (*known)[n]->num++; + (*known)[n].num++; t = strtok(NULL, ","); } } /* Build list of all allowed IPs */ - a = talloc_size(ctx, - offsetof(struct ctdb_public_ip_list_old, ips) + - numips * sizeof(struct ctdb_public_ip)); + a = talloc(ctx, struct ctdb_public_ip_list); + a->ip = talloc_zero_array(a, struct ctdb_public_ip, numips); a->num = numips; for (ta = *all_ips, i=0; ta != NULL && i < numips ; ta = ta->next, i++) { - a->ips[i].pnn = ta->pnn; - memcpy(&(a->ips[i].addr), &(ta->addr), sizeof(ta->addr)); + a->ip[i].pnn = ta->pnn; + memcpy(&(a->ip[i].addr), &(ta->addr), sizeof(ta->addr)); } /* Assign it to any nodes that don't have a list assigned */ for (n = 0; n < numnodes; n++) { - if ((*known)[n] == NULL) { - (*known)[n] = a; + if ((*known)[n].num == 0) { + (*known)[n] = *a; } if (runstate[n] == CTDB_RUNSTATE_RUNNING) { (*avail)[n] = (*known)[n]; @@ -238,17 +231,17 @@ read_ctdb_public_ip_info(TALLOC_CTX *ctx , } static void print_ctdb_available_ips(int numnodes, - struct ctdb_public_ip_list_old **avail) + struct ctdb_public_ip_list *avail) { int n, i; for (n = 0; n < numnodes; n++) { - if ((avail[n] != NULL) && (avail[n]->num > 0)) { + if (avail[n].num > 0) { printf("%d:", n); - for (i = 0; i < avail[n]->num; i++) { + for (i = 0; i < avail[n].num; i++) { printf("%s%s", (i == 0) ? " " : ", ", - ctdb_addr_to_str(&(avail[n]->ips[i].addr))); + ctdb_addr_to_str(&(avail[n].ip[i].addr))); } printf("\n"); } @@ -259,8 +252,8 @@ static void ctdb_test_read_ctdb_public_ip_info(const char nodestates[]) { int numnodes; struct public_ip_list *l; - struct ctdb_public_ip_list_old **known; - struct ctdb_public_ip_list_old **avail; + struct ctdb_public_ip_list *known; + struct ctdb_public_ip_list *avail; char *tok, *ns; TALLOC_CTX *tmp_ctx = talloc_new(NULL); @@ -437,8 +430,8 @@ static void ctdb_test_init(const char nodestates[], struct ipalloc_state **ipalloc_state, bool read_ips_for_multiple_nodes) { - struct ctdb_public_ip_list_old **known; - struct ctdb_public_ip_list_old **avail; + struct ctdb_public_ip_list *known; + struct ctdb_public_ip_list *avail; int i, numnodes; uint32_t nodeflags[CTDB_TEST_MAX_NODES]; char *tok, *ns, *t; |