From e5320579a9443b6103182e17548b2662194f002a Mon Sep 17 00:00:00 2001 From: Evgeny Kurnevsky Date: Tue, 20 Nov 2018 19:44:51 +0300 Subject: Fix indices calculation for congestion control. --- toxcore/net_crypto.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'toxcore') 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) unsigned int pos = conn->last_sendqueue_counter % CONGESTION_QUEUE_ARRAY_SIZE; conn->last_sendqueue_size[pos] = num_packets_array(&conn->send_array); - ++conn->last_sendqueue_counter; long signed int sum = 0; - sum = (long signed int)conn->last_sendqueue_size[(pos) % CONGESTION_QUEUE_ARRAY_SIZE] - - (long signed int)conn->last_sendqueue_size[(pos - (CONGESTION_QUEUE_ARRAY_SIZE - 1)) % CONGESTION_QUEUE_ARRAY_SIZE]; + sum = (long signed int)conn->last_sendqueue_size[pos] - + (long signed int)conn->last_sendqueue_size[(pos + 1) % CONGESTION_QUEUE_ARRAY_SIZE]; unsigned int n_p_pos = conn->last_sendqueue_counter % CONGESTION_LAST_SENT_ARRAY_SIZE; conn->last_num_packets_sent[n_p_pos] = packets_sent; conn->last_num_packets_resent[n_p_pos] = packets_resent; + conn->last_sendqueue_counter = (conn->last_sendqueue_counter + 1) % + (CONGESTION_QUEUE_ARRAY_SIZE * CONGESTION_LAST_SENT_ARRAY_SIZE); + bool direct_connected = 0; crypto_connection_status(c, i, &direct_connected, nullptr); -- cgit v1.2.3