Initiate each load-testing connection with a fresh peer config
This commit is contained in:
@@ -198,7 +198,7 @@ static job_requeue_t initiate(FILE *stream)
|
|||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
peer_cfg_t *peer_cfg;
|
peer_cfg_t *peer_cfg;
|
||||||
child_cfg_t *child_cfg;
|
child_cfg_t *child_cfg;
|
||||||
u_int i, count;
|
u_int i, count, failed = 0;
|
||||||
char buf[16] = "";
|
char buf[16] = "";
|
||||||
|
|
||||||
fflush(stream);
|
fflush(stream);
|
||||||
@@ -211,20 +211,6 @@ static job_requeue_t initiate(FILE *stream)
|
|||||||
return JOB_REQUEUE_NONE;
|
return JOB_REQUEUE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
peer_cfg = charon->backends->get_peer_cfg_by_name(charon->backends,
|
|
||||||
"load-test");
|
|
||||||
if (!peer_cfg)
|
|
||||||
{
|
|
||||||
return JOB_REQUEUE_NONE;
|
|
||||||
}
|
|
||||||
enumerator = peer_cfg->create_child_cfg_enumerator(peer_cfg);
|
|
||||||
if (!enumerator->enumerate(enumerator, &child_cfg))
|
|
||||||
{
|
|
||||||
enumerator->destroy(enumerator);
|
|
||||||
return JOB_REQUEUE_NONE;
|
|
||||||
}
|
|
||||||
enumerator->destroy(enumerator);
|
|
||||||
|
|
||||||
INIT(listener,
|
INIT(listener,
|
||||||
.listener = {
|
.listener = {
|
||||||
.ike_state_change = _ike_state_change,
|
.ike_state_change = _ike_state_change,
|
||||||
@@ -240,9 +226,28 @@ static job_requeue_t initiate(FILE *stream)
|
|||||||
|
|
||||||
for (i = 0; i < count; i++)
|
for (i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
|
peer_cfg = charon->backends->get_peer_cfg_by_name(charon->backends,
|
||||||
|
"load-test");
|
||||||
|
if (!peer_cfg)
|
||||||
|
{
|
||||||
|
failed++;
|
||||||
|
fprintf(stream, "!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
enumerator = peer_cfg->create_child_cfg_enumerator(peer_cfg);
|
||||||
|
if (!enumerator->enumerate(enumerator, &child_cfg))
|
||||||
|
{
|
||||||
|
enumerator->destroy(enumerator);
|
||||||
|
peer_cfg->destroy(peer_cfg);
|
||||||
|
failed++;
|
||||||
|
fprintf(stream, "!");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
enumerator->destroy(enumerator);
|
||||||
|
|
||||||
switch (charon->controller->initiate(charon->controller,
|
switch (charon->controller->initiate(charon->controller,
|
||||||
peer_cfg->get_ref(peer_cfg), child_cfg->get_ref(child_cfg),
|
peer_cfg, child_cfg->get_ref(child_cfg),
|
||||||
(void*)initiate_cb, listener, 0))
|
(void*)initiate_cb, listener, 0))
|
||||||
{
|
{
|
||||||
case NEED_MORE:
|
case NEED_MORE:
|
||||||
/* Callback returns FALSE once it got track of this IKE_SA.
|
/* Callback returns FALSE once it got track of this IKE_SA.
|
||||||
@@ -258,7 +263,7 @@ static job_requeue_t initiate(FILE *stream)
|
|||||||
}
|
}
|
||||||
|
|
||||||
listener->mutex->lock(listener->mutex);
|
listener->mutex->lock(listener->mutex);
|
||||||
while (listener->completed->get_count(listener->completed) < count)
|
while (listener->completed->get_count(listener->completed) < count - failed)
|
||||||
{
|
{
|
||||||
listener->condvar->wait(listener->condvar, listener->mutex);
|
listener->condvar->wait(listener->condvar, listener->mutex);
|
||||||
}
|
}
|
||||||
@@ -272,7 +277,6 @@ static job_requeue_t initiate(FILE *stream)
|
|||||||
listener->condvar->destroy(listener->condvar);
|
listener->condvar->destroy(listener->condvar);
|
||||||
free(listener);
|
free(listener);
|
||||||
|
|
||||||
peer_cfg->destroy(peer_cfg);
|
|
||||||
fprintf(stream, "\n");
|
fprintf(stream, "\n");
|
||||||
|
|
||||||
return JOB_REQUEUE_NONE;
|
return JOB_REQUEUE_NONE;
|
||||||
|
|||||||
Reference in New Issue
Block a user