Fix sending of CERTREQ/CERT payloads in aggressive mode

This commit is contained in:
Martin Willi
2012-03-20 17:31:34 +01:00
parent ebc7bcb550
commit a347c1ac43
2 changed files with 12 additions and 2 deletions
@@ -286,9 +286,14 @@ METHOD(task_t, process_i, status_t,
} }
case AGGRESSIVE: case AGGRESSIVE:
{ {
if (!use_certs(this, message)) if (this->state == CR_SA)
{ {
return SUCCESS; if (!use_certs(this, message))
{
return SUCCESS;
}
this->state = CR_AUTH;
return NEED_MORE;
} }
return SUCCESS; return SUCCESS;
} }
@@ -426,6 +426,10 @@ METHOD(task_t, build_r, status_t,
switch (this->state) switch (this->state)
{ {
case CR_SA: case CR_SA:
if (this->send_req)
{
build_certreqs(this, message);
}
this->state = CR_AUTH; this->state = CR_AUTH;
return NEED_MORE; return NEED_MORE;
case CR_AUTH: case CR_AUTH:
@@ -474,6 +478,7 @@ METHOD(task_t, process_i, status_t,
} }
process_certreqs(this, message); process_certreqs(this, message);
process_certs(this, message); process_certs(this, message);
this->state = CR_AUTH;
return SUCCESS; return SUCCESS;
} }
default: default: