Release 2.23.1

- [BUGFIX] Regression introduced in 2.22.0: use correct number of
  PNSs for IETF mini conn during promotion.
This commit is contained in:
Dmitri Tikhonov 2020-10-13 12:28:31 -04:00
parent a3e1f0d1bb
commit f198a02df8
8 changed files with 26 additions and 9 deletions

View file

@ -19,6 +19,10 @@
#include <ws2ipdef.h>
#endif
#ifndef LSQUIC_TEST
#define LSQUIC_TEST 0
#endif
struct lsquic_conn;
struct lsquic_engine_public;
struct lsquic_packet_out;

View file

@ -1561,12 +1561,15 @@ lsquic_ietf_full_conn_server_new (struct lsquic_engine_public *enpub,
for (pns = 0; pns < IMICO_N_PNS; ++pns)
{
lsquic_imico_rechist_init(&mini_rechist, imc, pns);
if (0 != lsquic_rechist_copy_ranges(&conn->ifc_rechist[pns],
&mini_rechist, lsquic_imico_rechist_first,
lsquic_imico_rechist_next))
goto err2;
conn->ifc_rechist[pns].rh_largest_acked_received
if (pns < IMICO_N_PNS)
{
if (0 != lsquic_rechist_copy_ranges(&conn->ifc_rechist[pns],
&mini_rechist, lsquic_imico_rechist_first,
lsquic_imico_rechist_next))
goto err2;
conn->ifc_rechist[pns].rh_largest_acked_received
= imc->imc_largest_recvd[pns];
}
}
/* Mini connection sends out packets 0, 1, 2... and so on. It deletes
@ -1620,7 +1623,7 @@ lsquic_ietf_full_conn_server_new (struct lsquic_engine_public *enpub,
* to add packet renumbering logic to the mini conn.
*/
for (pns = 0; pns < N_PNS; ++pns)
for (pns = 0; pns < IMICO_N_PNS; ++pns)
for (i = 0; i < 4; ++i)
{
conn->ifc_ecn_counts_in[pns][i] = imc->imc_ecn_counts_in[pns][i];

View file

@ -11,6 +11,10 @@
#ifndef LSQUIC_HPI
#define LSQUIC_HPI 1
#ifndef LSQUIC_TEST
#define LSQUIC_TEST 0
#endif
struct lsquic_conn_public;
/* We add 1 to the urgency when we place them on hpi_streams. Critical

View file

@ -1616,6 +1616,7 @@ void
lsquic_imico_rechist_init (struct ietf_mini_rechist *rechist,
const struct ietf_mini_conn *conn, enum packnum_space pns)
{
assert(pns < IMICO_N_PNS);
rechist->conn = conn;
rechist->pns = pns;
if (conn->imc_flags & IMC_TRECHIST)

View file

@ -8,6 +8,9 @@
#ifndef LSQUIC_RECHIST_H
#define LSQUIC_RECHIST_H 1
#ifndef LSQUIC_TEST
#define LSQUIC_TEST 0
#endif
/* Structure is exposed to facilitate some manipulations in unit tests. */
struct rechist_elem {