summaryrefslogtreecommitdiff
path: root/toxcore
diff options
context:
space:
mode:
authorEvgeny Kurnevsky <kurnevsky@gmail.com>2018-11-20 19:44:51 +0300
committeriphydf <iphydf@users.noreply.github.com>2019-01-03 11:13:27 +0000
commite5320579a9443b6103182e17548b2662194f002a (patch)
treed56de315bfff3d2de05404be5f8d5e7c153d71fe /toxcore
parent78bc9e7403cb812103722384402006b33bc53e79 (diff)
Fix indices calculation for congestion control.
Diffstat (limited to 'toxcore')
-rw-r--r--toxcore/net_crypto.c8
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