printing the checklist, two bugfixes
This commit is contained in:
@@ -689,6 +689,24 @@ static status_t get_triggered_pair(check_list_t *checklist, endpoint_pair_t **pa
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prints all the pairs on a checklist
|
||||||
|
*/
|
||||||
|
static void print_checklist(check_list_t *checklist)
|
||||||
|
{
|
||||||
|
iterator_t *iterator;
|
||||||
|
endpoint_pair_t *current;
|
||||||
|
|
||||||
|
DBG1(DBG_IKE, "pairs on checklist %#B:", &checklist->connect_id);
|
||||||
|
iterator = checklist->pairs->create_iterator(checklist->pairs, TRUE);
|
||||||
|
while (iterator->iterate(iterator, (void**)¤t))
|
||||||
|
{
|
||||||
|
DBG1(DBG_IKE, " * %#H - %#H (%d)", current->local, current->remote,
|
||||||
|
current->priority);
|
||||||
|
}
|
||||||
|
iterator->destroy(iterator);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prunes identical pairs with lower priority from the list
|
* Prunes identical pairs with lower priority from the list
|
||||||
* Note: this function also numbers the remaining pairs serially
|
* Note: this function also numbers the remaining pairs serially
|
||||||
@@ -719,7 +737,7 @@ static void prune_pairs(linked_list_t *pairs)
|
|||||||
* order, and we iterate the list from the beginning, we are
|
* order, and we iterate the list from the beginning, we are
|
||||||
* sure that the priority of 'other' is lower than that of
|
* sure that the priority of 'other' is lower than that of
|
||||||
* 'current', remove it */
|
* 'current', remove it */
|
||||||
DBG1(DBG_IKE, "pruning endpoint pair %H - %H with priority %d",
|
DBG1(DBG_IKE, "pruning endpoint pair %#H - %#H with priority %d",
|
||||||
other->local, other->remote, other->priority);
|
other->local, other->remote, other->priority);
|
||||||
search->remove(search);
|
search->remove(search);
|
||||||
endpoint_pair_destroy(other);
|
endpoint_pair_destroy(other);
|
||||||
@@ -756,6 +774,8 @@ static void build_pairs(check_list_t *checklist)
|
|||||||
iterator_r->destroy(iterator_r);
|
iterator_r->destroy(iterator_r);
|
||||||
}
|
}
|
||||||
iterator_i->destroy(iterator_i);
|
iterator_i->destroy(iterator_i);
|
||||||
|
|
||||||
|
print_checklist(checklist);
|
||||||
|
|
||||||
prune_pairs(checklist->pairs);
|
prune_pairs(checklist->pairs);
|
||||||
}
|
}
|
||||||
@@ -1072,6 +1092,7 @@ static void send_check(private_connect_manager_t *this, check_list_t *checklist,
|
|||||||
{
|
{
|
||||||
DESTROY_IF(pair->packet);
|
DESTROY_IF(pair->packet);
|
||||||
pair->packet = packet;
|
pair->packet = packet;
|
||||||
|
pair->retransmitted = 0;
|
||||||
queue_retransmission(this, checklist, pair);
|
queue_retransmission(this, checklist, pair);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1088,10 +1109,11 @@ static void send_check(private_connect_manager_t *this, check_list_t *checklist,
|
|||||||
static void queue_triggered_check(private_connect_manager_t *this,
|
static void queue_triggered_check(private_connect_manager_t *this,
|
||||||
check_list_t *checklist, endpoint_pair_t *pair)
|
check_list_t *checklist, endpoint_pair_t *pair)
|
||||||
{
|
{
|
||||||
|
DBG2(DBG_IKE, "queueing triggered check for pair '%d'", pair->id);
|
||||||
pair->state = CHECK_WAITING;
|
pair->state = CHECK_WAITING;
|
||||||
checklist->triggered->insert_last(checklist->triggered, pair);
|
checklist->triggered->insert_last(checklist->triggered, pair);
|
||||||
|
|
||||||
if (checklist->sender)
|
if (!checklist->sender)
|
||||||
{
|
{
|
||||||
/* if the sender is not running we restart it */
|
/* if the sender is not running we restart it */
|
||||||
schedule_checks(this, checklist, ME_INTERVAL);
|
schedule_checks(this, checklist, ME_INTERVAL);
|
||||||
|
|||||||
Reference in New Issue
Block a user