diff options
author | Attila Molnar <attilamolnar@hush.com> | 2015-03-05 16:40:51 +0100 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2015-03-05 16:40:51 +0100 |
commit | 1e4a25b3f7dd1c6ee7926ed6d9c38f135198caec (patch) | |
tree | 7e2157e326f11782caf5b5c20fea185b6312b0c1 /src/modules | |
parent | 19eb420281670348532fdd58f5fe757d5413faf7 (diff) |
m_ssl_gnutls Replace ISSL_HANDSHAKING_READ/WRITE with a single state
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/extra/m_ssl_gnutls.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index ad182e826..a684e5916 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -70,7 +70,7 @@ typedef gnutls_certificate_credentials_t gnutls_certificate_credentials; typedef gnutls_dh_params_t gnutls_dh_params; #endif -enum issl_status { ISSL_NONE, ISSL_HANDSHAKING_READ, ISSL_HANDSHAKING_WRITE, ISSL_HANDSHAKEN, ISSL_CLOSING, ISSL_CLOSED }; +enum issl_status { ISSL_NONE, ISSL_HANDSHAKING, ISSL_HANDSHAKEN, ISSL_CLOSING, ISSL_CLOSED }; #if INSPIRCD_GNUTLS_HAS_VERSION(2, 12, 0) #define GNUTLS_NEW_CERT_CALLBACK_API @@ -637,17 +637,16 @@ class GnuTLSIOHook : public SSLIOHook if(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) { // Handshake needs resuming later, read() or write() would have blocked. + this->status = ISSL_HANDSHAKING; if (gnutls_record_get_direction(this->sess) == 0) { // gnutls_handshake() wants to read() again. - this->status = ISSL_HANDSHAKING_READ; SocketEngine::ChangeEventMask(user, FD_WANT_POLL_READ | FD_WANT_NO_WRITE); } else { // gnutls_handshake() wants to write() again. - this->status = ISSL_HANDSHAKING_WRITE; SocketEngine::ChangeEventMask(user, FD_WANT_NO_READ | FD_WANT_SINGLE_WRITE); } } @@ -881,7 +880,7 @@ info_done_dealloc: return -1; } - if (this->status == ISSL_HANDSHAKING_READ || this->status == ISSL_HANDSHAKING_WRITE) + if (this->status == ISSL_HANDSHAKING) { // The handshake isn't finished, try to finish it. @@ -936,7 +935,7 @@ info_done_dealloc: return -1; } - if (this->status == ISSL_HANDSHAKING_WRITE || this->status == ISSL_HANDSHAKING_READ) + if (this->status == ISSL_HANDSHAKING) { // The handshake isn't finished, try to finish it. Handshake(user); |