litespeedtech / litespeedtech/lsquic
ICSL value from server-side is never used.
- 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