diff options
author | Kozlov Dmitry <xeb@mail.ru> | 2011-08-28 22:36:56 +0400 |
---|---|---|
committer | Kozlov Dmitry <xeb@mail.ru> | 2011-08-28 22:36:56 +0400 |
commit | 3e9cb77429b07a0317c7f394c22cf5cb78b59136 (patch) | |
tree | 86b2da9dd443801b3eaf1712552fac4fbc1373ff /accel-pppd/ipdb.c | |
parent | 6459c6085f7324404717418448fa8c04ffd46c20 (diff) | |
download | accel-ppp-3e9cb77429b07a0317c7f394c22cf5cb78b59136.tar.gz accel-ppp-3e9cb77429b07a0317c7f394c22cf5cb78b59136.zip |
ipdb: implement delegation prefix allocation
Diffstat (limited to 'accel-pppd/ipdb.c')
-rw-r--r-- | accel-pppd/ipdb.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/accel-pppd/ipdb.c b/accel-pppd/ipdb.c index fccf9f44..f87d4788 100644 --- a/accel-pppd/ipdb.c +++ b/accel-pppd/ipdb.c @@ -49,6 +49,28 @@ void __export ipdb_put_ipv6(struct ppp_t *ppp, struct ipv6db_item_t *it) it->owner->put_ipv6(ppp, it); } +struct ipv6db_prefix_t __export *ipdb_get_ipv6_prefix(struct ppp_t *ppp) +{ + struct ipdb_t *ipdb; + struct ipv6db_prefix_t *it; + + list_for_each_entry(ipdb, &ipdb_handlers, entry) { + if (!ipdb->get_ipv6_prefix) + continue; + it = ipdb->get_ipv6_prefix(ppp); + if (it) + return it; + } + + return NULL; +} + +void __export ipdb_put_ipv6_prefix(struct ppp_t *ppp, struct ipv6db_prefix_t *it) +{ + if (it->owner->put_ipv6_prefix) + it->owner->put_ipv6_prefix(ppp, it); +} + void __export ipdb_register(struct ipdb_t *ipdb) { |