aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2016-06-30 14:56:02 +0200
committerDaniel Stenberg <daniel@haxx.se>2016-08-05 00:12:57 +0200
commit4732ca5724072f132876f520c8f02c7c5b654d95 (patch)
treeff3f154c9dd3e651193c8bb3585fabf277573a03 /src
parentedeabf741fed90aecb39bb38dc0eeb68d6e305eb (diff)
downloadgnurl-4732ca5724072f132876f520c8f02c7c5b654d95.tar.gz
gnurl-4732ca5724072f132876f520c8f02c7c5b654d95.tar.bz2
gnurl-4732ca5724072f132876f520c8f02c7c5b654d95.zip
CURLOPT_TCP_NODELAY: now enabled by default
After a few wasted hours hunting down the reason for slowness during a TLS handshake that turned out to be because of TCP_NODELAY not being set, I think we have enough motivation to toggle the default for this option. We now enable TCP_NODELAY by default and allow applications to switch it off. This also makes --tcp-nodelay unnecessary, but --no-tcp-nodelay can be used to disable it. Thanks-to: Tim Rühsen Bug: https://curl.haxx.se/mail/lib-2016-06/0143.html
Diffstat (limited to 'src')
-rw-r--r--src/tool_cfgable.c3
-rw-r--r--src/tool_operate.c4
-rw-r--r--src/tool_setopt.c3
3 files changed, 6 insertions, 4 deletions
diff --git a/src/tool_cfgable.c b/src/tool_cfgable.c
index 8b60a91b7..567123b82 100644
--- a/src/tool_cfgable.c
+++ b/src/tool_cfgable.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -41,6 +41,7 @@ void config_init(struct OperationConfig* config)
CURLPROTO_SMBS);
config->proto_redir_present = FALSE;
config->proto_default = NULL;
+ config->tcp_nodelay = TRUE; /* enabled by default */
}
static void free_config_fields(struct OperationConfig *config)
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 2b53c9a85..97bb87b3d 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -792,8 +792,8 @@ static CURLcode operate_do(struct GlobalConfig *global,
set_binmode(stdout);
}
- if(config->tcp_nodelay)
- my_setopt(curl, CURLOPT_TCP_NODELAY, 1L);
+ if(!config->tcp_nodelay)
+ my_setopt(curl, CURLOPT_TCP_NODELAY, 0L);
if(config->tcp_fastopen)
my_setopt(curl, CURLOPT_TCP_FASTOPEN, 1L);
diff --git a/src/tool_setopt.c b/src/tool_setopt.c
index 690ce14a6..c854225e4 100644
--- a/src/tool_setopt.c
+++ b/src/tool_setopt.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -157,6 +157,7 @@ static const NameValue setopt_nv_CURLNONZERODEFAULTS[] = {
NV1(CURLOPT_SSL_VERIFYHOST, 1),
NV1(CURLOPT_SSL_ENABLE_NPN, 1),
NV1(CURLOPT_SSL_ENABLE_ALPN, 1),
+ NV1(CURLOPT_TCP_NODELAY, 1),
NVEND
};