Speed-up TLS handshake

This commit is contained in:
Evgeny Grin (Karlson2k) committed 2020-12-29 15:39:21 +03:00
1 parent 7ca70975ab
commit e8258c92e6
1 file changed
+10
+10
View File
@@ -33,6 +33,7 @@
#include "response.h"
#include "mhd_mono_clock.h"
#include <gnutls/gnutls.h>
#include "mhd_send.h"
/**
@@ -107,6 +108,15 @@ MHD_run_tls_handshake_ (struct MHD_Connection *connection)
if ((MHD_TLS_CONN_INIT == connection->tls_state) ||
(MHD_TLS_CONN_HANDSHAKING == connection->tls_state))
{
/* GnuTLS uses sendmsg() (when available) to combine outgoing message
* into the single packet therefore there is no need to wait for
* additional data after sendmsg(). TLS handshake requires several packets
* exchange so set TCP_NODELAY here to avoid delay after each outgoing
* packet. As drawback it results in less more packet fragmentation
* on platforms without sendmsg() support, but luckily such platforms
* are now rare and they don't provide best performance anyway. */
if (_MHD_ON != connection->sk_nodelay)
MHD_connection_set_nodelay_state_ (connection, true);
ret = gnutls_handshake (connection->tls_session);
if (ret == GNUTLS_E_SUCCESS)
{