aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/attributes/mem_pool.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-07-27 09:54:27 +0200
committerMartin Willi <martin@revosec.ch>2010-07-27 09:54:27 +0200
commit45c992474cd4c204b77eaef9c5b38cc199cf8f31 (patch)
treec547afff77f83e9fbbffc8f5864b46abc46736de /src/libhydra/attributes/mem_pool.c
parent7eeb687d593ffecbe788bdb2ca3aa49ee779b3e6 (diff)
downloadstrongswan-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.c13
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;
}