Lines Matching refs:POOL
612 case POOL:
615 parse_warn (cfile, "pool declared within pool.");
618 parse_warn (cfile, "pool declared outside of network");
633 parse_address_range (cfile, group, type, (struct pool *)0,
675 parse_warn (cfile, "pool6 declared within pool.");
1550 * \param[in] valid_from = pointers to the time values from the enclosing pool
1709 * \brief Parse a pool statement
1711 * Pool statements are used to group declarations and permit & deny information
1714 * Each pool may have a different set of permit or deny options.
1717 * \param[in] group = the group structure for this pool
1734 struct pool *pool, **p, *pp;
1739 pool = NULL;
1740 status = pool_allocate(&pool, MDL);
1742 log_fatal ("no memory for pool: %s",
1746 shared_network_reference(&pool->shared_network,
1750 shared_network_reference(&pool->shared_network,
1759 if (pool->shared_network == NULL ||
1760 !clone_group(&pool->group, pool->shared_network->group, MDL))
1761 log_fatal("can't clone pool group.");
1765 if (pool->shared_network->failover_peer)
1767 (&pool->failover_peer,
1768 pool->shared_network->failover_peer, MDL);
1772 pool_dereference(&pool, MDL);
1790 if (pool->failover_peer)
1792 (&pool->failover_peer, MDL);
1811 if (pool->failover_peer)
1813 (&pool->failover_peer, MDL);
1814 status = find_failover_peer(&pool->failover_peer,
1821 pool->failover_peer->pool_count++;
1829 pool, &lpchain);
1833 get_permit(cfile, &pool->permit_list, 1,
1834 &pool->valid_from, &pool->valid_until);
1839 get_permit(cfile, &pool->prohibit_list, 0,
1840 &pool->valid_from, &pool->valid_until);
1858 declaration = parse_statement(cfile, pool->group,
1865 /* See if there's already a pool into which we can merge this one. */
1866 for (pp = pool->shared_network->pools; pp; pp = pp->next) {
1867 if (pp->group->statements != pool->group->statements)
1870 if (pool->failover_peer != pp->failover_peer)
1874 pool->permit_list) ||
1875 !permit_list_match(pool->permit_list,
1878 pool->prohibit_list) ||
1879 !permit_list_match(pool->prohibit_list,
1884 do is fix up the leases, which all point to their pool. */
1886 pool_dereference(&lp->pool, MDL);
1887 pool_reference(&lp->pool, pp, MDL);
1894 pp->lease_count += pool->lease_count;
1900 /* If we didn't succeed in merging this pool into another, put
1903 p = &pool->shared_network->pools;
1906 pool_reference(p, pool, MDL);
1909 /* Don't allow a pool declaration with no addresses, since it is
1912 parse_warn(cfile, "Pool declaration with no address range.");
1913 log_error("Pool declarations must always contain at least");
1929 pool_dereference(&pool, MDL);
3662 else if (lease->pool && lease->pool->failover_peer)
3669 if (lease->pool && lease->pool->failover_peer)
3785 struct pool *inpool;
3796 struct pool *pool;
3844 log_error ("Be sure to place pool statement after %s",
3851 struct pool *last = (struct pool *)0;
3854 then look for a pool with an empty prohibit list and
3856 for (pool = share -> pools; pool; pool = pool -> next) {
3857 if ((!dynamic && !pool -> permit_list &&
3858 pool -> prohibit_list &&
3859 !pool -> prohibit_list -> next &&
3860 (pool -> prohibit_list -> type ==
3862 (dynamic && !pool -> prohibit_list &&
3863 pool -> permit_list &&
3864 !pool -> permit_list -> next &&
3865 (pool -> permit_list -> type ==
3869 last = pool;
3872 /* If we didn't get a pool, make one. */
3873 if (!pool) {
3875 status = pool_allocate (&pool, MDL);
3877 log_fatal ("no memory for ad-hoc pool: %s",
3887 pool -> permit_list = p;
3890 pool -> prohibit_list = p;
3894 pool_reference (&last -> next, pool, MDL);
3896 pool_reference (&share -> pools, pool, MDL);
3897 shared_network_reference (&pool -> shared_network,
3899 if (!clone_group (&pool -> group, share -> group, MDL))
3900 log_fatal ("no memory for anon pool group.");
3902 pool = (struct pool *)0;
3904 pool_reference (&pool, last, MDL);
3906 pool_reference (&pool, share -> pools, MDL);
3909 pool = (struct pool *)0;
3910 pool_reference (&pool, inpool, MDL);
3914 if (pool -> failover_peer && dynamic) {
3923 log_error ("pool declaration that also contains the \"no");
3939 new_address_range (cfile, low, high, subnet, pool, lpchain);
3940 pool_dereference (&pool, MDL);
3948 struct ipv6_pool *pool;
3954 * Create our pool.
3961 pool = NULL;
3962 if (ipv6_pool_allocate(&pool, type, &tmp_in6_addr,
3968 * Add to our global IPv6 pool set.
3970 if (add_ipv6_pool(pool) != ISC_R_SUCCESS) {
3975 * Link the pool to its network.
3977 pool->subnet = NULL;
3978 subnet_reference(&pool->subnet, subnet, MDL);
3979 pool->shared_network = NULL;
3980 shared_network_reference(&pool->shared_network,
3982 pool->ipv6_pond = NULL;
3983 ipv6_pond_reference(&pool->ipv6_pond, pond, MDL);
4010 * Record this pool in our array of pools for this shared network.
4012 ipv6_pool_reference(&pond->ipv6_pools[num_pools], pool, MDL);
4120 log_fatal ("no memory for anon pool group.");
4243 * the IPv6 pool.
4540 * Pool statements are used to group declarations and permit & deny information
4543 * Each pool may have a different set of permit or deny options.
4546 * \param[in] group = the group structure for this pool
4762 struct ipv6_pool *pool;
5121 /* find the pool this address is in */
5122 pool = NULL;
5123 if (find_ipv6_pool(&pool, D6O_IA_NA,
5127 log_error("No pool found for IA_NA address %s",
5133 if ((pool->ipv6_pond->use_eui_64) &&
5134 (!valid_for_eui_64_pool(pool, &ia->iaid_duid, IAID_LEN,
5136 log_error("Non EUI-64 lease in EUI-64 pool: %s"
5145 if (cleanup_lease6(ia_na_active, pool,
5161 add_lease6(pool, iaaddr, end_time);
5165 ipv6_pool_dereference(&pool, MDL);
5210 struct ipv6_pool *pool;
5569 /* find the pool this address is in */
5570 pool = NULL;
5571 if (find_ipv6_pool(&pool, D6O_IA_TA,
5575 log_error("No pool found for IA_TA address %s",
5582 if (cleanup_lease6(ia_ta_active, pool,
5598 add_lease6(pool, iaaddr, end_time);
5601 ipv6_pool_dereference(&pool, MDL);
5648 struct ipv6_pool *pool;
6007 /* Find the pool this address is in. We need to check prefix
6008 * lengths too in case the pool has been reconfigured. */
6009 pool = NULL;
6010 if ((find_ipv6_pool(&pool, D6O_IA_PD,
6012 (pool->units != iapref->plen)) {
6015 log_error("No pool found for prefix %s/%d", addr_buf,
6022 if (cleanup_lease6(ia_pd_active, pool,
6038 add_lease6(pool, iapref, end_time);
6041 ipv6_pool_dereference(&pool, MDL);