#include "XserverDesktop.h"
#include "vncHooks.h"
#include "vncExtInit.h"
+#include "xorg-version.h"
extern "C" {
ev.window = cur->window;
ev.time = GetTimeInMillis();
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
swapl(&ev.time, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+ swapl(&ev.time);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtClientCutTextNotifyEvent),
(char *)&ev);
ev.sequenceNumber = cur->client->sequence;
ev.window = cur->window;
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtQueryConnectNotifyEvent),
(char *)&ev);
ev.window = cur->window;
ev.selection = selection;
if (cur->client->swapped) {
+#if XORG < 112
int n;
swaps(&ev.sequenceNumber, n);
swapl(&ev.window, n);
swapl(&ev.selection, n);
+#else
+ swaps(&ev.sequenceNumber);
+ swapl(&ev.window);
+ swapl(&ev.selection);
+#endif
}
WriteToClient(cur->client, sizeof(xVncExtSelectionChangeNotifyEvent),
(char *)&ev);
param.buf[stuff->paramLen] = 0;
xVncExtSetParamReply rep;
- int n;
rep.type = X_Reply;
rep.length = 0;
rep.success = 0;
deny:
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+#endif
}
WriteToClient(client, sizeof(xVncExtSetParamReply), (char *)&rep);
return (client->noClientException);
static int SProcVncExtSetParam(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSetParamReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtSetParamReq);
return ProcVncExtSetParam(client);
}
param.buf[stuff->paramLen] = 0;
xVncExtGetParamReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.success = 0;
rep.length = (len + 3) >> 2;
rep.valueLen = len;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.valueLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.valueLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetParamReply), (char *)&rep);
if (value)
static int SProcVncExtGetParam(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetParamReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtGetParamReq);
return ProcVncExtGetParam(client);
}
param.buf[stuff->paramLen] = 0;
xVncExtGetParamDescReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.success = 0;
rep.length = (len + 3) >> 2;
rep.descLen = len;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.descLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.descLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetParamDescReply), (char *)&rep);
if (desc)
static int SProcVncExtGetParamDesc(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetParamDescReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtGetParamDescReq);
return ProcVncExtGetParamDesc(client);
}
REQUEST_SIZE_MATCH(xVncExtListParamsReq);
xVncExtListParamsReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = (len + 3) >> 2;
rep.nParams = nParams;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swaps(&rep.nParams, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swaps(&rep.nParams);
+#endif
}
WriteToClient(client, sizeof(xVncExtListParamsReply), (char *)&rep);
rdr::U8* data = new rdr::U8[len];
static int SProcVncExtListParams(ClientPtr client)
{
- register char n;
REQUEST(xVncExtListParamsReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtListParamsReq);
return ProcVncExtListParams(client);
}
static int SProcVncExtSetServerCutText(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSetServerCutTextReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtSetServerCutTextReq);
+#if XORG < 112
swapl(&stuff->textLen, n);
+#else
+ swapl(&stuff->textLen);
+#endif
return ProcVncExtSetServerCutText(client);
}
REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
xVncExtGetClientCutTextReply rep;
- int n;
rep.type = X_Reply;
rep.length = (clientCutTextLen + 3) >> 2;
rep.sequenceNumber = client->sequence;
rep.textLen = clientCutTextLen;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.textLen, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+ swapl(&rep.textLen);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetClientCutTextReply), (char *)&rep);
if (clientCutText)
static int SProcVncExtGetClientCutText(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetClientCutTextReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtGetClientCutTextReq);
return ProcVncExtGetClientCutText(client);
}
static int SProcVncExtSelectInput(ClientPtr client)
{
- register char n;
REQUEST(xVncExtSelectInputReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtSelectInputReq);
+#if XORG < 112
swapl(&stuff->window, n);
swapl(&stuff->mask, n);
+#else
+ swapl(&stuff->window);
+ swapl(&stuff->mask);
+#endif
return ProcVncExtSelectInput(client);
}
rep.length = 0;
rep.sequenceNumber = client->sequence;
if (client->swapped) {
+#if XORG < 112
int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.length);
+#endif
}
WriteToClient(client, sizeof(xVncExtConnectReply), (char *)&rep);
return (client->noClientException);
static int SProcVncExtConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_AT_LEAST_SIZE(xVncExtConnectReq);
return ProcVncExtConnect(client);
}
qcTimeout = 0;
xVncExtGetQueryConnectReply rep;
- int n;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.timeout = qcTimeout;
rep.opaqueId = (CARD32)(long)queryConnectId;
rep.length = (rep.userLen + rep.addrLen + 3) >> 2;
if (client->swapped) {
+#if XORG < 112
+ int n;
swaps(&rep.sequenceNumber, n);
swapl(&rep.userLen, n);
swapl(&rep.addrLen, n);
swapl(&rep.timeout, n);
swapl(&rep.opaqueId, n);
+#else
+ swaps(&rep.sequenceNumber);
+ swapl(&rep.userLen);
+ swapl(&rep.addrLen);
+ swapl(&rep.timeout);
+ swapl(&rep.opaqueId);
+#endif
}
WriteToClient(client, sizeof(xVncExtGetQueryConnectReply), (char *)&rep);
if (qcTimeout)
static int SProcVncExtGetQueryConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtGetQueryConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
+#else
+ swaps(&stuff->length);
+#endif
REQUEST_SIZE_MATCH(xVncExtGetQueryConnectReq);
return ProcVncExtGetQueryConnect(client);
}
static int SProcVncExtApproveConnect(ClientPtr client)
{
- register char n;
REQUEST(xVncExtApproveConnectReq);
+#if XORG < 112
+ register char n;
swaps(&stuff->length, n);
swapl(&stuff->opaqueId, n);
+#else
+ swaps(&stuff->length);
+ swapl(&stuff->opaqueId);
+#endif
REQUEST_SIZE_MATCH(xVncExtApproveConnectReq);
return ProcVncExtApproveConnect(client);
}
--- /dev/null
+diff -up xserver/configure.ac.vnc xserver/configure.ac
+--- xserver/configure.ac.vnc 2012-08-28 15:01:35.142325880 +0200
++++ xserver/configure.ac 2012-08-28 15:02:06.292300682 +0200
+@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.12.4, [https://
+ RELEASE_DATE="2012-08-27"
+ AC_CONFIG_SRCDIR([Makefile.am])
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-AM_MAINTAINER_MODE
+
+ # Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+@@ -72,6 +71,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
+@@ -1493,6 +1493,10 @@ if test "x$XVFB" = xyes; then
+ AC_SUBST([XVFB_SYS_LIBS])
+ fi
+
++dnl Xvnc DDX
++AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"])
++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
+
+@@ -1527,6 +1531,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'
+@@ -1743,7 +1749,6 @@ if test "x$XORG" = xyes; then
+ AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
+ AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
+ AC_DEFINE(XFree86LOADER, 1, [Building loadable 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])
+@@ -2209,6 +2214,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 2012-08-28 15:01:35.225325813 +0200
++++ xserver/hw/Makefile.am 2012-08-28 15:02:06.292300682 +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 2012-08-28 15:01:35.311325743 +0200
++++ xserver/mi/miinitext.c 2012-08-28 15:02:06.293300681 +0200
+@@ -266,6 +266,9 @@ extern void DamageExtensionInit(INITARGS
+ extern void CompositeExtensionInit(INITARGS);
+ #endif
+ extern void GEExtensionInit(INITARGS);
++#ifdef TIGERVNC
++extern void vncExtensionInit(INITARGS);
++#endif
+
+ /* The following is only a small first step towards run-time
+ * configurable extensions.
+@@ -449,6 +452,9 @@ InitExtensions(int argc, char *argv[])
+ if (!noXFree86BigfontExtension)
+ XFree86BigfontExtensionInit();
+ #endif
++#ifdef TIGERVNC
++ vncExtensionInit();
++#endif
+ #if !defined(NO_HW_ONLY_EXTS)
+ #if defined(XF86VIDMODE)
+ if (!noXFree86VidModeExtension)