aboutsummaryrefslogtreecommitdiff
path: root/X11/xtrans/Xtranssock.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-04-13 14:28:06 +0200
committermarha <marha@users.sourceforge.net>2014-04-13 14:28:06 +0200
commit0bd141efd4832e01c8b269b8566dd5749e30ed55 (patch)
treecdad95c688236c6e2e36f13a3495c498393dabc8 /X11/xtrans/Xtranssock.c
parentfeab85024204c7db3ad243697fe06bf3960349a9 (diff)
parentd2ad10d03be8e6d4b150bbdf2a28ea3d5a18a2ed (diff)
downloadvcxsrv-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.c21
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;
}