mirror of
https://github.com/sheumann/VNCviewGS.git
synced 2024-11-22 02:30:47 +00:00
41 lines
1.1 KiB
Plaintext
41 lines
1.1 KiB
Plaintext
#define buffTypePointer 0x0000
|
|
static srBuff theSRBuff;
|
|
static rrBuff theRRBuff;
|
|
int tcpErrorCode;
|
|
void *dataBuffPtr;
|
|
unsigned long remainingDataLength;
|
|
unsigned long initialTime;
|
|
|
|
dataBuffPtr = data;
|
|
remainingDataLength = dataLength;
|
|
|
|
/* Do read and check for error */
|
|
initialTime = TickCount();
|
|
do {
|
|
if (TickCount() >= initialTime + 15*60)
|
|
return FALSE;
|
|
if (TCPIPStatusTCP(hostIpid, &theSRBuff))
|
|
return FALSE;
|
|
if (toolerror())
|
|
return FALSE;
|
|
if ((theSRBuff.srRcvQueued < dataLength) && (waitForData == FALSE))
|
|
return FALSE;
|
|
TCPIPPoll();
|
|
} while ((theSRBuff.srRcvQueued < dataLength));
|
|
|
|
do {
|
|
if (TCPIPReadTCP(hostIpid, buffTypePointer, (Ref) dataBuffPtr,
|
|
remainingDataLength, &theRRBuff))
|
|
return FALSE;
|
|
if (toolerror())
|
|
return FALSE;
|
|
|
|
if (theRRBuff.rrBuffCount == remainingDataLength)
|
|
return TRUE;
|
|
dataBuffPtr += theRRBuff.rrBuffCount;
|
|
remainingDataLength -= theRRBuff.rrBuffCount;
|
|
TCPIPPoll();
|
|
} while (theRRBuff.rrMoreFlag);
|
|
|
|
#undef buffTypeNewHandle
|