diff options
author | Martin Willi <martin@revosec.ch> | 2010-07-27 09:54:27 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-07-27 09:54:27 +0200 |
commit | 45c992474cd4c204b77eaef9c5b38cc199cf8f31 (patch) | |
tree | c547afff77f83e9fbbffc8f5864b46abc46736de /src/libhydra/attributes/mem_pool.c | |
parent | 7eeb687d593ffecbe788bdb2ca3aa49ee779b3e6 (diff) | |
download | strongswan-45c992474cd4c204b77eaef9c5b38cc199cf8f31.tar.bz2 strongswan-45c992474cd4c204b77eaef9c5b38cc199cf8f31.tar.xz |
Mem pool does not support multiple leases for an identity
Diffstat (limited to 'src/libhydra/attributes/mem_pool.c')
-rw-r--r-- | src/libhydra/attributes/mem_pool.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libhydra/attributes/mem_pool.c b/src/libhydra/attributes/mem_pool.c index 65018e3a9..e1d69fd6b 100644 --- a/src/libhydra/attributes/mem_pool.c +++ b/src/libhydra/attributes/mem_pool.c @@ -225,9 +225,18 @@ METHOD(mem_pool_t, acquire_address, host_t*, /* check for a valid online lease, reassign */ offset = (uintptr_t)this->online->get(this->online, id); - if (offset && offset == host2offset(this, requested)) + if (offset) { - DBG1(DBG_CFG, "reassigning online lease to '%Y'", id); + if (offset == host2offset(this, requested)) + { + DBG1(DBG_CFG, "reassigning online lease to '%Y'", id); + } + else + { + DBG1(DBG_CFG, "'%Y' already has an online lease, " + "unable to assign address", id); + offset = 0; + } break; } |