[Libwebsockets] sporadic connection close on Rx

Andy Green andy at warmcat.com
Sun Nov 7 11:13:22 CET 2021



On 11/5/21 13:05, Roman Nikiforov wrote:
> 
>> What I suggest is enable the cmake option LWS_TLS_LOG_PLAINTEXT_RX and 
>> see what is actually read from the server, and if we can see the 
>> breakage, confirm what the server thinks it sent on tls for those 
>> packets.
>>
> I recompiled with this define. In case RX fails usually there is 
> "illegal opcode" message from lws_ws_client_rx_sm. But I also had 
> "disordered continuation" and "illegal rsv bits set". I added opcode and 
> c function parameter output in log and they have different values every 
> time:

These are basically every way that the framing can be illegal, it thinks 
it has completed a fragment, but when it looks for the next ws frame, it 
is seeing your "random" data instead.

> [wsicli|0|WS/h1/default/medrepo.de|default]: lws_ws_handshake_client: hs 
> client feels it has 4096 in
> [2021/11/05 12:17:16:4626] D: 
> [wsicli|0|WS/h1/default/medrepo.de|default]: lws_ws_client_rx_sm: 
> spilling as we have the whole frame
> [2021/11/05 12:17:16:4626] D: 
> [wsicli|0|WS/h1/default/medrepo.de|default]: lws_ws_client_rx_sm: 
> starting disbursal of 2048 deframed rx

Why does it want to limit that to 2048?  Is the limit coming from your 
lws_protocols struct?  If so, upping it to 4096 might help.

-Andy


More information about the Libwebsockets mailing list