diff --git a/CHANGELOG b/CHANGELOG index 1cf6374..0caae22 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +2023-12-25 + - 4.0.3 + - Fix session resumption bug introduced in 4.0.2. + 2023-12-19 - 4.0.2 - More strict RFC compliance. diff --git a/docs/conf.py b/docs/conf.py index 92bf1bf..884acce 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -26,7 +26,7 @@ author = u'LiteSpeed Technologies' # The short X.Y version version = u'4.0' # The full version, including alpha/beta/rc tags -release = u'4.0.2' +release = u'4.0.3' # -- General configuration --------------------------------------------------- diff --git a/include/lsquic.h b/include/lsquic.h index 6dcd979..45fbfc5 100644 --- a/include/lsquic.h +++ b/include/lsquic.h @@ -27,7 +27,7 @@ extern "C" { #define LSQUIC_MAJOR_VERSION 4 #define LSQUIC_MINOR_VERSION 0 -#define LSQUIC_PATCH_VERSION 2 +#define LSQUIC_PATCH_VERSION 3 /** * Engine flags: diff --git a/src/liblsquic/lsquic_full_conn_ietf.c b/src/liblsquic/lsquic_full_conn_ietf.c index cd9466b..04a2a03 100644 --- a/src/liblsquic/lsquic_full_conn_ietf.c +++ b/src/liblsquic/lsquic_full_conn_ietf.c @@ -7493,7 +7493,11 @@ process_regular_packet (struct ietf_full_conn *conn, conn->ifc_conn.cn_esf.i->esfi_set_iscid(conn->ifc_conn.cn_enc_session, packet_in); else if (pns == PNS_HSK) + { + if ((conn->ifc_flags & (IFC_SERVER | IFC_IGNORE_INIT)) == IFC_SERVER) + ignore_init(conn); lsquic_send_ctl_maybe_calc_rough_rtt(&conn->ifc_send_ctl, pns - 1); + } EV_LOG_PACKET_IN(LSQUIC_LOG_CONN_ID, packet_in); diff --git a/src/liblsquic/lsquic_mini_conn_ietf.c b/src/liblsquic/lsquic_mini_conn_ietf.c index 5881c79..3e08340 100644 --- a/src/liblsquic/lsquic_mini_conn_ietf.c +++ b/src/liblsquic/lsquic_mini_conn_ietf.c @@ -734,7 +734,7 @@ ietf_mini_conn_ci_hsk_done (struct lsquic_conn *lconn, { case LSQ_HSK_OK: case LSQ_HSK_RESUMED_OK: - conn->imc_flags |= IMC_HSK_OK | IMC_IGNORE_INIT; + conn->imc_flags |= IMC_HSK_OK; conn->imc_conn.cn_flags |= LSCONN_HANDSHAKE_DONE; LSQ_DEBUG("handshake OK"); break; diff --git a/src/liblsquic/lsquic_stream.c b/src/liblsquic/lsquic_stream.c index e7b5178..4c2dda5 100644 --- a/src/liblsquic/lsquic_stream.c +++ b/src/liblsquic/lsquic_stream.c @@ -2408,7 +2408,10 @@ lsquic_stream_dispatch_write_events (lsquic_stream_t *stream) unsigned short n_buffered; enum stream_q_flags q_flags; - LSQ_DEBUG("dispatch_write_events"); + LSQ_DEBUG("dispatch_write_events, sm_qflags: %d. stream_flags: %d, sm_bflags: %d, " + "max_send_off: %" PRIu64 ", tosend_off: %" PRIu64 ", sm_n_buffered: %u", + stream->sm_qflags, stream->stream_flags, stream->sm_bflags, + stream->max_send_off, stream->tosend_off, stream->sm_n_buffered); if (!(stream->sm_qflags & SMQF_WRITE_Q_FLAGS) || (stream->stream_flags & STREAM_FINISHED))