Ejemplo n.º 1
0
static ipset_iterator_t *
create_iterator(ip_set_t *set, gboolean desired_value,
                gboolean summarize)
{
    /*
     * First allocate the iterator itself.
     */

    ipset_iterator_t  *iterator;

    iterator = g_slice_new(ipset_iterator_t);
    iterator->finished = FALSE;
    iterator->assignment_iterator = NULL;
    iterator->desired_value = desired_value;
    iterator->summarize = summarize;

    /*
     * Then create the iterator that returns each BDD assignment.
     */

    g_d_debug("Iterating set");
    iterator->bdd_iterator = ipset_node_iterate(set->set_bdd);

    /*
     * Then drill down from the current BDD assignment, creating an
     * expanded assignment for it.
     */

    process_assignment(iterator);
    return iterator;
}
Ejemplo n.º 2
0
static struct ipset_iterator *
create_iterator(struct ip_set *set, bool desired_value, bool summarize)
{
    /* First allocate the iterator itself. */
    struct ipset_iterator  *iterator = cork_new(struct ipset_iterator);
    iterator->finished = false;
    iterator->assignment_iterator = NULL;
    iterator->desired_value = desired_value;
    iterator->summarize = summarize;

    /* Then create the iterator that returns each BDD assignment. */
    DEBUG("Iterating set");
    iterator->bdd_iterator = ipset_node_iterate(set->cache, set->set_bdd);

    /* Then drill down from the current BDD assignment, creating an
     * expanded assignment for it. */
    process_assignment(iterator);
    return iterator;
}