aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-12-31 11:10:35 +0100
committerAndreas Schneider <asn@cryptomilk.org>2018-12-31 11:10:35 +0100
commita1338e927d5a209528024236c370360719fa9c66 (patch)
treeb79c3214fc9319fb33a82a4954c6a31cd997700f
parent22acb3a3384357e2f97c70fa70d81cb7632f75cd (diff)
downloadcsync-a1338e927d5a209528024236c370360719fa9c66.tar.gz
csync-a1338e927d5a209528024236c370360719fa9c66.tar.xz
csync-a1338e927d5a209528024236c370360719fa9c66.zip
modules: Disable Nagle's Algorithm (TCP_NODELAY) for sftp
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--modules/csync_sftp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/csync_sftp.c b/modules/csync_sftp.c
index 9181513..050bb7f 100644
--- a/modules/csync_sftp.c
+++ b/modules/csync_sftp.c
@@ -169,6 +169,7 @@ static int _sftp_connect(const char *uri)
int rc = -1;
int state = SSH_SERVER_ERROR;
int timeout = 20;
+ int nodelay = 1;
int method;
char *verbosity;
char errbuf[256] = {0};
@@ -205,6 +206,16 @@ static int _sftp_connect(const char *uri)
goto out;
}
+ /* Disable Nagle's Algorithm (TCP_NODELAY). Usually faster for sftp. */
+ rc = ssh_options_set(_ssh_session, SSH_OPTIONS_NODELAY, &nodelay);
+ if (rc < 0) {
+ c_strerror_r(errno, errbuf, sizeof(errbuf));
+ fprintf(stderr,
+ "csync_sftp - error setting nodelay: %s\n",
+ errbuf);
+ goto out;
+ }
+
rc = ssh_options_set(_ssh_session, SSH_OPTIONS_COMPRESSION_C_S, "none");
if (rc < 0) {
c_strerror_r(errno, errbuf, sizeof(errbuf));