#include "scope.h"
#include "x11.h"
#include "lbxscope.h"
static unsigned long sequences[256];
static unsigned char starting_server[256];
static unsigned char starting_client[256];
static int client_client, server_client;
void
LbxQueryVersion (
FD fd,
const unsigned char *buf)
{
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
}
void
LbxQueryVersionReply (
FD fd,
const unsigned char *buf)
{
PrintField(RBf, 0, 1, REPLY, REPLYHEADER) ;
PrintField(RBf, 1, 1, LBXREPLY, LBXREPLYHEADER) ;
if (Verbose < 1)
return;
printfield(buf, 2, 2, CARD16, "sequence number");
printfield(buf, 4, 4, DVALUE4(0), "reply length");
PrintField(buf, 8, 2, CARD16, "major-version");
PrintField(buf, 10, 2, CARD16, "minor-version");
}
void
LbxStartProxy (
FD fd,
const unsigned char *buf)
{
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
}
void
LbxStopProxy (
FD fd,
const unsigned char *buf)
{
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
}
void
LbxNewClient (
FD fd,
const unsigned char *buf)
{
unsigned long c;
c = ILong(&buf[4]);
starting_client[c] = 1;
starting_server[c] = 1;
sequences[c] = 0;
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
PrintField(buf, 4, 4, CARD32, "new-client-id");
}
void
LbxCloseClient (
FD fd,
const unsigned char *buf)
{
}
void
LbxSwitch (
FD fd,
const unsigned char *buf)
{
unsigned long c;
c = ILong(&buf[4]);
CS[fd].SequenceNumber--;
sequences[client_client] = CS[fd].SequenceNumber;
if (starting_client[c])
{
CS[fd].ByteProcessing = StartSetUpMessage;
CS[fd].NumberofBytesNeeded = 12;
starting_client[c] = 0;
}
CS[fd].SequenceNumber = sequences[c];
client_client = c;
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
PrintField(buf, 4, 4, CARD32, "client number");
}
void
LbxModifySequence (
FD fd,
const unsigned char *buf)
{
int mod;
mod = ILong(&buf[4]);
CS[fd].SequenceNumber += mod;
PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) ;
PrintField (buf, 1, 1, LBXREQUEST, LBXREQUESTHEADER) ;
if (Verbose < 1)
return;
if (Verbose > 1)
PrintField(SBf, 0, 4, CARD32, "sequence number");
printreqlen(buf, fd, CONST2(2));
printfield(buf, 4, 4, INT32, "adjustment");
}
void
LbxSwitchEvent (
FD fd,
const unsigned char *buf)
{
unsigned long c;
c = ILong(&buf[4]);
if (starting_server[c])
{
CS[fd].ByteProcessing = StartSetUpReply;
CS[fd].NumberofBytesNeeded = 8;
starting_server[c] = 0;
}
PrintField(buf, 0, 1, EVENT, EVENTHEADER) ;
PrintField(buf, 1, 1, LBXEVENT, LBXEVENTHEADER) ;
if (Verbose < 1)
return;
printfield(buf, 2, 2, CARD16, "sequence number");
PrintField(buf, 4, 4, CARD32, "client");
}
void
LbxCloseEvent (
FD fd,
const unsigned char *buf)
{
PrintField(buf, 0, 1, EVENT, EVENTHEADER) ;
PrintField(buf, 1, 1, LBXEVENT, LBXEVENTHEADER) ;
if (Verbose < 1)
return;
printfield(buf, 2, 2, CARD16, "sequence number");
PrintField(buf, 4, 4, CARD32, "client");
}