Neil Horman c8127df04c Detect fin state of a QUIC stream for streams which are completely read
SSL_poll indicates that a stream which has had the fin bit set on it,
should generate SSL_POLL_EVENT_R events, so that applications can detect
stream completion via SSL_read_ex and SSL_get_error returning
SSL_ERROR_ZERO_RETURN.

However, the quic polling code misses on this, as a client that
completely reads a buffer after receipt has its underlying stream buffer
freed, loosing the fin status

We can however detect stream completion still, as a stream which has
been finalized, and had all its data read will be in the
QUIC_RSTREAM_STATE_DATA_READ state, iff the fin bit was set.

Fix it by checking in test_poll_event_r for that state, and generating a
SSL_POLL_EVENT_R if its found to be true, so as to stay in line with the
docs.

Fixes openssl/private#627

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Sasa Nedvedicky <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25399)
2024-09-13 15:05:29 -04:00
..
2024-09-05 17:02:51 +02:00
2024-02-10 11:37:14 +00:00
2024-09-05 17:02:51 +02:00
2024-08-07 19:48:26 +02:00
2024-09-05 17:02:51 +02:00
2023-09-07 09:59:15 +01:00
2024-04-09 13:43:26 +02:00
2024-09-05 09:35:49 +02:00
2024-08-29 10:29:53 +02:00
2024-09-05 17:02:51 +02:00
2022-11-14 10:14:41 +01:00
2023-03-28 13:49:54 -04:00
2024-09-05 09:35:49 +02:00
2023-11-27 07:51:33 +00:00
2024-09-05 17:02:51 +02:00
2024-08-29 10:29:53 +02:00
2024-09-05 17:02:51 +02:00
2021-06-17 13:24:59 +01:00
2024-09-05 09:35:49 +02:00
2024-09-05 09:35:49 +02:00
2020-11-18 23:38:34 +01:00
2023-09-07 09:59:15 +01:00
2024-06-21 07:57:56 -04:00
2024-09-05 09:35:49 +02:00
2024-09-05 09:35:49 +02:00
2024-01-23 14:20:06 +00:00
2024-04-09 13:43:26 +02:00
2024-09-05 09:35:49 +02:00