@@ -272,7 +272,7 @@ int InputDevice::pointerProc(DeviceIntPtr pDevice, int onoff) | |||
return Success; | |||
} | |||
static void keyboardBell(int percent, DeviceIntPtr device, pointer ctrl, | |||
static void keyboardBell(int percent, DeviceIntPtr device, void * ctrl, | |||
int class_) | |||
{ | |||
if (percent > 0) |
@@ -49,7 +49,7 @@ extern "C" { | |||
#define public c_public | |||
#define class c_class | |||
extern char *display; | |||
extern const char *display; | |||
#ifdef RANDR | |||
#include "randrstr.h" |
@@ -65,18 +65,18 @@ extern "C" { | |||
extern void vncExtensionInit(); | |||
static void vncResetProc(ExtensionEntry* extEntry); | |||
static void vncBlockHandler(pointer data, OSTimePtr t, pointer readmask); | |||
static void vncWakeupHandler(pointer data, int nfds, pointer readmask); | |||
static void vncBlockHandler(void * data, OSTimePtr t, void * readmask); | |||
static void vncWakeupHandler(void * data, int nfds, void * readmask); | |||
void vncWriteBlockHandler(fd_set *fds); | |||
void vncWriteWakeupHandler(int nfds, fd_set *fds); | |||
static void vncClientStateChange(CallbackListPtr*, pointer, pointer); | |||
static void vncClientStateChange(CallbackListPtr*, void *, void *); | |||
static void SendSelectionChangeEvent(Atom selection); | |||
static int ProcVncExtDispatch(ClientPtr client); | |||
static int SProcVncExtDispatch(ClientPtr client); | |||
static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, | |||
pointer args); | |||
static void vncSelectionCallback(CallbackListPtr *callbacks, void * data, | |||
void * args); | |||
extern char *display; | |||
extern const char *display; | |||
extern char *listenaddr; | |||
} | |||
@@ -284,7 +284,7 @@ static void vncResetProc(ExtensionEntry* extEntry) | |||
{ | |||
} | |||
static void vncSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args) | |||
static void vncSelectionCallback(CallbackListPtr *callbacks, void * data, void * args) | |||
{ | |||
SelectionInfoRec *info = (SelectionInfoRec *) args; | |||
Selection *selection = info->selection; | |||
@@ -301,7 +301,7 @@ static void vncWriteWakeupHandlerFallback(); | |||
// selections have changed, and if so, notify any interested X clients. | |||
// | |||
static void vncBlockHandler(pointer data, OSTimePtr timeout, pointer readmask) | |||
static void vncBlockHandler(void * data, OSTimePtr timeout, void * readmask) | |||
{ | |||
fd_set* fds = (fd_set*)readmask; | |||
@@ -312,7 +312,7 @@ static void vncBlockHandler(pointer data, OSTimePtr timeout, pointer readmask) | |||
desktop[scr]->blockHandler(fds, timeout); | |||
} | |||
static void vncWakeupHandler(pointer data, int nfds, pointer readmask) | |||
static void vncWakeupHandler(void * data, int nfds, void * readmask) | |||
{ | |||
fd_set* fds = (fd_set*)readmask; | |||
@@ -402,7 +402,7 @@ static void vncWriteWakeupHandlerFallback() | |||
vncWriteWakeupHandler(ret, &fallbackFds); | |||
} | |||
static void vncClientStateChange(CallbackListPtr*, pointer, pointer p) | |||
static void vncClientStateChange(CallbackListPtr*, void *, void * p) | |||
{ | |||
ClientPtr client = ((NewClientInfoRec*)p)->client; | |||
if (client->clientState == ClientStateGone) { | |||
@@ -468,7 +468,7 @@ void vncClientCutText(const char* str, int len) | |||
static CARD32 queryConnectTimerCallback(OsTimerPtr timer, | |||
CARD32 now, pointer arg) | |||
CARD32 now, void * arg) | |||
{ | |||
if (queryConnectTimeout) | |||
queryConnectDesktop->approveConnection(queryConnectId, false, "The attempt to prompt the user to accept the connection failed"); |
@@ -89,8 +89,8 @@ typedef struct { | |||
} vncHooksScreenRec, *vncHooksScreenPtr; | |||
typedef struct { | |||
GCFuncs *wrappedFuncs; | |||
GCOps *wrappedOps; | |||
const GCFuncs *wrappedFuncs; | |||
const GCOps *wrappedOps; | |||
} vncHooksGCRec, *vncHooksGCPtr; | |||
#if XORG == 15 | |||
@@ -139,8 +139,8 @@ static Bool vncHooksDisplayCursor( | |||
static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout, | |||
pointer pReadmask); | |||
#else | |||
static void vncHooksBlockHandler(ScreenPtr pScreen, pointer pTimeout, | |||
pointer pReadmask); | |||
static void vncHooksBlockHandler(ScreenPtr pScreen, void * pTimeout, | |||
void * pReadmask); | |||
#endif | |||
#ifdef RENDER | |||
static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, | |||
@@ -169,7 +169,7 @@ static void vncHooksValidateGC(GCPtr pGC, unsigned long changes, | |||
static void vncHooksChangeGC(GCPtr pGC, unsigned long mask); | |||
static void vncHooksCopyGC(GCPtr src, unsigned long mask, GCPtr dst); | |||
static void vncHooksDestroyGC(GCPtr pGC); | |||
static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue,int nrects); | |||
static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue,int nrects); | |||
static void vncHooksDestroyClip(GCPtr pGC); | |||
static void vncHooksCopyClip(GCPtr dst, GCPtr src); | |||
@@ -221,10 +221,10 @@ static void vncHooksImageText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y, | |||
int count, unsigned short *chars); | |||
static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, | |||
int y, unsigned int nglyph, | |||
CharInfoPtr *ppci, pointer pglyphBase); | |||
CharInfoPtr *ppci, void * pglyphBase); | |||
static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, | |||
int y, unsigned int nglyph, | |||
CharInfoPtr *ppci, pointer pglyphBase); | |||
CharInfoPtr *ppci, void * pglyphBase); | |||
static void vncHooksPushPixels(GCPtr pGC, PixmapPtr pBitMap, | |||
DrawablePtr pDrawable, int w, int h, int x, | |||
int y); | |||
@@ -540,8 +540,8 @@ static Bool vncHooksDisplayCursor( | |||
static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout, | |||
pointer pReadmask) | |||
#else | |||
static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout, | |||
pointer pReadmask) | |||
static void vncHooksBlockHandler(ScreenPtr pScreen_, void * pTimeout, | |||
void * pReadmask) | |||
#endif | |||
{ | |||
#if XORG <= 112 | |||
@@ -876,7 +876,7 @@ static void vncHooksDestroyGC(GCPtr pGC) { | |||
GCFuncUnwrapper u(pGC); | |||
(*pGC->funcs->DestroyGC) (pGC); | |||
} | |||
static void vncHooksChangeClip(GCPtr pGC, int type, pointer pValue, int nrects) | |||
static void vncHooksChangeClip(GCPtr pGC, int type, void * pValue, int nrects) | |||
{ | |||
GCFuncUnwrapper u(pGC); | |||
(*pGC->funcs->ChangeClip) (pGC, type, pValue, nrects); | |||
@@ -916,7 +916,7 @@ public: | |||
} | |||
GCPtr pGC; | |||
vncHooksGCPtr vncHooksGC; | |||
GCFuncs* oldFuncs; | |||
const GCFuncs* oldFuncs; | |||
ScreenPtr pScreen; | |||
}; | |||
@@ -1755,7 +1755,7 @@ static void vncHooksImageText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y, | |||
static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, | |||
int y, unsigned int nglyph, | |||
CharInfoPtr *ppci, pointer pglyphBase) | |||
CharInfoPtr *ppci, void * pglyphBase) | |||
{ | |||
GC_OP_UNWRAPPER(pDrawable, pGC, ImageGlyphBlt); | |||
@@ -1781,7 +1781,7 @@ static void vncHooksImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, | |||
static void vncHooksPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, | |||
int y, unsigned int nglyph, | |||
CharInfoPtr *ppci, pointer pglyphBase) | |||
CharInfoPtr *ppci, void * pglyphBase) | |||
{ | |||
GC_OP_UNWRAPPER(pDrawable, pGC, PolyGlyphBlt); | |||
@@ -81,11 +81,11 @@ static XF86ModuleVersionInfo vncVersRec = | |||
_X_EXPORT XF86ModuleData vncModuleData = { &vncVersRec, vncSetup, NULL }; | |||
static pointer | |||
vncSetup(pointer module, pointer opts, int *errmaj, int *errmin) { | |||
LoadExtension(&vncExt, FALSE); | |||
static void * | |||
vncSetup(void * module, void * opts, int *errmaj, int *errmin) { | |||
LoadExtensionList(&vncExt, 1, FALSE); | |||
/* Need a non-NULL return value to indicate success */ | |||
return (pointer)1; | |||
return (void *)1; | |||
} | |||
static void vncExtensionInitWithParams(INITARGS) |
@@ -44,8 +44,12 @@ | |||
#define XORG 113 | |||
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (14 * 100000) + (99 * 1000)) | |||
#define XORG 114 | |||
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (15 * 100000) + (99 * 1000)) | |||
#define XORG 115 | |||
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (16 * 100000) + (99 * 1000)) | |||
#define XORG 116 | |||
#else | |||
#error "X.Org newer than 1.14 is not supported" | |||
#error "X.Org newer than 1.16 is not supported" | |||
#endif | |||
#endif |
@@ -103,7 +103,7 @@ extern "C" { | |||
"See http://www.tigervnc.org for information on TigerVNC.\n") | |||
extern char *display; | |||
extern const char *display; | |||
extern int monitorResolution; | |||
#define VFB_DEFAULT_WIDTH 1024 | |||
@@ -762,7 +762,7 @@ vfbUninstallColormap(ColormapPtr pmap) | |||
curpmap = (ColormapPtr) LookupIDByType(pmap->pScreen->defColormap, | |||
RT_COLORMAP); | |||
#else | |||
dixLookupResourceByType((pointer *) &curpmap, pmap->pScreen->defColormap, | |||
dixLookupResourceByType((void * *) &curpmap, pmap->pScreen->defColormap, | |||
RT_COLORMAP, serverClient, DixUnknownAccess); | |||
#endif | |||
(*pmap->pScreen->InstallColormap)(curpmap); | |||
@@ -1597,7 +1597,7 @@ vfbScreenInit(ScreenPtr pScreen, int argc, char **argv) | |||
} /* end vfbScreenInit */ | |||
static void vfbClientStateChange(CallbackListPtr*, pointer, pointer) { | |||
static void vfbClientStateChange(CallbackListPtr*, void *, void *) { | |||
dispatchException &= ~DE_RESET; | |||
} | |||
@@ -1625,7 +1625,7 @@ InitOutput(ScreenInfo *screenInfo, int argc, char **argv) | |||
#if XORG >= 113 | |||
#ifdef GLXEXT | |||
if (serverGeneration == 1) | |||
LoadExtension(&glxExt, TRUE); | |||
LoadExtensionList(&glxExt, 1, TRUE); | |||
#endif | |||
#endif | |||
@@ -0,0 +1,145 @@ | |||
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) | |||
AM_PROG_AS | |||
+AC_PROG_CXX | |||
AC_PROG_LN_S | |||
AC_LIBTOOL_WIN32_DLL | |||
AC_DISABLE_STATIC | |||
@@ -1028,7 +1029,6 @@ fi | |||
if test "x$WAYLAND" = xyes; then | |||
PKG_CHECK_MODULES(XWAYLAND, $WAYLAND_MODULES) | |||
AC_DEFINE(XORG_WAYLAND, 1, [Support wayland mode]) | |||
- WAYLAND_SCANNER_RULES(['$(top_srcdir)/hw/xfree86/xwayland']) | |||
fi | |||
AM_CONDITIONAL(WAYLAND, [test "x$WAYLAND" = xyes]) | |||
@@ -1573,6 +1573,10 @@ if test "x$XVFB" = xyes; then | |||
AC_SUBST([XVFB_SYS_LIBS]) | |||
fi | |||
+dnl Xvnc DDX | |||
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"]) | |||
+AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"]) | |||
+AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"]) | |||
dnl Xnest DDX | |||
@@ -1608,6 +1612,8 @@ if test "x$XORG" = xauto; then | |||
fi | |||
AC_MSG_RESULT([$XORG]) | |||
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) | |||
+ | |||
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' | |||
@@ -1827,7 +1833,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]) | |||
- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) | |||
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]) | |||
@@ -2292,6 +2297,7 @@ hw/dmx/Makefile | |||
hw/dmx/man/Makefile | |||
hw/vfb/Makefile | |||
hw/vfb/man/Makefile | |||
+hw/vnc/Makefile | |||
hw/xnest/Makefile | |||
hw/xnest/man/Makefile | |||
hw/xwin/Makefile | |||
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) \ | |||
$(KDRIVE_SUBDIRS) \ | |||
- $(XQUARTZ_SUBDIRS) | |||
+ $(XQUARTZ_SUBDIRS) \ | |||
+ vnc | |||
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive | |||
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" | |||
+#ifdef TIGERVNC | |||
+extern void vncExtensionInit(INITARGS); | |||
+#endif | |||
+ | |||
/* The following is only a small first step towards run-time | |||
* configurable extensions. | |||
*/ | |||
@@ -238,6 +242,9 @@ EnableDisableExtensionError(const char * | |||
/* List of built-in (statically linked) extensions */ | |||
static ExtensionModule staticExtensions[] = { | |||
+#ifdef TIGERVNC | |||
+ {vncExtensionInit, "VNC-EXTENSION", NULL}, | |||
+#endif | |||
{GEExtensionInit, "Generic Event Extension", &noGEExtension}, | |||
{ShapeExtensionInit, "SHAPE", NULL}, | |||
#ifdef MITSHM | |||
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; |
@@ -0,0 +1,115 @@ | |||
diff -up xorg-server-1.16.0/configure.ac.vnc xorg-server-1.16.0/configure.ac | |||
--- xorg-server-1.16.0/configure.ac.vnc 2014-07-17 08:00:51.000000000 +0100 | |||
+++ xorg-server-1.16.0/configure.ac 2014-09-03 10:21:49.506109235 +0100 | |||
@@ -74,6 +74,7 @@ dnl forcing an entire recompile.x | |||
AC_CONFIG_HEADERS(include/version-config.h) | |||
AM_PROG_AS | |||
+AC_PROG_CXX | |||
AC_PROG_LN_S | |||
LT_PREREQ([2.2]) | |||
LT_INIT([disable-static win32-dll]) | |||
@@ -1795,6 +1796,10 @@ if test "x$XVFB" = xyes; then | |||
AC_SUBST([XVFB_SYS_LIBS]) | |||
fi | |||
+dnl Xvnc DDX | |||
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"]) | |||
+AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"]) | |||
+AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"]) | |||
dnl Xnest DDX | |||
@@ -1830,6 +1835,8 @@ if test "x$XORG" = xauto; then | |||
fi | |||
AC_MSG_RESULT([$XORG]) | |||
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) | |||
+ | |||
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' | |||
@@ -2051,7 +2058,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]) | |||
- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version]) | |||
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]) | |||
@@ -2589,6 +2595,7 @@ hw/dmx/Makefile | |||
hw/dmx/man/Makefile | |||
hw/vfb/Makefile | |||
hw/vfb/man/Makefile | |||
+hw/vnc/Makefile | |||
hw/xnest/Makefile | |||
hw/xnest/man/Makefile | |||
hw/xwin/Makefile | |||
diff -up xorg-server-1.16.0/hw/Makefile.am.vnc xorg-server-1.16.0/hw/Makefile.am | |||
--- xorg-server-1.16.0/hw/Makefile.am.vnc 2014-04-16 21:24:00.000000000 +0100 | |||
+++ xorg-server-1.16.0/hw/Makefile.am 2014-09-03 10:21:49.507109234 +0100 | |||
@@ -38,7 +38,8 @@ SUBDIRS = \ | |||
$(DMX_SUBDIRS) \ | |||
$(KDRIVE_SUBDIRS) \ | |||
$(XQUARTZ_SUBDIRS) \ | |||
- $(XWAYLAND_SUBDIRS) | |||
+ $(XWAYLAND_SUBDIRS) \ | |||
+ vnc | |||
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland | |||
diff -up xorg-server-1.16.0/mi/miinitext.c.vnc xorg-server-1.16.0/mi/miinitext.c | |||
--- xorg-server-1.16.0/mi/miinitext.c.vnc 2014-04-16 21:24:00.000000000 +0100 | |||
+++ xorg-server-1.16.0/mi/miinitext.c 2014-09-03 10:21:49.508109234 +0100 | |||
@@ -111,6 +111,10 @@ SOFTWARE. | |||
#include "micmap.h" | |||
#include "globals.h" | |||
+#ifdef TIGERVNC | |||
+extern void vncExtensionInit(INITARGS); | |||
+#endif | |||
+ | |||
/* The following is only a small first step towards run-time | |||
* configurable extensions. | |||
*/ | |||
@@ -235,6 +239,9 @@ EnableDisableExtensionError(const char * | |||
/* List of built-in (statically linked) extensions */ | |||
static const ExtensionModule staticExtensions[] = { | |||
+#ifdef TIGERVNC | |||
+ {vncExtensionInit, "VNC-EXTENSION", NULL}, | |||
+#endif | |||
{GEExtensionInit, "Generic Event Extension", &noGEExtension}, | |||
{ShapeExtensionInit, "SHAPE", NULL}, | |||
#ifdef MITSHM | |||
diff -up xorg-server-1.16.0/os/WaitFor.c.vnc xorg-server-1.16.0/os/WaitFor.c | |||
--- xorg-server-1.16.0/os/WaitFor.c.vnc 2014-02-05 03:08:57.000000000 +0000 | |||
+++ xorg-server-1.16.0/os/WaitFor.c 2014-09-03 10:21:49.508109234 +0100 | |||
@@ -125,6 +125,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 | |||
@@ -150,6 +153,7 @@ WaitForSomething(int *pClientsReady) | |||
INT32 timeout = 0; | |||
fd_set clientsReadable; | |||
fd_set clientsWritable; | |||
+ fd_set socketsWritable; | |||
int curclient; | |||
int selecterr; | |||
static int nready; | |||
@@ -212,6 +216,9 @@ WaitForSomething(int *pClientsReady) | |||
XFD_COPYSET(&AllSockets, &LastSelectMask); | |||
} | |||
+ FD_ZERO(&socketsWritable); | |||
+ vncWriteBlockHandler(&socketsWritable); | |||
+ | |||
BlockHandler((void *) &wt, (void *) &LastSelectMask); | |||
if (NewOutputPending) | |||
FlushAllOutput(); |