You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TcpOpts (crates/turnloop/src/types.rs) has exactly one field:
pubstructTcpOpts{pubnodelay:bool,}
Every other pre-connect TCP option a caller might want — a connect timeout, a local bind address, keepalive parameters set at connect time, IPV6_V6ONLY, and so on — has no field to set.
Why it matters
This is P1's and P6's item, unchanged, and Perry's P11 lane (perry-http-client, the perry CLI's HTTP client) hit it again: its report lists it as still open, verbatim "TcpOpts still exposes only nodelay."
Note this is a different gap from turnloop#34 ("No socket options after creation"), which is now closed (implemented in #36, merged 909e92f) and added Loop::set_option/get_option for options changed after a handle exists. TcpOpts is the struct passed at connect time, and it is unaffected by that fix — checked against current main (d0f0167), it still only has nodelay.
What would fix it
Either extend TcpOpts with the connect-time fields callers actually need (a connect timeout is the one every HTTP client reaches for first), or — if the intent is that everything now goes through Loop::set_option/get_option post-creation — say so explicitly in TcpOpts's docs and point callers at the post-creation API, so a caller doesn't have to guess whether the single field is an oversight or a deliberate boundary.
Activity