mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-20 05:23:12 -07:00
parent
e8d15db8de
commit
8511a74c10
1 changed files with 15 additions and 12 deletions
|
@ -363,7 +363,7 @@ static ChiakiErrorCode senkusha_run_mtu_in_test(ChiakiSenkusha *senkusha, uint32
|
||||||
|
|
||||||
uint32_t cur = max;
|
uint32_t cur = max;
|
||||||
uint32_t request_id = 0;
|
uint32_t request_id = 0;
|
||||||
while(max > min)
|
while((max - min) > 1)
|
||||||
{
|
{
|
||||||
bool success = false;
|
bool success = false;
|
||||||
for(uint32_t attempt=0; attempt<retries; attempt++)
|
for(uint32_t attempt=0; attempt<retries; attempt++)
|
||||||
|
@ -410,14 +410,14 @@ static ChiakiErrorCode senkusha_run_mtu_in_test(ChiakiSenkusha *senkusha, uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
if(success)
|
if(success)
|
||||||
min = cur + 1;
|
min = cur;
|
||||||
else
|
else
|
||||||
max = cur - 1;
|
max = cur;
|
||||||
cur = min + (max - min) / 2;
|
cur = min + (max - min) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHIAKI_LOGI(senkusha->log, "Senkusha determined inbound MTU %u", (unsigned int)max);
|
CHIAKI_LOGI(senkusha->log, "Senkusha determined inbound MTU %u", (unsigned int)min);
|
||||||
*mtu = max;
|
*mtu = min;
|
||||||
|
|
||||||
return CHIAKI_ERR_SUCCESS;
|
return CHIAKI_ERR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -481,7 +481,7 @@ static ChiakiErrorCode senkusha_run_mtu_out_test(ChiakiSenkusha *senkusha, uint3
|
||||||
err = CHIAKI_ERR_SUCCESS;
|
err = CHIAKI_ERR_SUCCESS;
|
||||||
|
|
||||||
uint32_t cur = mtu_in;
|
uint32_t cur = mtu_in;
|
||||||
while(max > min)
|
while((max - min) > 1)
|
||||||
{
|
{
|
||||||
bool success = false;
|
bool success = false;
|
||||||
for(uint32_t attempt=0; attempt<retries; attempt++)
|
for(uint32_t attempt=0; attempt<retries; attempt++)
|
||||||
|
@ -520,10 +520,13 @@ static ChiakiErrorCode senkusha_run_mtu_out_test(ChiakiSenkusha *senkusha, uint3
|
||||||
if(err != CHIAKI_ERR_SUCCESS)
|
if(err != CHIAKI_ERR_SUCCESS)
|
||||||
{
|
{
|
||||||
CHIAKI_LOGE(senkusha->log, "Senkusha failed to send ping");
|
CHIAKI_LOGE(senkusha->log, "Senkusha failed to send ping");
|
||||||
goto beach;
|
err = CHIAKI_ERR_TIMEOUT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
err = chiaki_cond_timedwait_pred(&senkusha->state_cond, &senkusha->state_mutex, timeout_ms, state_finished_cond_check, senkusha);
|
||||||
}
|
}
|
||||||
|
|
||||||
err = chiaki_cond_timedwait_pred(&senkusha->state_cond, &senkusha->state_mutex, timeout_ms, state_finished_cond_check, senkusha);
|
|
||||||
assert(err == CHIAKI_ERR_SUCCESS || err == CHIAKI_ERR_TIMEOUT);
|
assert(err == CHIAKI_ERR_SUCCESS || err == CHIAKI_ERR_TIMEOUT);
|
||||||
|
|
||||||
if(!senkusha->state_finished)
|
if(!senkusha->state_finished)
|
||||||
|
@ -549,14 +552,14 @@ static ChiakiErrorCode senkusha_run_mtu_out_test(ChiakiSenkusha *senkusha, uint3
|
||||||
}
|
}
|
||||||
|
|
||||||
if(success)
|
if(success)
|
||||||
min = cur + 1;
|
min = cur;
|
||||||
else
|
else
|
||||||
max = cur - 1;
|
max = cur;
|
||||||
cur = min + (max - min) / 2;
|
cur = min + (max - min) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHIAKI_LOGI(senkusha->log, "Senkusha determined outbound MTU %u", (unsigned int)max);
|
CHIAKI_LOGI(senkusha->log, "Senkusha determined outbound MTU %u", (unsigned int)min);
|
||||||
*mtu = max;
|
*mtu = min;
|
||||||
|
|
||||||
CHIAKI_LOGI(senkusha->log, "Senkusha sending final Client MTU Command");
|
CHIAKI_LOGI(senkusha->log, "Senkusha sending final Client MTU Command");
|
||||||
client_mtu_cmd.id = 2;
|
client_mtu_cmd.id = 2;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue