autobahn report final frag only on final rx bufload

If the final message fragment contains a payload that has to be
handled in multiple RX callbacks, until now we reported the ws
fragment header FIN state in lws_is_final_fragment().

That was correct, but it's kind of not useful to hear that the
intermediate bufferloads are "final".  So now we delay
reporting the logical ws fragment FIN until the final part of
his payload is delivered.

This gets us Autobahn 1.1.6 working.

Signed-off-by: Andy Green <andy.green@linaro.org>
This commit is contained in:
Andy Green 2015-12-28 12:45:52 +08:00
parent 4c9d895768
commit 41434fad53

View file

@ -763,7 +763,7 @@ lws_get_protocol(struct lws *wsi)
LWS_VISIBLE int
lws_is_final_fragment(struct lws *wsi)
{
return wsi->u.ws.final;
return wsi->u.ws.final && !wsi->u.ws.rx_packet_length;
}
LWS_VISIBLE unsigned char