diff options
author | Julien Cristau <jcristau@debian.org> | 2008-09-01 19:45:30 +0200 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2008-09-03 13:05:45 -0400 |
commit | 9bb4990c917cc512d39b5889e7bcecb5cfcbeb56 (patch) | |
tree | fdcb40919ea0750ab76063091a6bee793180d2c8 | |
parent | bcea1095da2d29f5812bd1adabac334cfca60355 (diff) |
Xevie: swap replies as necessary
(cherry picked from commit b5cdcfa55c399e83d51242e93d4f25d8bc4fec1f)
-rw-r--r-- | Xext/xevie.c | 27 |
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; } |