Lines Matching refs:client
119 void rfbClientSetClientData(rfbClient* client, void* tag, void* data) in rfbClientSetClientData() argument
121 rfbClientData* clientData = client->clientData; in rfbClientSetClientData()
127 clientData->next = client->clientData; in rfbClientSetClientData()
128 client->clientData = clientData; in rfbClientSetClientData()
135 void* rfbClientGetClientData(rfbClient* client, void* tag) in rfbClientGetClientData() argument
137 rfbClientData* clientData = client->clientData; in rfbClientGetClientData()
150 static void FillRectangle(rfbClient* client, int x, int y, int w, int h, uint32_t colour) { in FillRectangle() argument
154 for(j=y*client->width;j<(y+h)*client->width;j+=client->width) \ in FillRectangle()
156 ((uint##BPP##_t*)client->frameBuffer)[j+i]=colour; in FillRectangle()
158 switch(client->format.bitsPerPixel) { in FillRectangle()
163 rfbClientLog("Unsupported bitsPerPixel: %d\n",client->format.bitsPerPixel); in FillRectangle()
167 static void CopyRectangle(rfbClient* client, uint8_t* buffer, int x, int y, int w, int h) { in CopyRectangle() argument
170 if (client->frameBuffer == NULL) { in CopyRectangle()
176 int rs = w * BPP / 8, rs2 = client->width * BPP / 8; \ in CopyRectangle()
178 memcpy(client->frameBuffer + j, buffer, rs); \ in CopyRectangle()
183 switch(client->format.bitsPerPixel) { in CopyRectangle()
188 rfbClientLog("Unsupported bitsPerPixel: %d\n",client->format.bitsPerPixel); in CopyRectangle()
193 static void CopyRectangleFromRectangle(rfbClient* client, int src_x, int src_y, int w, int h, int d… in CopyRectangleFromRectangle() argument
198 …uint##BPP##_t* _buffer=((uint##BPP##_t*)client->frameBuffer)+(src_y-dest_y)*client->width+src_x-de… in CopyRectangleFromRectangle()
200 for(j = dest_y*client->width; j < (dest_y+h)*client->width; j += client->width) { \ in CopyRectangleFromRectangle()
203 ((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \ in CopyRectangleFromRectangle()
207 ((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \ in CopyRectangleFromRectangle()
212 for(j = (dest_y+h-1)*client->width; j >= dest_y*client->width; j-=client->width) { \ in CopyRectangleFromRectangle()
215 ((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \ in CopyRectangleFromRectangle()
219 ((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \ in CopyRectangleFromRectangle()
226 switch(client->format.bitsPerPixel) { in CopyRectangleFromRectangle()
231 rfbClientLog("Unsupported bitsPerPixel: %d\n",client->format.bitsPerPixel); in CopyRectangleFromRectangle()
235 static rfbBool HandleRRE8(rfbClient* client, int rx, int ry, int rw, int rh);
236 static rfbBool HandleRRE16(rfbClient* client, int rx, int ry, int rw, int rh);
237 static rfbBool HandleRRE32(rfbClient* client, int rx, int ry, int rw, int rh);
238 static rfbBool HandleCoRRE8(rfbClient* client, int rx, int ry, int rw, int rh);
239 static rfbBool HandleCoRRE16(rfbClient* client, int rx, int ry, int rw, int rh);
240 static rfbBool HandleCoRRE32(rfbClient* client, int rx, int ry, int rw, int rh);
241 static rfbBool HandleHextile8(rfbClient* client, int rx, int ry, int rw, int rh);
242 static rfbBool HandleHextile16(rfbClient* client, int rx, int ry, int rw, int rh);
243 static rfbBool HandleHextile32(rfbClient* client, int rx, int ry, int rw, int rh);
244 static rfbBool HandleUltra8(rfbClient* client, int rx, int ry, int rw, int rh);
245 static rfbBool HandleUltra16(rfbClient* client, int rx, int ry, int rw, int rh);
246 static rfbBool HandleUltra32(rfbClient* client, int rx, int ry, int rw, int rh);
247 static rfbBool HandleUltraZip8(rfbClient* client, int rx, int ry, int rw, int rh);
248 static rfbBool HandleUltraZip16(rfbClient* client, int rx, int ry, int rw, int rh);
249 static rfbBool HandleUltraZip32(rfbClient* client, int rx, int ry, int rw, int rh);
251 static rfbBool HandleZlib8(rfbClient* client, int rx, int ry, int rw, int rh);
252 static rfbBool HandleZlib16(rfbClient* client, int rx, int ry, int rw, int rh);
253 static rfbBool HandleZlib32(rfbClient* client, int rx, int ry, int rw, int rh);
255 static rfbBool HandleTight8(rfbClient* client, int rx, int ry, int rw, int rh);
256 static rfbBool HandleTight16(rfbClient* client, int rx, int ry, int rw, int rh);
257 static rfbBool HandleTight32(rfbClient* client, int rx, int ry, int rw, int rh);
259 static long ReadCompactLen (rfbClient* client);
268 static rfbBool HandleZRLE8(rfbClient* client, int rx, int ry, int rw, int rh);
269 static rfbBool HandleZRLE15(rfbClient* client, int rx, int ry, int rw, int rh);
270 static rfbBool HandleZRLE16(rfbClient* client, int rx, int ry, int rw, int rh);
271 static rfbBool HandleZRLE24(rfbClient* client, int rx, int ry, int rw, int rh);
272 static rfbBool HandleZRLE24Up(rfbClient* client, int rx, int ry, int rw, int rh);
273 static rfbBool HandleZRLE24Down(rfbClient* client, int rx, int ry, int rw, int rh);
274 static rfbBool HandleZRLE32(rfbClient* client, int rx, int ry, int rw, int rh);
277 static rfbBool HandleH264 (rfbClient* client, int rx, int ry, int rw, int rh);
284 SupportsClient2Server(rfbClient* client, int messageType) in SupportsClient2Server() argument
286 …return (client->supportedMessages.client2server[((messageType & 0xFF)/8)] & (1<<(messageType % 8))… in SupportsClient2Server()
290 SupportsServer2Client(rfbClient* client, int messageType) in SupportsServer2Client() argument
292 …return (client->supportedMessages.server2client[((messageType & 0xFF)/8)] & (1<<(messageType % 8))… in SupportsServer2Client()
296 SetClient2Server(rfbClient* client, int messageType) in SetClient2Server() argument
298 client->supportedMessages.client2server[((messageType & 0xFF)/8)] |= (1<<(messageType % 8)); in SetClient2Server()
302 SetServer2Client(rfbClient* client, int messageType) in SetServer2Client() argument
304 client->supportedMessages.server2client[((messageType & 0xFF)/8)] |= (1<<(messageType % 8)); in SetServer2Client()
308 ClearClient2Server(rfbClient* client, int messageType) in ClearClient2Server() argument
310 client->supportedMessages.client2server[((messageType & 0xFF)/8)] &= (!(1<<(messageType % 8))); in ClearClient2Server()
314 ClearServer2Client(rfbClient* client, int messageType) in ClearServer2Client() argument
316 client->supportedMessages.server2client[((messageType & 0xFF)/8)] &= (!(1<<(messageType % 8))); in ClearServer2Client()
321 DefaultSupportedMessages(rfbClient* client) in DefaultSupportedMessages() argument
323 memset((char *)&client->supportedMessages,0,sizeof(client->supportedMessages)); in DefaultSupportedMessages()
326 SetClient2Server(client, rfbSetPixelFormat); in DefaultSupportedMessages()
328 SetClient2Server(client, rfbSetEncodings); in DefaultSupportedMessages()
329 SetClient2Server(client, rfbFramebufferUpdateRequest); in DefaultSupportedMessages()
330 SetClient2Server(client, rfbKeyEvent); in DefaultSupportedMessages()
331 SetClient2Server(client, rfbPointerEvent); in DefaultSupportedMessages()
332 SetClient2Server(client, rfbClientCutText); in DefaultSupportedMessages()
336 SetServer2Client(client, rfbFramebufferUpdate); in DefaultSupportedMessages()
337 SetServer2Client(client, rfbSetColourMapEntries); in DefaultSupportedMessages()
338 SetServer2Client(client, rfbBell); in DefaultSupportedMessages()
339 SetServer2Client(client, rfbServerCutText); in DefaultSupportedMessages()
343 DefaultSupportedMessagesUltraVNC(rfbClient* client) in DefaultSupportedMessagesUltraVNC() argument
345 DefaultSupportedMessages(client); in DefaultSupportedMessagesUltraVNC()
346 SetClient2Server(client, rfbFileTransfer); in DefaultSupportedMessagesUltraVNC()
347 SetClient2Server(client, rfbSetScale); in DefaultSupportedMessagesUltraVNC()
348 SetClient2Server(client, rfbSetServerInput); in DefaultSupportedMessagesUltraVNC()
349 SetClient2Server(client, rfbSetSW); in DefaultSupportedMessagesUltraVNC()
350 SetClient2Server(client, rfbTextChat); in DefaultSupportedMessagesUltraVNC()
351 SetClient2Server(client, rfbPalmVNCSetScaleFactor); in DefaultSupportedMessagesUltraVNC()
353 SetServer2Client(client, rfbResizeFrameBuffer); in DefaultSupportedMessagesUltraVNC()
354 SetServer2Client(client, rfbPalmVNCReSizeFrameBuffer); in DefaultSupportedMessagesUltraVNC()
355 SetServer2Client(client, rfbFileTransfer); in DefaultSupportedMessagesUltraVNC()
356 SetServer2Client(client, rfbTextChat); in DefaultSupportedMessagesUltraVNC()
361 DefaultSupportedMessagesTightVNC(rfbClient* client) in DefaultSupportedMessagesTightVNC() argument
363 DefaultSupportedMessages(client); in DefaultSupportedMessagesTightVNC()
364 SetClient2Server(client, rfbFileTransfer); in DefaultSupportedMessagesTightVNC()
365 SetClient2Server(client, rfbSetServerInput); in DefaultSupportedMessagesTightVNC()
366 SetClient2Server(client, rfbSetSW); in DefaultSupportedMessagesTightVNC()
369 SetServer2Client(client, rfbFileTransfer); in DefaultSupportedMessagesTightVNC()
370 SetServer2Client(client, rfbTextChat); in DefaultSupportedMessagesTightVNC()
389 ConnectToRFBServer(rfbClient* client,const char *hostname, int port) in ConnectToRFBServer() argument
391 if (client->serverPort==-1) { in ConnectToRFBServer()
396 client->vncRec = rec; in ConnectToRFBServer()
398 rec->file = fopen(client->serverHost,"rb"); in ConnectToRFBServer()
404 rfbClientLog("Could not open %s.\n",client->serverHost); in ConnectToRFBServer()
410 rfbClientLog("File %s was not recorded by vncrec.\n",client->serverHost); in ConnectToRFBServer()
414 client->sock = -1; in ConnectToRFBServer()
421 client->sock = ConnectClientToUnixSock(hostname); in ConnectToRFBServer()
426 client->sock = ConnectClientToTcpAddr6(hostname, port); in ConnectToRFBServer()
427 if (client->sock == -1) in ConnectToRFBServer()
437 client->sock = ConnectClientToTcpAddr(host, port); in ConnectToRFBServer()
441 if (client->sock < 0) { in ConnectToRFBServer()
446 if(client->QoS_DSCP && !SetDSCP(client->sock, client->QoS_DSCP)) in ConnectToRFBServer()
449 return SetNonBlocking(client->sock); in ConnectToRFBServer()
456 rfbBool ConnectToRFBRepeater(rfbClient* client,const char *repeaterHost, int repeaterPort, const ch… in ConnectToRFBRepeater() argument
463 client->sock = ConnectClientToTcpAddr6(repeaterHost, repeaterPort); in ConnectToRFBRepeater()
464 if (client->sock == -1) in ConnectToRFBRepeater()
473 client->sock = ConnectClientToTcpAddr(host, repeaterPort); in ConnectToRFBRepeater()
476 if (client->sock < 0) { in ConnectToRFBRepeater()
481 if (!SetNonBlocking(client->sock)) in ConnectToRFBRepeater()
484 if (!ReadFromRFBServer(client, pv, sz_rfbProtocolVersionMsg)) in ConnectToRFBRepeater()
497 if (!WriteToRFBServer(client, tmphost, sizeof(tmphost))) in ConnectToRFBRepeater()
507 rfbHandleAuthResult(rfbClient* client) in rfbHandleAuthResult() argument
512 if (!ReadFromRFBServer(client, (char *)&authResult, 4)) return FALSE; in rfbHandleAuthResult()
522 if (client->major==3 && client->minor>7) in rfbHandleAuthResult()
525 if (!ReadFromRFBServer(client, (char *)&reasonLen, 4)) return FALSE; in rfbHandleAuthResult()
528 if (!ReadFromRFBServer(client, reason, reasonLen)) { free(reason); return FALSE; } in rfbHandleAuthResult()
547 ReadReason(rfbClient* client) in ReadReason() argument
553 if (!ReadFromRFBServer(client, (char *)&reasonLen, 4)) return; in ReadReason()
556 if (!ReadFromRFBServer(client, reason, reasonLen)) { free(reason); return; } in ReadReason()
563 ReadSupportedSecurityType(rfbClient* client, uint32_t *result, rfbBool subAuth) in ReadSupportedSecurityType() argument
572 if (!ReadFromRFBServer(client, (char *)&count, 1)) return FALSE; in ReadSupportedSecurityType()
577 ReadReason(client); in ReadSupportedSecurityType()
586 if (!ReadFromRFBServer(client, (char *)&tAuth[loop], 1)) return FALSE; in ReadSupportedSecurityType()
593 (tAuth[loop]==rfbARD && client->GetCredential) || in ReadSupportedSecurityType()
594 … (!subAuth && (tAuth[loop]==rfbTLS || (tAuth[loop]==rfbVeNCrypt && client->GetCredential)))) in ReadSupportedSecurityType()
596 if (!subAuth && client->clientAuthSchemes) in ReadSupportedSecurityType()
599 for (i=0;client->clientAuthSchemes[i];i++) in ReadSupportedSecurityType()
601 if (client->clientAuthSchemes[i]==(uint32_t)tAuth[loop]) in ReadSupportedSecurityType()
618 if (!WriteToRFBServer(client, (char *)&tAuth[loop], 1)) return FALSE; in ReadSupportedSecurityType()
640 HandleVncAuth(rfbClient *client) in HandleVncAuth() argument
646 if (!ReadFromRFBServer(client, (char *)challenge, CHALLENGESIZE)) return FALSE; in HandleVncAuth()
648 if (client->serverPort!=-1) { /* if not playing a vncrec file */ in HandleVncAuth()
649 if (client->GetPassword) in HandleVncAuth()
650 passwd = client->GetPassword(client); in HandleVncAuth()
668 if (!WriteToRFBServer(client, (char *)challenge, CHALLENGESIZE)) return FALSE; in HandleVncAuth()
672 if (!rfbHandleAuthResult(client)) return FALSE; in HandleVncAuth()
686 HandlePlainAuth(rfbClient *client) in HandlePlainAuth() argument
692 if (!client->GetCredential) in HandlePlainAuth()
697 cred = client->GetCredential(client, rfbCredentialTypeUser); in HandlePlainAuth()
708 if (!WriteToRFBServer(client, (char *)&ulensw, 4) || in HandlePlainAuth()
709 !WriteToRFBServer(client, (char *)&plensw, 4)) in HandlePlainAuth()
716 if (!WriteToRFBServer(client, cred->userCredential.username, ulen)) in HandlePlainAuth()
724 if (!WriteToRFBServer(client, cred->userCredential.password, plen)) in HandlePlainAuth()
734 if (!rfbHandleAuthResult(client)) return FALSE; in HandlePlainAuth()
768 HandleMSLogonAuth(rfbClient *client) in HandleMSLogonAuth() argument
774 if (!ReadFromRFBServer(client, (char *)&gen, 8)) return FALSE; in HandleMSLogonAuth()
775 if (!ReadFromRFBServer(client, (char *)&mod, 8)) return FALSE; in HandleMSLogonAuth()
776 if (!ReadFromRFBServer(client, (char *)&resp, 8)) return FALSE; in HandleMSLogonAuth()
781 if (!client->GetCredential) in HandleMSLogonAuth()
788 cred = client->GetCredential(client, rfbCredentialTypeUser); in HandleMSLogonAuth()
813 if (!WriteToRFBServer(client, (char *)&pub, 8)) return FALSE; in HandleMSLogonAuth()
814 if (!WriteToRFBServer(client, (char *)username, sizeof(username))) return FALSE; in HandleMSLogonAuth()
815 if (!WriteToRFBServer(client, (char *)password, sizeof(password))) return FALSE; in HandleMSLogonAuth()
818 if (!rfbHandleAuthResult(client)) return FALSE; in HandleMSLogonAuth()
845 HandleARDAuth(rfbClient *client) in HandleARDAuth() argument
862 if (!ReadFromRFBServer(client, (char *)gen, 2)) in HandleARDAuth()
864 if (!ReadFromRFBServer(client, (char *)len, 2)) in HandleARDAuth()
867 if (!client->GetCredential) in HandleARDAuth()
872 cred = client->GetCredential(client, rfbCredentialTypeUser); in HandleARDAuth()
890 if (!ReadFromRFBServer(client, (char *)mod, keylen)) in HandleARDAuth()
892 if (!ReadFromRFBServer(client, (char *)resp, keylen)) in HandleARDAuth()
988 if (!WriteToRFBServer(client, (char *)ciphertext, sizeof(ciphertext))) in HandleARDAuth()
990 if (!WriteToRFBServer(client, (char *)pub, keylen)) in HandleARDAuth()
994 if (!rfbHandleAuthResult(client)) in HandleARDAuth()
1030 SetClientAuthSchemes(rfbClient* client,const uint32_t *authSchemes, int size) in SetClientAuthSchemes() argument
1034 if (client->clientAuthSchemes) in SetClientAuthSchemes()
1036 free(client->clientAuthSchemes); in SetClientAuthSchemes()
1037 client->clientAuthSchemes = NULL; in SetClientAuthSchemes()
1047 client->clientAuthSchemes = (uint32_t*)malloc(sizeof(uint32_t)*(size+1)); in SetClientAuthSchemes()
1049 client->clientAuthSchemes[i] = authSchemes[i]; in SetClientAuthSchemes()
1050 client->clientAuthSchemes[size] = 0; in SetClientAuthSchemes()
1059 InitialiseRFBConnection(rfbClient* client) in InitialiseRFBConnection() argument
1070 if (client->listenSpecified) in InitialiseRFBConnection()
1073 if (!ReadFromRFBServer(client, pv, sz_rfbProtocolVersionMsg)) return FALSE; in InitialiseRFBConnection()
1086 DefaultSupportedMessages(client); in InitialiseRFBConnection()
1087 client->major = major; in InitialiseRFBConnection()
1088 client->minor = minor; in InitialiseRFBConnection()
1092 client->minor = rfbProtocolMinorVersion; in InitialiseRFBConnection()
1097 DefaultSupportedMessagesUltraVNC(client); in InitialiseRFBConnection()
1103 client->minor = minor; in InitialiseRFBConnection()
1105 DefaultSupportedMessagesUltraVNC(client); in InitialiseRFBConnection()
1111 DefaultSupportedMessagesTightVNC(client); in InitialiseRFBConnection()
1117 client->major=3; in InitialiseRFBConnection()
1118 client->minor=8; in InitialiseRFBConnection()
1124 sprintf(pv,rfbProtocolVersionFormat,client->major,client->minor); in InitialiseRFBConnection()
1126 if (!WriteToRFBServer(client, pv, sz_rfbProtocolVersionMsg)) return FALSE; in InitialiseRFBConnection()
1130 if (client->major==3 && client->minor > 6) in InitialiseRFBConnection()
1132 if (!ReadSupportedSecurityType(client, &authScheme, FALSE)) return FALSE; in InitialiseRFBConnection()
1136 if (!ReadFromRFBServer(client, (char *)&authScheme, 4)) return FALSE; in InitialiseRFBConnection()
1141 client->authScheme = authScheme; in InitialiseRFBConnection()
1146 ReadReason(client); in InitialiseRFBConnection()
1153 if ((client->major==3 && client->minor > 7) || client->major>3) in InitialiseRFBConnection()
1154 if (!rfbHandleAuthResult(client)) return FALSE; in InitialiseRFBConnection()
1159 if (!HandleVncAuth(client)) return FALSE; in InitialiseRFBConnection()
1163 if (!HandleMSLogonAuth(client)) return FALSE; in InitialiseRFBConnection()
1171 if (!HandleARDAuth(client)) return FALSE; in InitialiseRFBConnection()
1176 if (!HandleAnonTLSAuth(client)) return FALSE; in InitialiseRFBConnection()
1180 if (!ReadSupportedSecurityType(client, &subAuthScheme, TRUE)) return FALSE; in InitialiseRFBConnection()
1181 client->subAuthScheme = subAuthScheme; in InitialiseRFBConnection()
1186 ReadReason(client); in InitialiseRFBConnection()
1192 if ((client->major==3 && client->minor > 7) || client->major>3) in InitialiseRFBConnection()
1193 if (!rfbHandleAuthResult(client)) return FALSE; in InitialiseRFBConnection()
1197 if (!HandleVncAuth(client)) return FALSE; in InitialiseRFBConnection()
1209 if (!HandleVeNCryptAuth(client)) return FALSE; in InitialiseRFBConnection()
1211 switch (client->subAuthScheme) { in InitialiseRFBConnection()
1216 if (!rfbHandleAuthResult(client)) return FALSE; in InitialiseRFBConnection()
1221 if (!HandleVncAuth(client)) return FALSE; in InitialiseRFBConnection()
1226 if (!HandlePlainAuth(client)) return FALSE; in InitialiseRFBConnection()
1231 client->subAuthScheme); in InitialiseRFBConnection()
1243 ci.shared = (client->appData.shareDesktop ? 1 : 0); in InitialiseRFBConnection()
1245 if (!WriteToRFBServer(client, (char *)&ci, sz_rfbClientInitMsg)) return FALSE; in InitialiseRFBConnection()
1247 if (!ReadFromRFBServer(client, (char *)&client->si, sz_rfbServerInitMsg)) return FALSE; in InitialiseRFBConnection()
1249 client->si.framebufferWidth = rfbClientSwap16IfLE(client->si.framebufferWidth); in InitialiseRFBConnection()
1250 client->si.framebufferHeight = rfbClientSwap16IfLE(client->si.framebufferHeight); in InitialiseRFBConnection()
1251 client->si.format.redMax = rfbClientSwap16IfLE(client->si.format.redMax); in InitialiseRFBConnection()
1252 client->si.format.greenMax = rfbClientSwap16IfLE(client->si.format.greenMax); in InitialiseRFBConnection()
1253 client->si.format.blueMax = rfbClientSwap16IfLE(client->si.format.blueMax); in InitialiseRFBConnection()
1254 client->si.nameLength = rfbClientSwap32IfLE(client->si.nameLength); in InitialiseRFBConnection()
1257 client->desktopName = malloc((uint64_t)client->si.nameLength + 1); in InitialiseRFBConnection()
1258 if (!client->desktopName) { in InitialiseRFBConnection()
1260 (unsigned long)client->si.nameLength); in InitialiseRFBConnection()
1264 if (!ReadFromRFBServer(client, client->desktopName, client->si.nameLength)) return FALSE; in InitialiseRFBConnection()
1266 client->desktopName[client->si.nameLength] = 0; in InitialiseRFBConnection()
1268 rfbClientLog("Desktop name \"%s\"\n",client->desktopName); in InitialiseRFBConnection()
1271 client->major, client->minor); in InitialiseRFBConnection()
1274 PrintPixelFormat(&client->si.format); in InitialiseRFBConnection()
1285 SetFormatAndEncodings(rfbClient* client) in SetFormatAndEncodings() argument
1298 if (!SupportsClient2Server(client, rfbSetPixelFormat)) return TRUE; in SetFormatAndEncodings()
1303 spf.format = client->format; in SetFormatAndEncodings()
1308 if (!WriteToRFBServer(client, (char *)&spf, sz_rfbSetPixelFormatMsg)) in SetFormatAndEncodings()
1312 if (!SupportsClient2Server(client, rfbSetEncodings)) return TRUE; in SetFormatAndEncodings()
1317 if (client->appData.encodingsString) { in SetFormatAndEncodings()
1318 const char *encStr = client->appData.encodingsString; in SetFormatAndEncodings()
1338 if (client->appData.compressLevel >= 0 && client->appData.compressLevel <= 9) in SetFormatAndEncodings()
1340 if (client->appData.enableJPEG) in SetFormatAndEncodings()
1349 if (client->appData.compressLevel >= 0 && client->appData.compressLevel <= 9) in SetFormatAndEncodings()
1353 if (client->appData.compressLevel >= 0 && client->appData.compressLevel <= 9) in SetFormatAndEncodings()
1381 encs[se->nEncodings++] = rfbClientSwap32IfLE(client->appData.compressLevel + in SetFormatAndEncodings()
1386 if (client->appData.qualityLevel < 0 || client->appData.qualityLevel > 9) in SetFormatAndEncodings()
1387 client->appData.qualityLevel = 5; in SetFormatAndEncodings()
1388 encs[se->nEncodings++] = rfbClientSwap32IfLE(client->appData.qualityLevel + in SetFormatAndEncodings()
1393 if (SameMachine(client->sock)) { in SetFormatAndEncodings()
1424 if (client->appData.compressLevel >= 0 && client->appData.compressLevel <= 9) { in SetFormatAndEncodings()
1425 encs[se->nEncodings++] = rfbClientSwap32IfLE(client->appData.compressLevel + in SetFormatAndEncodings()
1435 if (client->appData.enableJPEG) { in SetFormatAndEncodings()
1436 if (client->appData.qualityLevel < 0 || client->appData.qualityLevel > 9) in SetFormatAndEncodings()
1437 client->appData.qualityLevel = 5; in SetFormatAndEncodings()
1438 encs[se->nEncodings++] = rfbClientSwap32IfLE(client->appData.qualityLevel + in SetFormatAndEncodings()
1450 if (client->appData.useRemoteCursor) { in SetFormatAndEncodings()
1464 if (se->nEncodings < MAX_ENCODINGS && client->canHandleNewFBSize) in SetFormatAndEncodings()
1495 if (!WriteToRFBServer(client, buf, len)) return FALSE; in SetFormatAndEncodings()
1506 SendIncrementalFramebufferUpdateRequest(rfbClient* client) in SendIncrementalFramebufferUpdateRequest() argument
1508 return SendFramebufferUpdateRequest(client, in SendIncrementalFramebufferUpdateRequest()
1509 client->updateRect.x, client->updateRect.y, in SendIncrementalFramebufferUpdateRequest()
1510 client->updateRect.w, client->updateRect.h, TRUE); in SendIncrementalFramebufferUpdateRequest()
1519 SendFramebufferUpdateRequest(rfbClient* client, int x, int y, int w, int h, rfbBool incremental) in SendFramebufferUpdateRequest() argument
1523 if (!SupportsClient2Server(client, rfbFramebufferUpdateRequest)) return TRUE; in SendFramebufferUpdateRequest()
1532 if (!WriteToRFBServer(client, (char *)&fur, sz_rfbFramebufferUpdateRequestMsg)) in SendFramebufferUpdateRequest()
1543 SendScaleSetting(rfbClient* client,int scaleSetting) in SendScaleSetting() argument
1551 if (SupportsClient2Server(client, rfbSetScale)) { in SendScaleSetting()
1553 if (!WriteToRFBServer(client, (char *)&ssm, sz_rfbSetScaleMsg)) in SendScaleSetting()
1557 if (SupportsClient2Server(client, rfbPalmVNCSetScaleFactor)) { in SendScaleSetting()
1559 if (!WriteToRFBServer(client, (char *)&ssm, sz_rfbSetScaleMsg)) in SendScaleSetting()
1572 rfbBool TextChatSend(rfbClient* client, char *text) in TextChatSend() argument
1577 if (!SupportsClient2Server(client, rfbTextChat)) return TRUE; in TextChatSend()
1584 if (!WriteToRFBServer(client, (char *)&chat, sz_rfbTextChatMsg)) in TextChatSend()
1588 if (!WriteToRFBServer(client, text, count)) in TextChatSend()
1594 rfbBool TextChatOpen(rfbClient* client) in TextChatOpen() argument
1598 if (!SupportsClient2Server(client, rfbTextChat)) return TRUE; in TextChatOpen()
1603 return (WriteToRFBServer(client, (char *)&chat, sz_rfbTextChatMsg) ? TRUE : FALSE); in TextChatOpen()
1606 rfbBool TextChatClose(rfbClient* client) in TextChatClose() argument
1609 if (!SupportsClient2Server(client, rfbTextChat)) return TRUE; in TextChatClose()
1614 return (WriteToRFBServer(client, (char *)&chat, sz_rfbTextChatMsg) ? TRUE : FALSE); in TextChatClose()
1617 rfbBool TextChatFinish(rfbClient* client) in TextChatFinish() argument
1620 if (!SupportsClient2Server(client, rfbTextChat)) return TRUE; in TextChatFinish()
1625 return (WriteToRFBServer(client, (char *)&chat, sz_rfbTextChatMsg) ? TRUE : FALSE); in TextChatFinish()
1633 rfbBool PermitServerInput(rfbClient* client, int enabled) in PermitServerInput() argument
1637 if (!SupportsClient2Server(client, rfbSetServerInput)) return TRUE; in PermitServerInput()
1642 return (WriteToRFBServer(client, (char *)&msg, sz_rfbSetServerInputMsg) ? TRUE : FALSE); in PermitServerInput()
1660 rfbBool SendXvpMsg(rfbClient* client, uint8_t version, uint8_t code) in SendXvpMsg() argument
1664 if (!SupportsClient2Server(client, rfbXvp)) return TRUE; in SendXvpMsg()
1670 if (!WriteToRFBServer(client, (char *)&xvp, sz_rfbXvpMsg)) in SendXvpMsg()
1682 SendPointerEvent(rfbClient* client,int x, int y, int buttonMask) in SendPointerEvent() argument
1686 if (!SupportsClient2Server(client, rfbPointerEvent)) return TRUE; in SendPointerEvent()
1695 return WriteToRFBServer(client, (char *)&pe, sz_rfbPointerEventMsg); in SendPointerEvent()
1704 SendKeyEvent(rfbClient* client, uint32_t key, rfbBool down) in SendKeyEvent() argument
1708 if (!SupportsClient2Server(client, rfbKeyEvent)) return TRUE; in SendKeyEvent()
1713 return WriteToRFBServer(client, (char *)&ke, sz_rfbKeyEventMsg); in SendKeyEvent()
1722 SendClientCutText(rfbClient* client, char *str, int len) in SendClientCutText() argument
1726 if (!SupportsClient2Server(client, rfbClientCutText)) return TRUE; in SendClientCutText()
1730 return (WriteToRFBServer(client, (char *)&cct, sz_rfbClientCutTextMsg) && in SendClientCutText()
1731 WriteToRFBServer(client, str, len)); in SendClientCutText()
1741 HandleRFBServerMessage(rfbClient* client) in HandleRFBServerMessage() argument
1745 if (client->serverPort==-1) in HandleRFBServerMessage()
1746 client->vncRec->readTimestamp = TRUE; in HandleRFBServerMessage()
1747 if (!ReadFromRFBServer(client, (char *)&msg, 1)) in HandleRFBServerMessage()
1788 if (!ReadFromRFBServer(client, ((char *)&msg.fu) + 1, in HandleRFBServerMessage()
1795 if (!ReadFromRFBServer(client, (char *)&rect, sz_rfbFramebufferUpdateRectHeader)) in HandleRFBServerMessage()
1811 if (!HandleCursorShape(client, in HandleRFBServerMessage()
1820 if (!client->HandleCursorPos(client,rect.r.x, rect.r.y)) { in HandleRFBServerMessage()
1828 client->KeyboardLedStateEnabled = 1; in HandleRFBServerMessage()
1829 if (client->HandleKeyboardLedState!=NULL) in HandleRFBServerMessage()
1830 client->HandleKeyboardLedState(client, rect.r.x, 0); in HandleRFBServerMessage()
1832 client->CurrentKeyboardLedState = rect.r.x; in HandleRFBServerMessage()
1837 client->width = rect.r.w; in HandleRFBServerMessage()
1838 client->height = rect.r.h; in HandleRFBServerMessage()
1839 client->updateRect.x = client->updateRect.y = 0; in HandleRFBServerMessage()
1840 client->updateRect.w = client->width; in HandleRFBServerMessage()
1841 client->updateRect.h = client->height; in HandleRFBServerMessage()
1842 if (!client->MallocFrameBuffer(client)) in HandleRFBServerMessage()
1844 SendFramebufferUpdateRequest(client, 0, 0, rect.r.w, rect.r.h, FALSE); in HandleRFBServerMessage()
1852 … if (!ReadFromRFBServer(client, (char *)&client->supportedMessages, sz_rfbSupportedMessages)) in HandleRFBServerMessage()
1861 … client->supportedMessages.client2server[loop], client->supportedMessages.client2server[loop+1], in HandleRFBServerMessage()
1862 … client->supportedMessages.client2server[loop+2], client->supportedMessages.client2server[loop+3], in HandleRFBServerMessage()
1863 … client->supportedMessages.client2server[loop+4], client->supportedMessages.client2server[loop+5], in HandleRFBServerMessage()
1864 … client->supportedMessages.client2server[loop+6], client->supportedMessages.client2server[loop+7]); in HandleRFBServerMessage()
1869 … client->supportedMessages.server2client[loop], client->supportedMessages.server2client[loop+1], in HandleRFBServerMessage()
1870 … client->supportedMessages.server2client[loop+2], client->supportedMessages.server2client[loop+3], in HandleRFBServerMessage()
1871 … client->supportedMessages.server2client[loop+4], client->supportedMessages.server2client[loop+5], in HandleRFBServerMessage()
1872 … client->supportedMessages.server2client[loop+6], client->supportedMessages.server2client[loop+7]); in HandleRFBServerMessage()
1880 if (!ReadFromRFBServer(client, buffer, rect.r.w)) in HandleRFBServerMessage()
1896 if (!ReadFromRFBServer(client, buffer, rect.r.w)) in HandleRFBServerMessage()
1910 if ((rect.r.x + rect.r.w > client->width) || in HandleRFBServerMessage()
1911 (rect.r.y + rect.r.h > client->height)) in HandleRFBServerMessage()
1930 client->SoftCursorLockArea(client, rect.r.x, rect.r.y, rect.r.w, rect.r.h); in HandleRFBServerMessage()
1938 bytesPerLine = rect.r.w * client->format.bitsPerPixel / 8; in HandleRFBServerMessage()
1945 if (!ReadFromRFBServer(client, client->buffer,bytesPerLine * linesToRead)) in HandleRFBServerMessage()
1948 CopyRectangle(client, (uint8_t *)client->buffer, in HandleRFBServerMessage()
1961 if (!ReadFromRFBServer(client, (char *)&cr, sz_rfbCopyRect)) in HandleRFBServerMessage()
1970 client->SoftCursorLockArea(client, in HandleRFBServerMessage()
1973 if (client->GotCopyRect != NULL) { in HandleRFBServerMessage()
1974 client->GotCopyRect(client, cr.srcX, cr.srcY, rect.r.w, rect.r.h, in HandleRFBServerMessage()
1977 CopyRectangleFromRectangle(client, in HandleRFBServerMessage()
1986 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
1988 if (!HandleRRE8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
1992 if (!HandleRRE16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
1996 if (!HandleRRE32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2005 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2007 if (!HandleCoRRE8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2011 if (!HandleCoRRE16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2015 if (!HandleCoRRE32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2024 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2026 if (!HandleHextile8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2030 if (!HandleHextile16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2034 if (!HandleHextile32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2043 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2045 if (!HandleUltra8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2049 if (!HandleUltra16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2053 if (!HandleUltra32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2061 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2063 if (!HandleUltraZip8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2067 if (!HandleUltraZip16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2071 if (!HandleUltraZip32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2081 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2083 if (!HandleZlib8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2087 if (!HandleZlib16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2091 if (!HandleZlib32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2101 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2103 if (!HandleTight8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2107 if (!HandleTight16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2111 if (!HandleTight32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2120 client->appData.qualityLevel = 9; in HandleRFBServerMessage()
2124 switch (client->format.bitsPerPixel) { in HandleRFBServerMessage()
2126 if (!HandleZRLE8(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2130 if (client->si.format.greenMax > 0x1F) { in HandleRFBServerMessage()
2131 if (!HandleZRLE16(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2134 if (!HandleZRLE15(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2140 uint32_t maxColor=(client->format.redMax<<client->format.redShift)| in HandleRFBServerMessage()
2141 (client->format.greenMax<<client->format.greenShift)| in HandleRFBServerMessage()
2142 (client->format.blueMax<<client->format.blueShift); in HandleRFBServerMessage()
2143 if ((client->format.bigEndian && (maxColor&0xff)==0) || in HandleRFBServerMessage()
2144 (!client->format.bigEndian && (maxColor&0xff000000)==0)) { in HandleRFBServerMessage()
2145 if (!HandleZRLE24(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2147 } else if (!client->format.bigEndian && (maxColor&0xff)==0) { in HandleRFBServerMessage()
2148 if (!HandleZRLE24Up(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2150 } else if (client->format.bigEndian && (maxColor&0xff000000)==0) { in HandleRFBServerMessage()
2151 if (!HandleZRLE24Down(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2153 } else if (!HandleZRLE32(client, rect.r.x,rect.r.y,rect.r.w,rect.r.h)) in HandleRFBServerMessage()
2165 if (!HandleH264(client, rect.r.x, rect.r.y, rect.r.w, rect.r.h)) in HandleRFBServerMessage()
2177 if(e->handleEncoding && e->handleEncoding(client, &rect)) in HandleRFBServerMessage()
2189 client->SoftCursorUnlockScreen(client); in HandleRFBServerMessage()
2191 client->GotFrameBufferUpdate(client, rect.r.x, rect.r.y, rect.r.w, rect.r.h); in HandleRFBServerMessage()
2194 if (!SendIncrementalFramebufferUpdateRequest(client)) in HandleRFBServerMessage()
2197 if (client->FinishedFrameBufferUpdate) in HandleRFBServerMessage()
2198 client->FinishedFrameBufferUpdate(client); in HandleRFBServerMessage()
2205 client->Bell(client); in HandleRFBServerMessage()
2214 if (!ReadFromRFBServer(client, ((char *)&msg) + 1, in HandleRFBServerMessage()
2222 if (!ReadFromRFBServer(client, buffer, msg.sct.length)) in HandleRFBServerMessage()
2227 if (client->GotXCutText) in HandleRFBServerMessage()
2228 client->GotXCutText(client, buffer, msg.sct.length); in HandleRFBServerMessage()
2238 if (!ReadFromRFBServer(client, ((char *)&msg) + 1, in HandleRFBServerMessage()
2245 if (client->HandleTextChat!=NULL) in HandleRFBServerMessage()
2246 client->HandleTextChat(client, (int)rfbTextChatOpen, NULL); in HandleRFBServerMessage()
2250 if (client->HandleTextChat!=NULL) in HandleRFBServerMessage()
2251 client->HandleTextChat(client, (int)rfbTextChatClose, NULL); in HandleRFBServerMessage()
2255 if (client->HandleTextChat!=NULL) in HandleRFBServerMessage()
2256 client->HandleTextChat(client, (int)rfbTextChatFinished, NULL); in HandleRFBServerMessage()
2260 if (!ReadFromRFBServer(client, buffer, msg.tc.length)) in HandleRFBServerMessage()
2268 if (client->HandleTextChat!=NULL) in HandleRFBServerMessage()
2269 client->HandleTextChat(client, (int)msg.tc.length, buffer); in HandleRFBServerMessage()
2278 if (!ReadFromRFBServer(client, ((char *)&msg) + 1, in HandleRFBServerMessage()
2282 SetClient2Server(client, rfbXvp); in HandleRFBServerMessage()
2286 SetServer2Client(client, rfbXvp); in HandleRFBServerMessage()
2288 if(client->HandleXvpMsg) in HandleRFBServerMessage()
2289 client->HandleXvpMsg(client, msg.xvp.version, msg.xvp.code); in HandleRFBServerMessage()
2296 if (!ReadFromRFBServer(client, ((char *)&msg) + 1, in HandleRFBServerMessage()
2299 client->width = rfbClientSwap16IfLE(msg.rsfb.framebufferWidth); in HandleRFBServerMessage()
2300 client->height = rfbClientSwap16IfLE(msg.rsfb.framebufferHeigth); in HandleRFBServerMessage()
2301 client->updateRect.x = client->updateRect.y = 0; in HandleRFBServerMessage()
2302 client->updateRect.w = client->width; in HandleRFBServerMessage()
2303 client->updateRect.h = client->height; in HandleRFBServerMessage()
2304 if (!client->MallocFrameBuffer(client)) in HandleRFBServerMessage()
2307 SendFramebufferUpdateRequest(client, 0, 0, client->width, client->height, FALSE); in HandleRFBServerMessage()
2308 rfbClientLog("Got new framebuffer size: %dx%d\n", client->width, client->height); in HandleRFBServerMessage()
2314 if (!ReadFromRFBServer(client, ((char *)&msg) + 1, in HandleRFBServerMessage()
2317 client->width = rfbClientSwap16IfLE(msg.prsfb.buffer_w); in HandleRFBServerMessage()
2318 client->height = rfbClientSwap16IfLE(msg.prsfb.buffer_h); in HandleRFBServerMessage()
2319 client->updateRect.x = client->updateRect.y = 0; in HandleRFBServerMessage()
2320 client->updateRect.w = client->width; in HandleRFBServerMessage()
2321 client->updateRect.h = client->height; in HandleRFBServerMessage()
2322 if (!client->MallocFrameBuffer(client)) in HandleRFBServerMessage()
2324 SendFramebufferUpdateRequest(client, 0, 0, client->width, client->height, FALSE); in HandleRFBServerMessage()
2325 rfbClientLog("Got new framebuffer size: %dx%d\n", client->width, client->height); in HandleRFBServerMessage()
2335 if(e->handleMessage && e->handleMessage(client, &msg)) in HandleRFBServerMessage()
2341 ReadFromRFBServer(client, buffer, 256); in HandleRFBServerMessage()