return -1;
}
}
-printfd(__FILE__, "Invalid phase or control number. Phase: %d. Control number: %d\n", iaUser->phase.GetPhase(), connAck->rnd);
+printfd(__FILE__, "Invalid phase or control number. Phase: %d. Control number: %d, expected: %d\n", iaUser->phase.GetPhase(), connAck->rnd, iaUser->rnd + 1);
if (iaSettings.LogProtocolErrors())
{
if (iaUser->phase.GetPhase() != 2)
return -1;
}
}
-printfd(__FILE__, "Invalid phase or control number. Phase: %d. Control number: %d\n", iaUser->phase.GetPhase(), connAck->rnd);
+printfd(__FILE__, "Invalid phase or control number. Phase: %d. Control number: %d, expected: %d\n", iaUser->phase.GetPhase(), connAck->rnd, iaUser->rnd + 1);
if (iaSettings.LogProtocolErrors())
{
if (iaUser->phase.GetPhase() != 2)
iaUser->rnd = static_cast<uint32_t>(random());
connSynAck6.rnd = iaUser->rnd;
+printfd(__FILE__, "Sending CONN_SYN_ACK with control number %d.\n", iaUser->rnd);
+
connSynAck6.userTimeOut = iaSettings.GetUserTimeout().GetSec();
connSynAck6.aliveDelay = iaSettings.GetUserDelay().GetSec();
iaUser->rnd = static_cast<uint32_t>(random());
connSynAck8.rnd = iaUser->rnd;
+printfd(__FILE__, "Sending CONN_SYN_ACK with control number %d.\n", iaUser->rnd);
+
connSynAck8.userTimeOut = iaSettings.GetUserTimeout().GetSec();
connSynAck8.aliveDelay = iaSettings.GetUserDelay().GetSec();
{
password = "*_EMPTY_PASSWORD_*";
tariffName = NO_TARIFF_NAME;
+tariff = tariffs->FindByName(tariffName);
ips = StrToIPS("*");
lastWriteStat = stgTime + random() % settings->GetStatWritePeriod();
lastWriteDetailedStat = stgTime;