crypto: TLS: introduce `check_pending`

The new `qcrypto_tls_session_check_pending` function allows the caller
to know if data have already been consumed from the backend and is
already available.

Signed-off-by: Antoine Damhet <antoine.damhet@shadow.tech>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
master
Antoine Damhet 2022-11-15 15:23:28 +01:00 committed by Daniel P. Berrangé
parent 6a50f64ca0
commit 33ee0d8e2f
2 changed files with 25 additions and 0 deletions

View File

@ -493,6 +493,13 @@ qcrypto_tls_session_read(QCryptoTLSSession *session,
}
size_t
qcrypto_tls_session_check_pending(QCryptoTLSSession *session)
{
return gnutls_record_check_pending(session->handle);
}
int
qcrypto_tls_session_handshake(QCryptoTLSSession *session,
Error **errp)
@ -615,6 +622,13 @@ qcrypto_tls_session_read(QCryptoTLSSession *sess,
}
size_t
qcrypto_tls_session_check_pending(QCryptoTLSSession *session)
{
return 0;
}
int
qcrypto_tls_session_handshake(QCryptoTLSSession *sess,
Error **errp)

View File

@ -248,6 +248,17 @@ ssize_t qcrypto_tls_session_read(QCryptoTLSSession *sess,
char *buf,
size_t len);
/**
* qcrypto_tls_session_check_pending:
* @sess: the TLS session object
*
* Check if there are unread data in the TLS buffers that have
* already been read from the underlying data source.
*
* Returns: the number of bytes available or zero
*/
size_t qcrypto_tls_session_check_pending(QCryptoTLSSession *sess);
/**
* qcrypto_tls_session_handshake:
* @sess: the TLS session object