LibVNCServer/LibVNCClient
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
rfbproto.c File Reference
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>
#include <errno.h>
#include <rfb/rfbclient.h>
#include <stdarg.h>
#include <time.h>
#include "minilzo.h"
#include "tls.h"
#include "rre.c"
#include "corre.c"
#include "hextile.c"
#include "ultra.c"
#include "zlib.c"
#include "tight.c"
#include "zrle.c"
#include "vncauth.c"
#include "d3des.c"
+ Include dependency graph for rfbproto.c:

Go to the source code of this file.

Macros

#define FILL_RECT(BPP)
 
#define COPY_RECT(BPP)
 
#define COPY_RECT_FROM_RECT(BPP)
 
#define rfbAddM64(x, y, m)   ((x+y)%m+(x+y<x?(((uint64_t)-1)%m+1)%m:0))
 
#define GET_PIXEL8(pix, ptr)   ((pix) = *(ptr)++)
 
#define GET_PIXEL16(pix, ptr)
 
#define GET_PIXEL32(pix, ptr)
 
#define CONCAT2(a, b)   a##b
 
#define CONCAT2E(a, b)   CONCAT2(a,b)
 
#define CONCAT3(a, b, c)   a##b##c
 
#define CONCAT3E(a, b, c)   CONCAT3(a,b,c)
 
#define BPP   8
 
#define BPP   16
 
#define REALBPP   15
 
#define BPP   32
 
#define REALBPP   24
 
#define REALBPP   24
 
#define UNCOMP   8
 
#define REALBPP   24
 
#define UNCOMP   -8
 
#define rfbEncryptBytes   rfbClientEncryptBytes
 
#define rfbEncryptBytes2   rfbClientEncryptBytes2
 
#define rfbDes   rfbClientDes
 
#define rfbDesKey   rfbClientDesKey
 
#define rfbUseKey   rfbClientUseKey
 
#define rfbCPKey   rfbClientCPKey
 

Functions

void rfbClientRegisterExtension (rfbClientProtocolExtension *e)
 
void rfbClientSetClientData (rfbClient *client, void *tag, void *data)
 Associates a client data tag with the given pointer. More...
 
void * rfbClientGetClientData (rfbClient *client, void *tag)
 Returns a pointer to the client data associated with the given tag. More...
 
rfbBool SupportsClient2Server (rfbClient *client, int messageType)
 
rfbBool SupportsServer2Client (rfbClient *client, int messageType)
 
void SetClient2Server (rfbClient *client, int messageType)
 
void SetServer2Client (rfbClient *client, int messageType)
 
void ClearClient2Server (rfbClient *client, int messageType)
 
void ClearServer2Client (rfbClient *client, int messageType)
 
void DefaultSupportedMessages (rfbClient *client)
 
void DefaultSupportedMessagesUltraVNC (rfbClient *client)
 
void DefaultSupportedMessagesTightVNC (rfbClient *client)
 
rfbBool ConnectToRFBServer (rfbClient *client, const char *hostname, int port)
 
rfbBool ConnectToRFBRepeater (rfbClient *client, const char *repeaterHost, int repeaterPort, const char *destHost, int destPort)
 
void rfbClientEncryptBytes (unsigned char *bytes, char *passwd)
 
void rfbClientEncryptBytes2 (unsigned char *where, const int length, unsigned char *key)
 
rfbBool rfbHandleAuthResult (rfbClient *client)
 
void SetClientAuthSchemes (rfbClient *client, const uint32_t *authSchemes, int size)
 
rfbBool InitialiseRFBConnection (rfbClient *client)
 
rfbBool SetFormatAndEncodings (rfbClient *client)
 Sends format and encoding parameters to the server. More...
 
rfbBool SendIncrementalFramebufferUpdateRequest (rfbClient *client)
 
rfbBool SendFramebufferUpdateRequest (rfbClient *client, int x, int y, int w, int h, rfbBool incremental)
 Sends a framebuffer update request to the server. More...
 
rfbBool SendScaleSetting (rfbClient *client, int scaleSetting)
 
rfbBool TextChatSend (rfbClient *client, char *text)
 Sends a text chat message to the server. More...
 
rfbBool TextChatOpen (rfbClient *client)
 Opens a text chat window on the server. More...
 
rfbBool TextChatClose (rfbClient *client)
 Closes the text chat window on the server. More...
 
rfbBool TextChatFinish (rfbClient *client)
 
rfbBool PermitServerInput (rfbClient *client, int enabled)
 
rfbBool SendXvpMsg (rfbClient *client, uint8_t version, uint8_t code)
 
rfbBool SendPointerEvent (rfbClient *client, int x, int y, int buttonMask)
 Sends a pointer event to the server. More...
 
rfbBool SendKeyEvent (rfbClient *client, uint32_t key, rfbBool down)
 Sends a key event to the server. More...
 
rfbBool SendClientCutText (rfbClient *client, char *str, int len)
 Places a string on the server's clipboard. More...
 
rfbBool HandleRFBServerMessage (rfbClient *client)
 Handles messages from the RFB server. More...
 
void PrintPixelFormat (rfbPixelFormat *format)
 

Variables

rfbBool rfbEnableClientLogging =TRUE
 
rfbClientLogProc rfbClientLog =rfbDefaultClientLog
 
rfbClientLogProc rfbClientErr =rfbDefaultClientLog
 
rfbClientProtocolExtensionrfbClientExtensions = NULL
 

Macro Definition Documentation

#define BPP   8
Examples:
camera.c.

Definition at line 2345 of file rfbproto.c.

#define BPP   16

Definition at line 2345 of file rfbproto.c.

#define BPP   32

Definition at line 2345 of file rfbproto.c.

#define CONCAT2 (   a,
 
)    a##b

Definition at line 2320 of file rfbproto.c.

#define CONCAT2E (   a,
 
)    CONCAT2(a,b)

Definition at line 2321 of file rfbproto.c.

#define CONCAT3 (   a,
  b,
 
)    a##b##c

Definition at line 2322 of file rfbproto.c.

#define CONCAT3E (   a,
  b,
 
)    CONCAT3(a,b,c)

Definition at line 2323 of file rfbproto.c.

#define COPY_RECT (   BPP)
Value:
{ \
int rs = w * BPP / 8, rs2 = client->width * BPP / 8; \
for (j = ((x * (BPP / 8)) + (y * rs2)); j < (y + h) * rs2; j += rs2) { \
memcpy(client->frameBuffer + j, buffer, rs); \
buffer += rs; \
} \
}
#define COPY_RECT_FROM_RECT (   BPP)
Value:
{ \
uint##BPP##_t* _buffer=((uint##BPP##_t*)client->frameBuffer)+(src_y-dest_y)*client->width+src_x-dest_x; \
if (dest_y < src_y) { \
for(j = dest_y*client->width; j < (dest_y+h)*client->width; j += client->width) { \
if (dest_x < src_x) { \
for(i = dest_x; i < dest_x+w; i++) { \
((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \
} \
} else { \
for(i = dest_x+w-1; i >= dest_x; i--) { \
((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \
} \
} \
} \
} else { \
for(j = (dest_y+h-1)*client->width; j >= dest_y*client->width; j-=client->width) { \
if (dest_x < src_x) { \
for(i = dest_x; i < dest_x+w; i++) { \
((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \
} \
} else { \
for(i = dest_x+w-1; i >= dest_x; i--) { \
((uint##BPP##_t*)client->frameBuffer)[j+i]=_buffer[j+i]; \
} \
} \
} \
} \
}
#define FILL_RECT (   BPP)
Value:
for(j=y*client->width;j<(y+h)*client->width;j+=client->width) \
for(i=x;i<x+w;i++) \
((uint##BPP##_t*)client->frameBuffer)[j+i]=colour;
#define GET_PIXEL16 (   pix,
  ptr 
)
Value:
(((uint8_t*)&(pix))[0] = *(ptr)++, \
((uint8_t*)&(pix))[1] = *(ptr)++)

Definition at line 2309 of file rfbproto.c.

#define GET_PIXEL32 (   pix,
  ptr 
)
Value:
(((uint8_t*)&(pix))[0] = *(ptr)++, \
((uint8_t*)&(pix))[1] = *(ptr)++, \
((uint8_t*)&(pix))[2] = *(ptr)++, \
((uint8_t*)&(pix))[3] = *(ptr)++)

Definition at line 2312 of file rfbproto.c.

#define GET_PIXEL8 (   pix,
  ptr 
)    ((pix) = *(ptr)++)

Definition at line 2307 of file rfbproto.c.

#define REALBPP   15

Definition at line 2358 of file rfbproto.c.

#define REALBPP   24

Definition at line 2358 of file rfbproto.c.

#define REALBPP   24

Definition at line 2358 of file rfbproto.c.

#define REALBPP   24

Definition at line 2358 of file rfbproto.c.

#define rfbAddM64 (   x,
  y,
 
)    ((x+y)%m+(x+y<x?(((uint64_t)-1)%m+1)%m:0))

Definition at line 720 of file rfbproto.c.

#define rfbCPKey   rfbClientCPKey

Definition at line 2400 of file rfbproto.c.

#define rfbDes   rfbClientDes

Definition at line 2397 of file rfbproto.c.

#define rfbDesKey   rfbClientDesKey

Definition at line 2398 of file rfbproto.c.

#define rfbEncryptBytes   rfbClientEncryptBytes

Definition at line 2395 of file rfbproto.c.

#define rfbEncryptBytes2   rfbClientEncryptBytes2

Definition at line 2396 of file rfbproto.c.

#define rfbUseKey   rfbClientUseKey

Definition at line 2399 of file rfbproto.c.

#define UNCOMP   8

Definition at line 2359 of file rfbproto.c.

#define UNCOMP   -8

Definition at line 2359 of file rfbproto.c.

Function Documentation

void ClearClient2Server ( rfbClient client,
int  messageType 
)

Definition at line 290 of file rfbproto.c.

void ClearServer2Client ( rfbClient client,
int  messageType 
)

Definition at line 296 of file rfbproto.c.

void DefaultSupportedMessages ( rfbClient client)

Definition at line 303 of file rfbproto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DefaultSupportedMessagesTightVNC ( rfbClient client)

Definition at line 343 of file rfbproto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void DefaultSupportedMessagesUltraVNC ( rfbClient client)

Definition at line 325 of file rfbproto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void rfbClientEncryptBytes ( unsigned char *  bytes,
char *  passwd 
)
void rfbClientEncryptBytes2 ( unsigned char *  where,
const int  length,
unsigned char *  key 
)
rfbBool rfbHandleAuthResult ( rfbClient client)

Definition at line 489 of file rfbproto.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void SetClient2Server ( rfbClient client,
int  messageType 
)

Definition at line 278 of file rfbproto.c.

+ Here is the caller graph for this function:

void SetServer2Client ( rfbClient client,
int  messageType 
)

Definition at line 284 of file rfbproto.c.

+ Here is the caller graph for this function:

Variable Documentation

rfbClientProtocolExtension* rfbClientExtensions = NULL

Definition at line 98 of file rfbproto.c.