]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Make GnuTLS handshake non-blocking
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 14 Jan 2017 14:58:59 +0000 (03:58 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 14 Jan 2017 14:58:59 +0000 (03:58 +1300)
src/security/Session.cc

index d69910d384ce0153a57f5f8f7b0559cacc858829..0514cc32031bad4d5eb6b91921b272677a9cd327 100644 (file)
@@ -112,12 +112,12 @@ CreateSession(const Security::ContextPointer &ctx, const Comm::ConnectionPointer
     }
 #elif USE_GNUTLS
     gnutls_session_t tmp;
-    errCode = gnutls_init(&tmp, static_cast<unsigned int>(type));
+    errCode = gnutls_init(&tmp, static_cast<unsigned int>(type) | GNUTLS_NONBLOCK);
     Security::SessionPointer session(tmp, [](gnutls_session_t p) {
             debugs(83, 5, "gnutls_deinit session=" << (void*)p);
             gnutls_deinit(p);
     });
-    debugs(83, 5, "gnutls_init session=" << (void*)session.get());
+    debugs(83, 5, "gnutls_init " << (type == Security::Io::BIO_TO_SERVER ? "client" : "server" )<< " session=" << (void*)session.get());
     if (errCode != GNUTLS_E_SUCCESS) {
         session.reset();
         errAction = "failed to initialize session";