diff options
author | Evgeny Kurnevsky <kurnevsky@gmail.com> | 2018-11-20 19:44:51 +0300 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2019-01-03 11:13:27 +0000 |
commit | e5320579a9443b6103182e17548b2662194f002a (patch) | |
tree | d56de315bfff3d2de05404be5f8d5e7c153d71fe /toxcore | |
parent | 78bc9e7403cb812103722384402006b33bc53e79 (diff) |
Fix indices calculation for congestion control.
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/net_crypto.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/toxcore/net_crypto.c b/toxcore/net_crypto.c index 736b9c4a..3ace3bea 100644 --- a/toxcore/net_crypto.c +++ b/toxcore/net_crypto.c | |||
@@ -2529,16 +2529,18 @@ static void send_crypto_packets(Net_Crypto *c) | |||
2529 | 2529 | ||
2530 | unsigned int pos = conn->last_sendqueue_counter % CONGESTION_QUEUE_ARRAY_SIZE; | 2530 | unsigned int pos = conn->last_sendqueue_counter % CONGESTION_QUEUE_ARRAY_SIZE; |
2531 | conn->last_sendqueue_size[pos] = num_packets_array(&conn->send_array); | 2531 | conn->last_sendqueue_size[pos] = num_packets_array(&conn->send_array); |
2532 | ++conn->last_sendqueue_counter; | ||
2533 | 2532 | ||
2534 | long signed int sum = 0; | 2533 | long signed int sum = 0; |
2535 | sum = (long signed int)conn->last_sendqueue_size[(pos) % CONGESTION_QUEUE_ARRAY_SIZE] - | 2534 | sum = (long signed int)conn->last_sendqueue_size[pos] - |
2536 | (long signed int)conn->last_sendqueue_size[(pos - (CONGESTION_QUEUE_ARRAY_SIZE - 1)) % CONGESTION_QUEUE_ARRAY_SIZE]; | 2535 | (long signed int)conn->last_sendqueue_size[(pos + 1) % CONGESTION_QUEUE_ARRAY_SIZE]; |
2537 | 2536 | ||
2538 | unsigned int n_p_pos = conn->last_sendqueue_counter % CONGESTION_LAST_SENT_ARRAY_SIZE; | 2537 | unsigned int n_p_pos = conn->last_sendqueue_counter % CONGESTION_LAST_SENT_ARRAY_SIZE; |
2539 | conn->last_num_packets_sent[n_p_pos] = packets_sent; | 2538 | conn->last_num_packets_sent[n_p_pos] = packets_sent; |
2540 | conn->last_num_packets_resent[n_p_pos] = packets_resent; | 2539 | conn->last_num_packets_resent[n_p_pos] = packets_resent; |
2541 | 2540 | ||
2541 | conn->last_sendqueue_counter = (conn->last_sendqueue_counter + 1) % | ||
2542 | (CONGESTION_QUEUE_ARRAY_SIZE * CONGESTION_LAST_SENT_ARRAY_SIZE); | ||
2543 | |||
2542 | bool direct_connected = 0; | 2544 | bool direct_connected = 0; |
2543 | crypto_connection_status(c, i, &direct_connected, nullptr); | 2545 | crypto_connection_status(c, i, &direct_connected, nullptr); |
2544 | 2546 | ||