Send empty CDATA batch if TNC client has no data to send
This commit is contained in:
@@ -646,28 +646,40 @@ METHOD(tls_t, build, status_t,
|
|||||||
|
|
||||||
if (this->batch_type == PB_BATCH_NONE)
|
if (this->batch_type == PB_BATCH_NONE)
|
||||||
{
|
{
|
||||||
if (this->is_server && state == PB_STATE_SERVER_WORKING)
|
if (this->is_server)
|
||||||
{
|
{
|
||||||
if (this->state_machine->get_empty_cdata(this->state_machine))
|
if (state == PB_STATE_SERVER_WORKING)
|
||||||
{
|
{
|
||||||
check_and_build_recommendation(this);
|
if (this->state_machine->get_empty_cdata(this->state_machine))
|
||||||
}
|
{
|
||||||
else
|
check_and_build_recommendation(this);
|
||||||
{
|
}
|
||||||
DBG2(DBG_TNC, "no recommendation available yet, "
|
else
|
||||||
"sending empty PB-TNC SDATA batch");
|
{
|
||||||
this->batch_type = PB_BATCH_SDATA;
|
DBG2(DBG_TNC, "no recommendation available yet, "
|
||||||
|
"sending empty PB-TNC SDATA batch");
|
||||||
|
this->batch_type = PB_BATCH_SDATA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/**
|
switch (state)
|
||||||
* In the DECIDED state and if no CRETRY is under way,
|
|
||||||
* a PB-TNC client replies with an empty CLOSE batch.
|
|
||||||
*/
|
|
||||||
if (state == PB_STATE_DECIDED)
|
|
||||||
{
|
{
|
||||||
this->batch_type = PB_BATCH_CLOSE;
|
case PB_STATE_CLIENT_WORKING:
|
||||||
|
DBG2(DBG_TNC, "no client data to send, "
|
||||||
|
"sending empty PB-TNC CDATA batch");
|
||||||
|
this->batch_type = PB_BATCH_CDATA;
|
||||||
|
break;
|
||||||
|
case PB_STATE_DECIDED:
|
||||||
|
/**
|
||||||
|
* In the DECIDED state and if no CRETRY is under way,
|
||||||
|
* a PB-TNC client replies with an empty CLOSE batch.
|
||||||
|
*/
|
||||||
|
this->batch_type = PB_BATCH_CLOSE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user