diff options
author | Alberto Aguirre <albaguirre@gmail.com> | 2018-03-20 11:42:45 -0500 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-03-21 20:44:04 +0100 |
commit | be22c0d442a1c5c016e2ebb99075b61614b5b447 (patch) | |
tree | 7f4f93a8d38b02a1dc86183a2b08e27e9fffe9a0 /src/options.c | |
parent | 467d78a442a0b3cea20f7fefadf9fa4b5119b1fe (diff) | |
download | libssh-be22c0d442a1c5c016e2ebb99075b61614b5b447.tar.gz libssh-be22c0d442a1c5c016e2ebb99075b61614b5b447.tar.xz libssh-be22c0d442a1c5c016e2ebb99075b61614b5b447.zip |
Add a NODELAY option
Add a new option SSH_OPTIONS_NODELAY to enable or disable the
Nagle Algorithm (TCP_NODELAY) on the session socket.
Improved performance can be achieved for some applications like
sftp servers by enabling SSH_OPTIONS_NODELAY as typically, the
next request won't arrive until the server replies, which are
typically small writes.
Signed-off-by: Alberto Aguirre <albaguirre@gmail.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/options.c')
-rw-r--r-- | src/options.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/options.c b/src/options.c index 14b9e01e..adfecdc7 100644 --- a/src/options.c +++ b/src/options.c @@ -408,6 +408,10 @@ int ssh_options_set_algo(ssh_session session, * Currently without effect (ssh_userauth_auto_pubkey doesn't use * gssapi authentication). * + * - SSH_OPTIONS_NODELAY + * Set it to disable Nagle's Algorithm (TCP_NODELAY) on the + * session socket. (int, 0=false) + * * @param value The value to set. This is a generic pointer and the * datatype which is used should be set according to the * type set. @@ -938,7 +942,15 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type, } } break; - + case SSH_OPTIONS_NODELAY: + if (value == NULL) { + ssh_set_error_invalid(session); + return -1; + } else { + int *x = (int *) value; + session->opts.nodelay = (*x & 0xff) > 0 ? 1 : 0; + } + break; default: ssh_set_error(session, SSH_REQUEST_DENIED, "Unknown ssh option %d", type); return -1; |