mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
dtls/connection: fix EOF handling with openssl 1.1.1e
openssl 1.1.1e does some stricker EOF handling and will throw an error if the EOF is unexpected (like in the middle of a record). As we are streaming data into openssl here, it is entirely possible that we push data from multiple buffers/packets into openssl separately. From the openssl changelog: Changes between 1.1.1d and 1.1.1e [17 Mar 2020] *) Properly detect EOF while reading in libssl. Previously if we hit an EOF while reading in libssl then we would report an error back to the application (SSL_ERROR_SYSCALL) but errno would be 0. We now add an error to the stack (which means we instead return SSL_ERROR_SSL) and therefore give a hint as to what went wrong. [Matt Caswell] We can relax the EOF signalling to only return TRUE when we have stopped for any reason (EOS, error). Will also remove a spurious EOF error from previous openssl version.
This commit is contained in:
parent
319a5e5779
commit
8da177c0bf
1 changed files with 1 additions and 1 deletions
|
@ -1251,7 +1251,7 @@ bio_method_ctrl (BIO * bio, int cmd, long arg1, void *arg2)
|
||||||
GST_LOG_OBJECT (self, "BIO: EOF reset");
|
GST_LOG_OBJECT (self, "BIO: EOF reset");
|
||||||
return 1;
|
return 1;
|
||||||
case BIO_CTRL_EOF:{
|
case BIO_CTRL_EOF:{
|
||||||
gint eof = !(priv->bio_buffer_len - priv->bio_buffer_offset);
|
gint eof = priv->is_alive == FALSE;
|
||||||
GST_LOG_OBJECT (self, "BIO: EOF query returned %d", eof);
|
GST_LOG_OBJECT (self, "BIO: EOF query returned %d", eof);
|
||||||
return eof;
|
return eof;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue