mirror of
https://git.gnunet.org/libmicrohttpd.git
synced 2026-10-06 04:03:18 +03:00
Speed-up TLS handshake
This commit is contained in:
1 file changed
+10
@@ -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)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user