|
|
@@ -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; |