diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-01-27 12:49:14 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-01-27 12:49:14 +0000 |
commit | 1cb9aba6ea86e27bf349a7658b36c0daa4a70908 (patch) | |
tree | 387f40289b74940078ffc2f4055295e9def15711 /sshnodelay.c | |
parent | 3883b4eb0cedb3d628a1267aa97f023cb0a2b9bd (diff) | |
download | sshfs-1cb9aba6ea86e27bf349a7658b36c0daa4a70908.tar sshfs-1cb9aba6ea86e27bf349a7658b36c0daa4a70908.tar.gz sshfs-1cb9aba6ea86e27bf349a7658b36c0daa4a70908.tar.bz2 sshfs-1cb9aba6ea86e27bf349a7658b36c0daa4a70908.zip |
fix
Diffstat (limited to 'sshnodelay.c')
-rw-r--r-- | sshnodelay.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sshnodelay.c b/sshnodelay.c new file mode 100644 index 0000000..9e30f27 --- /dev/null +++ b/sshnodelay.c @@ -0,0 +1,17 @@ +#define _GNU_SOURCE +#include <dlfcn.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <netinet/tcp.h> + +int connect(int sock, const struct sockaddr *addr, socklen_t addrlen) +{ + int (*next_connect)(int, const struct sockaddr *, socklen_t) = + dlsym(RTLD_NEXT, "connect"); + int res = next_connect(sock, addr, addrlen); + if (!res && addr->sa_family == AF_INET) { + int opt = 1; + setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt)); + } + return res; +} |