|
|
@@ -59,6 +59,7 @@ extern "C" { |
|
|
|
#include "XserverDesktop.h" |
|
|
|
#include "vncHooks.h" |
|
|
|
#include "vncExtInit.h" |
|
|
|
#include "xorg-version.h" |
|
|
|
|
|
|
|
extern "C" { |
|
|
|
|
|
|
@@ -449,10 +450,16 @@ void vncClientCutText(const char* str, int len) |
|
|
|
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); |
|
|
@@ -495,9 +502,14 @@ void vncQueryConnect(XserverDesktop* desktop, void* opaqueId) |
|
|
|
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); |
|
|
@@ -538,10 +550,16 @@ static void SendSelectionChangeEvent(Atom selection) |
|
|
|
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); |
|
|
@@ -562,7 +580,6 @@ static int ProcVncExtSetParam(ClientPtr client) |
|
|
|
param.buf[stuff->paramLen] = 0; |
|
|
|
|
|
|
|
xVncExtSetParamReply rep; |
|
|
|
int n; |
|
|
|
rep.type = X_Reply; |
|
|
|
rep.length = 0; |
|
|
|
rep.success = 0; |
|
|
@@ -603,8 +620,14 @@ static int ProcVncExtSetParam(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
@@ -612,9 +635,13 @@ deny: |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -628,7 +655,6 @@ static int ProcVncExtGetParam(ClientPtr client) |
|
|
|
param.buf[stuff->paramLen] = 0; |
|
|
|
|
|
|
|
xVncExtGetParamReply rep; |
|
|
|
int n; |
|
|
|
rep.type = X_Reply; |
|
|
|
rep.sequenceNumber = client->sequence; |
|
|
|
rep.success = 0; |
|
|
@@ -646,9 +672,16 @@ static int ProcVncExtGetParam(ClientPtr client) |
|
|
|
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) |
|
|
@@ -659,9 +692,13 @@ static int ProcVncExtGetParam(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -675,7 +712,6 @@ static int ProcVncExtGetParamDesc(ClientPtr client) |
|
|
|
param.buf[stuff->paramLen] = 0; |
|
|
|
|
|
|
|
xVncExtGetParamDescReply rep; |
|
|
|
int n; |
|
|
|
rep.type = X_Reply; |
|
|
|
rep.sequenceNumber = client->sequence; |
|
|
|
rep.success = 0; |
|
|
@@ -690,9 +726,16 @@ static int ProcVncExtGetParamDesc(ClientPtr client) |
|
|
|
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) |
|
|
@@ -702,9 +745,13 @@ static int ProcVncExtGetParamDesc(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -715,7 +762,6 @@ static int ProcVncExtListParams(ClientPtr client) |
|
|
|
REQUEST_SIZE_MATCH(xVncExtListParamsReq); |
|
|
|
|
|
|
|
xVncExtListParamsReply rep; |
|
|
|
int n; |
|
|
|
rep.type = X_Reply; |
|
|
|
rep.sequenceNumber = client->sequence; |
|
|
|
|
|
|
@@ -731,9 +777,16 @@ static int ProcVncExtListParams(ClientPtr client) |
|
|
|
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]; |
|
|
@@ -753,9 +806,13 @@ static int ProcVncExtListParams(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -778,11 +835,19 @@ static int ProcVncExtSetServerCutText(ClientPtr 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); |
|
|
|
} |
|
|
|
|
|
|
@@ -792,15 +857,21 @@ static int ProcVncExtGetClientCutText(ClientPtr 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) |
|
|
@@ -810,9 +881,13 @@ static int ProcVncExtGetClientCutText(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -842,12 +917,21 @@ static int ProcVncExtSelectInput(ClientPtr 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); |
|
|
|
} |
|
|
|
|
|
|
@@ -893,9 +977,14 @@ static int ProcVncExtConnect(ClientPtr 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); |
|
|
@@ -903,9 +992,13 @@ static int ProcVncExtConnect(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -925,7 +1018,6 @@ static int ProcVncExtGetQueryConnect(ClientPtr client) |
|
|
|
qcTimeout = 0; |
|
|
|
|
|
|
|
xVncExtGetQueryConnectReply rep; |
|
|
|
int n; |
|
|
|
rep.type = X_Reply; |
|
|
|
rep.sequenceNumber = client->sequence; |
|
|
|
rep.timeout = qcTimeout; |
|
|
@@ -934,11 +1026,20 @@ static int ProcVncExtGetQueryConnect(ClientPtr client) |
|
|
|
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) |
|
|
@@ -950,9 +1051,13 @@ static int ProcVncExtGetQueryConnect(ClientPtr client) |
|
|
|
|
|
|
|
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); |
|
|
|
} |
|
|
@@ -977,10 +1082,15 @@ static int ProcVncExtApproveConnect(ClientPtr 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); |
|
|
|
} |