diff options
author | marha <marha@users.sourceforge.net> | 2014-04-13 14:28:06 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-04-13 14:28:06 +0200 |
commit | 0bd141efd4832e01c8b269b8566dd5749e30ed55 (patch) | |
tree | cdad95c688236c6e2e36f13a3495c498393dabc8 /X11/xtrans/Xtranssock.c | |
parent | feab85024204c7db3ad243697fe06bf3960349a9 (diff) | |
parent | d2ad10d03be8e6d4b150bbdf2a28ea3d5a18a2ed (diff) | |
download | vcxsrv-0bd141efd4832e01c8b269b8566dd5749e30ed55.tar.gz vcxsrv-0bd141efd4832e01c8b269b8566dd5749e30ed55.tar.bz2 vcxsrv-0bd141efd4832e01c8b269b8566dd5749e30ed55.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'X11/xtrans/Xtranssock.c')
-rw-r--r-- | X11/xtrans/Xtranssock.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/X11/xtrans/Xtranssock.c b/X11/xtrans/Xtranssock.c index 6d4207f1c..9dda1295f 100644 --- a/X11/xtrans/Xtranssock.c +++ b/X11/xtrans/Xtranssock.c @@ -456,6 +456,27 @@ TRANS(SocketOpen) (int i, int type) } #endif + /* + * Some systems provide a really small default buffer size for + * UNIX sockets. Bump it up a bit such that large transfers don't + * proceed at glacial speed. + */ +#ifdef SO_SNDBUF + if (Sockettrans2devtab[i].family == AF_UNIX) + { + SOCKLEN_T len = sizeof (int); + int val; + + if (getsockopt (ciptr->fd, SOL_SOCKET, SO_SNDBUF, + (char *) &val, &len) == 0 && val < 64 * 1024) + { + val = 64 * 1024; + setsockopt (ciptr->fd, SOL_SOCKET, SO_SNDBUF, + (char *) &val, sizeof (int)); + } + } +#endif + return ciptr; } |