mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
crypto: Remove qcrypto_tls_session_get_handshake_status
The correct way of calling qcrypto_tls_session_handshake() requires calling qcrypto_tls_session_get_handshake_status() right after it so there's no reason to have a separate method. Refactor qcrypto_tls_session_handshake() to inform the status in its own return value and alter the callers accordingly. No functional change. Suggested-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Acked-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
parent
30ee88622e
commit
0b8a70d70f
4 changed files with 36 additions and 72 deletions
|
@ -75,12 +75,14 @@
|
|||
* GINT_TO_POINTER(fd));
|
||||
*
|
||||
* while (1) {
|
||||
* if (qcrypto_tls_session_handshake(sess, errp) < 0) {
|
||||
* int ret = qcrypto_tls_session_handshake(sess, errp);
|
||||
*
|
||||
* if (ret < 0) {
|
||||
* qcrypto_tls_session_free(sess);
|
||||
* return -1;
|
||||
* }
|
||||
*
|
||||
* switch(qcrypto_tls_session_get_handshake_status(sess)) {
|
||||
* switch(ret) {
|
||||
* case QCRYPTO_TLS_HANDSHAKE_COMPLETE:
|
||||
* if (qcrypto_tls_session_check_credentials(sess, errp) < )) {
|
||||
* qcrypto_tls_session_free(sess);
|
||||
|
@ -170,7 +172,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(QCryptoTLSSession, qcrypto_tls_session_free)
|
|||
*
|
||||
* Validate the peer's credentials after a successful
|
||||
* TLS handshake. It is an error to call this before
|
||||
* qcrypto_tls_session_get_handshake_status() returns
|
||||
* qcrypto_tls_session_handshake() returns
|
||||
* QCRYPTO_TLS_HANDSHAKE_COMPLETE
|
||||
*
|
||||
* Returns 0 if the credentials validated, -1 on error
|
||||
|
@ -226,7 +228,7 @@ void qcrypto_tls_session_set_callbacks(QCryptoTLSSession *sess,
|
|||
* registered with qcrypto_tls_session_set_callbacks()
|
||||
*
|
||||
* It is an error to call this before
|
||||
* qcrypto_tls_session_get_handshake_status() returns
|
||||
* qcrypto_tls_session_handshake() returns
|
||||
* QCRYPTO_TLS_HANDSHAKE_COMPLETE
|
||||
*
|
||||
* Returns: the number of bytes sent,
|
||||
|
@ -256,7 +258,7 @@ ssize_t qcrypto_tls_session_write(QCryptoTLSSession *sess,
|
|||
* opposed to an error.
|
||||
*
|
||||
* It is an error to call this before
|
||||
* qcrypto_tls_session_get_handshake_status() returns
|
||||
* qcrypto_tls_session_handshake() returns
|
||||
* QCRYPTO_TLS_HANDSHAKE_COMPLETE
|
||||
*
|
||||
* Returns: the number of bytes received,
|
||||
|
@ -289,8 +291,7 @@ size_t qcrypto_tls_session_check_pending(QCryptoTLSSession *sess);
|
|||
* the underlying data channel is non-blocking, then
|
||||
* this method may return control before the handshake
|
||||
* is complete. On non-blocking channels the
|
||||
* qcrypto_tls_session_get_handshake_status() method
|
||||
* should be used to determine whether the handshake
|
||||
* return value determines whether the handshake
|
||||
* has completed, or is waiting to send or receive
|
||||
* data. In the latter cases, the caller should setup
|
||||
* an event loop watch and call this method again
|
||||
|
@ -306,23 +307,6 @@ typedef enum {
|
|||
QCRYPTO_TLS_HANDSHAKE_RECVING,
|
||||
} QCryptoTLSSessionHandshakeStatus;
|
||||
|
||||
/**
|
||||
* qcrypto_tls_session_get_handshake_status:
|
||||
* @sess: the TLS session object
|
||||
*
|
||||
* Check the status of the TLS handshake. This
|
||||
* is used with non-blocking data channels to
|
||||
* determine whether the handshake is waiting
|
||||
* to send or receive further data to/from the
|
||||
* remote peer.
|
||||
*
|
||||
* Once this returns QCRYPTO_TLS_HANDSHAKE_COMPLETE
|
||||
* it is permitted to send/receive payload data on
|
||||
* the channel
|
||||
*/
|
||||
QCryptoTLSSessionHandshakeStatus
|
||||
qcrypto_tls_session_get_handshake_status(QCryptoTLSSession *sess);
|
||||
|
||||
typedef enum {
|
||||
QCRYPTO_TLS_BYE_COMPLETE,
|
||||
QCRYPTO_TLS_BYE_SENDING,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue