summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Cristau <jcristau@debian.org>2008-09-01 19:45:30 +0200
committerAdam Jackson <ajax@redhat.com>2008-09-03 13:05:45 -0400
commit9bb4990c917cc512d39b5889e7bcecb5cfcbeb56 (patch)
treefdcb40919ea0750ab76063091a6bee793180d2c8
parentbcea1095da2d29f5812bd1adabac334cfca60355 (diff)
Xevie: swap replies as necessary
(cherry picked from commit b5cdcfa55c399e83d51242e93d4f25d8bc4fec1f)
-rw-r--r--Xext/xevie.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/Xext/xevie.c b/Xext/xevie.c
index 3fbe04d27..1d51fd825 100644
--- a/Xext/xevie.c
+++ b/Xext/xevie.c
@@ -156,6 +156,7 @@ static
int ProcXevieQueryVersion (register ClientPtr client)
{
xXevieQueryVersionReply rep;
+ int n;
REQUEST_SIZE_MATCH (xXevieQueryVersionReq);
rep.type = X_Reply;
@@ -163,6 +164,12 @@ int ProcXevieQueryVersion (register ClientPtr client)
rep.sequence_number = client->sequence;
rep.server_major_version = XEVIE_MAJOR_VERSION;
rep.server_minor_version = XEVIE_MINOR_VERSION;
+ if (client->swapped) {
+ swaps(&rep.sequence_number, n);
+ swapl(&rep.length, n);
+ swaps(&rep.server_major_version, n);
+ swaps(&rep.server_minor_version, n);
+ }
WriteToClient (client, sizeof (xXevieQueryVersionReply), (char *)&rep);
return client->noClientException;
}
@@ -171,6 +178,7 @@ static
int ProcXevieStart (register ClientPtr client)
{
xXevieStartReply rep;
+ int n;
REQUEST_SIZE_MATCH (xXevieStartReq);
rep.pad1 = 0;
@@ -205,6 +213,10 @@ int ProcXevieStart (register ClientPtr client)
rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
+ if (client->swapped) {
+ swaps(&rep.sequence_number, n);
+ swapl(&rep.length, n);
+ }
WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
return client->noClientException;
}
@@ -213,6 +225,7 @@ static
int ProcXevieEnd (register ClientPtr client)
{
xXevieEndReply rep;
+ int n;
REQUEST_SIZE_MATCH (xXevieEndReq);
@@ -227,6 +240,10 @@ int ProcXevieEnd (register ClientPtr client)
rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
+ if (client->swapped) {
+ swaps(&rep.sequence_number, n);
+ swapl(&rep.length, n);
+ }
WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
return client->noClientException;
}
@@ -238,6 +255,7 @@ int ProcXevieSend (register ClientPtr client)
xXevieSendReply rep;
xEvent *xE;
static unsigned char lastDetail = 0, lastType = 0;
+ int n;
REQUEST_SIZE_MATCH (xXevieSendReq);
@@ -248,6 +266,10 @@ int ProcXevieSend (register ClientPtr client)
rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
+ if (client->swapped) {
+ swaps(&rep.sequence_number, n);
+ swapl(&rep.length, n);
+ }
WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
switch(xE->u.u.type) {
@@ -285,6 +307,7 @@ int ProcXevieSelectInput (register ClientPtr client)
{
REQUEST (xXevieSelectInputReq);
xXevieSelectInputReply rep;
+ int n;
REQUEST_SIZE_MATCH (xXevieSelectInputReq);
@@ -295,6 +318,10 @@ int ProcXevieSelectInput (register ClientPtr client)
rep.length = 0;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
+ if (client->swapped) {
+ swaps(&rep.sequence_number, n);
+ swapl(&rep.length, n);
+ }
WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
return client->noClientException;
}