summaryrefslogtreecommitdiffstats
path: root/unix/xserver114.patch
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2013-04-10 13:07:01 +0000
committerPierre Ossman <ossman@cendio.se>2013-04-10 13:07:01 +0000
commit2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c (patch)
treee25285e92914dbad4e841c60b32306a787ad4443 /unix/xserver114.patch
parentf17bc9a0ddf0ff26a5260c956218a84ec0a80e73 (diff)
downloadtigervnc-2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c.tar.gz
tigervnc-2a87ddcbb5a28cd30d65ff2957d7f5ac2d9d3f1c.zip
Port over the write block handler code from the 1.5 patch.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5077 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'unix/xserver114.patch')
-rw-r--r--unix/xserver114.patch75
1 files changed, 64 insertions, 11 deletions
diff --git a/unix/xserver114.patch b/unix/xserver114.patch
index 80dd6a22..944bc4a3 100644
--- a/unix/xserver114.patch
+++ b/unix/xserver114.patch
@@ -1,6 +1,6 @@
-diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac
---- xorg-server-20130109/configure.ac.vnc 2013-01-24 13:01:31.013267503 +0100
-+++ xorg-server-20130109/configure.ac 2013-01-24 13:08:43.283941751 +0100
+diff -up xserver/configure.ac.vnc xserver/configure.ac
+--- xserver/configure.ac.vnc 2013-04-09 16:35:38.000000000 +0200
++++ xserver/configure.ac 2013-04-09 18:16:31.000000000 +0200
@@ -72,6 +72,7 @@ dnl forcing an entire recompile.x
AC_CONFIG_HEADERS(include/version-config.h)
@@ -29,7 +29,7 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac
if test "x$XORG" = xyes; then
XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
-@@ -1826,7 +1833,6 @@ if test "x$XORG" = xyes; then
+@@ -1827,7 +1834,6 @@ if test "x$XORG" = xyes; then
AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
@@ -37,7 +37,7 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac
AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
-@@ -2291,6 +2297,7 @@ hw/dmx/Makefile
+@@ -2292,6 +2298,7 @@ hw/dmx/Makefile
hw/dmx/man/Makefile
hw/vfb/Makefile
hw/vfb/man/Makefile
@@ -45,9 +45,9 @@ diff -up xorg-server-20130109/configure.ac.vnc xorg-server-20130109/configure.ac
hw/xnest/Makefile
hw/xnest/man/Makefile
hw/xwin/Makefile
-diff -up xorg-server-20130109/hw/Makefile.am.vnc xorg-server-20130109/hw/Makefile.am
---- xorg-server-20130109/hw/Makefile.am.vnc 2013-01-10 06:06:16.000000000 +0100
-+++ xorg-server-20130109/hw/Makefile.am 2013-01-24 13:08:43.283941751 +0100
+diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
+--- xserver/hw/Makefile.am.vnc 2013-04-09 16:36:46.000000000 +0200
++++ xserver/hw/Makefile.am 2013-04-09 18:16:31.000000000 +0200
@@ -33,7 +33,8 @@ SUBDIRS = \
$(XNEST_SUBDIRS) \
$(DMX_SUBDIRS) \
@@ -58,9 +58,9 @@ diff -up xorg-server-20130109/hw/Makefile.am.vnc xorg-server-20130109/hw/Makefil
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
-diff -up xorg-server-20130109/mi/miinitext.c.vnc xorg-server-20130109/mi/miinitext.c
---- xorg-server-20130109/mi/miinitext.c.vnc 2013-01-10 06:06:16.000000000 +0100
-+++ xorg-server-20130109/mi/miinitext.c 2013-01-24 13:08:43.283941751 +0100
+diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
+--- xserver/mi/miinitext.c.vnc 2013-04-09 16:37:21.000000000 +0200
++++ xserver/mi/miinitext.c 2013-04-09 18:16:31.000000000 +0200
@@ -112,6 +112,10 @@ SOFTWARE.
#include "micmap.h"
#include "globals.h"
@@ -82,3 +82,56 @@ diff -up xorg-server-20130109/mi/miinitext.c.vnc xorg-server-20130109/mi/miinite
};
static ExtensionModule *ExtensionModuleList = NULL;
+diff -up xserver/os/WaitFor.c.vnc xserver/os/WaitFor.c
+--- xserver/os/WaitFor.c.vnc 2013-04-10 14:51:13.000000000 +0200
++++ xserver/os/WaitFor.c 2013-04-10 14:55:40.000000000 +0200
+@@ -124,6 +124,9 @@ static void DoTimer(OsTimerPtr timer, CA
+ static void CheckAllTimers(void);
+ static OsTimerPtr timers = NULL;
+
++extern void vncWriteBlockHandler(fd_set *fds);
++extern void vncWriteWakeupHandler(int nfds, fd_set *fds);
++
+ /*****************
+ * WaitForSomething:
+ * Make the server suspend until there is
+@@ -149,6 +152,7 @@ WaitForSomething(int *pClientsReady)
+ INT32 timeout = 0;
+ fd_set clientsReadable;
+ fd_set clientsWritable;
++ fd_set socketsWritable;
+ int curclient;
+ int selecterr;
+ static int nready;
+@@ -207,6 +211,9 @@ WaitForSomething(int *pClientsReady)
+ XFD_COPYSET(&AllSockets, &LastSelectMask);
+ }
+
++ FD_ZERO(&socketsWritable);
++ vncWriteBlockHandler(&socketsWritable);
++
+ BlockHandler((pointer) &wt, (pointer) &LastSelectMask);
+ if (NewOutputPending)
+ FlushAllOutput();
+@@ -218,10 +225,20 @@ WaitForSomething(int *pClientsReady)
+ i = Select(MaxClients, &LastSelectMask, &clientsWritable, NULL, wt);
+ }
+ else {
+- i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
++ if (AnyClientsWriteBlocked)
++ XFD_ORSET(&socketsWritable, &ClientsWriteBlocked, &socketsWritable);
++
++ if (XFD_ANYSET(&socketsWritable)) {
++ i = Select (MaxClients, &LastSelectMask, &socketsWritable, NULL, wt);
++ if (AnyClientsWriteBlocked)
++ XFD_ANDSET(&clientsWritable, &socketsWritable, &ClientsWriteBlocked);
++ } else {
++ i = Select (MaxClients, &LastSelectMask, NULL, NULL, wt);
++ }
+ }
+ selecterr = GetErrno();
+ WakeupHandler(i, (pointer) &LastSelectMask);
++ vncWriteWakeupHandler(i, &socketsWritable);
+ if (i <= 0) { /* An error or timeout occurred */
+ if (dispatchException)
+ return 0;