lib/ippool: Add back-pointer from pool member to pool
This allows us to remove pool members without having to keep a pointer to the pool around. Change-Id: I9042eb85989c5451d7894678eca110dd19e78002
This commit is contained in:
parent
33520b43ec
commit
b513b951bd
|
@ -295,6 +295,7 @@ int ippool_new(struct ippool_t **this, const char *dyn, const char *stat,
|
|||
in46a_inc(&addr);
|
||||
|
||||
(*this)->member[i].inuse = 0;
|
||||
(*this)->member[i].pool = *this;
|
||||
|
||||
/* Insert into list of unused */
|
||||
(*this)->member[i].prev = (*this)->lastdyn;
|
||||
|
@ -315,6 +316,7 @@ int ippool_new(struct ippool_t **this, const char *dyn, const char *stat,
|
|||
struct in46_addr *i6al = &(*this)->member[i].addr;
|
||||
memset(i6al, 0, sizeof(*i6al));
|
||||
(*this)->member[i].inuse = 0;
|
||||
(*this)->member[i].pool = *this;
|
||||
|
||||
/* Insert into list of unused */
|
||||
(*this)->member[i].prev = (*this)->laststat;
|
||||
|
|
|
@ -56,6 +56,7 @@ struct ippool_t {
|
|||
|
||||
struct ippoolm_t {
|
||||
struct in46_addr addr; /* IP address of this member */
|
||||
struct ippool_t *pool; /* Pool to which we belong */
|
||||
int inuse; /* 0=available; 1= dynamic; 2 = static */
|
||||
struct ippoolm_t *nexthash; /* Linked list part of hash table */
|
||||
struct ippoolm_t *prev, *next; /* Linked list of free dynamic or static */
|
||||
|
|
Reference in New Issue