litespeedtech / litespeedtech/lsquic

ICSL value from server-side is never used.

Open
#459 2 comments 0 reactions 0 assignees View on GitHub
maybe stale
Dominant language
C
Stars
1.9k
Forks
397
Avg merge
2d 22h
Merged PRs (30d)
8

Description

Hi, it seems that ICSL value from SHLO `hs_ctx->icsl = get_tag_value_i32(val, len);` is never used.

`set_earliest_idle_alarm` always uses `conn->fc_settings->es_idle_conn_to` instead of referring to the negotiated ICSL value.

If the server does not send a close frame when closing the connection, this will cause the client to think that the connection is still available, but will not actually receive any data from sever side.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at set_earliest_idle_alarm and trace how hs_ctx->icsl is populated from the SHLO and how conn->fc_settings->es_idle_conn_to is selected. Reproduce the server-side close-without-close-frame scenario, then verify that the negotiated ICSL governs the client’s idle alarm and prevents it from treating the connection as available when no data can arrive.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.