• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

krfb

  • sources
  • kde-4.14
  • kdenetwork
  • krfb
  • libvncserver
  • rfb
libvncserver/rfb/rfb.h
Go to the documentation of this file.
1 #ifndef RFB_H
2 #define RFB_H
3 
12 /*
13  * Copyright (C) 2005 Rohit Kumar <rokumar@novell.com>,
14  * Johannes E. Schindelin <johannes.schindelin@gmx.de>
15  * Copyright (C) 2002 RealVNC Ltd.
16  * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>.
17  * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge.
18  * All Rights Reserved.
19  *
20  * This is free software; you can redistribute it and/or modify
21  * it under the terms of the GNU General Public License as published by
22  * the Free Software Foundation; either version 2 of the License, or
23  * (at your option) any later version.
24  *
25  * This software is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28  * GNU General Public License for more details.
29  *
30  * You should have received a copy of the GNU General Public License
31  * along with this software; if not, write to the Free Software
32  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
33  * USA.
34  */
35 
36 #if(defined __cplusplus)
37 extern "C"
38 {
39 #endif
40 
41 #include <stdio.h>
42 #include <stdlib.h>
43 #include <string.h>
44 #include "rfbproto.h"
45 
46 #ifdef LIBVNCSERVER_HAVE_SYS_TYPES_H
47 #include <sys/types.h>
48 #endif
49 
50 #ifdef __MINGW32__
51 #undef SOCKET
52 #include <winsock2.h>
53 #endif
54 
55 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
56 #include <pthread.h>
57 #if 0 /* debugging */
58 #define LOCK(mutex) (rfbLog("%s:%d LOCK(%s,0x%x)\n",__FILE__,__LINE__,#mutex,&(mutex)), pthread_mutex_lock(&(mutex)))
59 #define UNLOCK(mutex) (rfbLog("%s:%d UNLOCK(%s,0x%x)\n",__FILE__,__LINE__,#mutex,&(mutex)), pthread_mutex_unlock(&(mutex)))
60 #define MUTEX(mutex) pthread_mutex_t (mutex)
61 #define INIT_MUTEX(mutex) (rfbLog("%s:%d INIT_MUTEX(%s,0x%x)\n",__FILE__,__LINE__,#mutex,&(mutex)), pthread_mutex_init(&(mutex),NULL))
62 #define TINI_MUTEX(mutex) (rfbLog("%s:%d TINI_MUTEX(%s)\n",__FILE__,__LINE__,#mutex), pthread_mutex_destroy(&(mutex)))
63 #define TSIGNAL(cond) (rfbLog("%s:%d TSIGNAL(%s)\n",__FILE__,__LINE__,#cond), pthread_cond_signal(&(cond)))
64 #define WAIT(cond,mutex) (rfbLog("%s:%d WAIT(%s,%s)\n",__FILE__,__LINE__,#cond,#mutex), pthread_cond_wait(&(cond),&(mutex)))
65 #define COND(cond) pthread_cond_t (cond)
66 #define INIT_COND(cond) (rfbLog("%s:%d INIT_COND(%s)\n",__FILE__,__LINE__,#cond), pthread_cond_init(&(cond),NULL))
67 #define TINI_COND(cond) (rfbLog("%s:%d TINI_COND(%s)\n",__FILE__,__LINE__,#cond), pthread_cond_destroy(&(cond)))
68 #define IF_PTHREADS(x) x
69 #else
70 #if !NONETWORK
71 #define LOCK(mutex) pthread_mutex_lock(&(mutex));
72 #define UNLOCK(mutex) pthread_mutex_unlock(&(mutex));
73 #endif
74 #define MUTEX(mutex) pthread_mutex_t (mutex)
75 #define INIT_MUTEX(mutex) pthread_mutex_init(&(mutex),NULL)
76 #define TINI_MUTEX(mutex) pthread_mutex_destroy(&(mutex))
77 #define TSIGNAL(cond) pthread_cond_signal(&(cond))
78 #define WAIT(cond,mutex) pthread_cond_wait(&(cond),&(mutex))
79 #define COND(cond) pthread_cond_t (cond)
80 #define INIT_COND(cond) pthread_cond_init(&(cond),NULL)
81 #define TINI_COND(cond) pthread_cond_destroy(&(cond))
82 #define IF_PTHREADS(x) x
83 #endif
84 #else
85 #define LOCK(mutex)
86 #define UNLOCK(mutex)
87 #define MUTEX(mutex)
88 #define INIT_MUTEX(mutex)
89 #define TINI_MUTEX(mutex)
90 #define TSIGNAL(cond)
91 #define WAIT(cond,mutex) this_is_unsupported
92 #define COND(cond)
93 #define INIT_COND(cond)
94 #define TINI_COND(cond)
95 #define IF_PTHREADS(x)
96 #endif
97 
98 /* end of stuff for autoconf */
99 
100 /* if you use pthreads, but don't define LIBVNCSERVER_HAVE_LIBPTHREAD, the structs
101  get all mixed up. So this gives a linker error reminding you to compile
102  the library and your application (at least the parts including rfb.h)
103  with the same support for pthreads. */
104 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
105 #ifdef LIBVNCSERVER_HAVE_LIBZ
106 #define rfbInitServer rfbInitServerWithPthreadsAndZRLE
107 #else
108 #define rfbInitServer rfbInitServerWithPthreadsButWithoutZRLE
109 #endif
110 #else
111 #ifdef LIBVNCSERVER_HAVE_LIBZ
112 #define rfbInitServer rfbInitServerWithoutPthreadsButWithZRLE
113 #else
114 #define rfbInitServer rfbInitServerWithoutPthreadsAndZRLE
115 #endif
116 #endif
117 
118 struct _rfbClientRec;
119 struct _rfbScreenInfo;
120 struct rfbCursor;
121 
122 enum rfbNewClientAction {
123  RFB_CLIENT_ACCEPT,
124  RFB_CLIENT_ON_HOLD,
125  RFB_CLIENT_REFUSE
126 };
127 
128 enum rfbSocketState {
129  RFB_SOCKET_INIT,
130  RFB_SOCKET_READY,
131  RFB_SOCKET_SHUTDOWN
132 };
133 
134 typedef void (*rfbKbdAddEventProcPtr) (rfbBool down, rfbKeySym keySym, struct _rfbClientRec* cl);
135 typedef void (*rfbKbdReleaseAllKeysProcPtr) (struct _rfbClientRec* cl);
136 typedef void (*rfbPtrAddEventProcPtr) (int buttonMask, int x, int y, struct _rfbClientRec* cl);
137 typedef void (*rfbSetXCutTextProcPtr) (char* str,int len, struct _rfbClientRec* cl);
138 typedef struct rfbCursor* (*rfbGetCursorProcPtr) (struct _rfbClientRec* pScreen);
139 typedef rfbBool (*rfbSetTranslateFunctionProcPtr)(struct _rfbClientRec* cl);
140 typedef rfbBool (*rfbPasswordCheckProcPtr)(struct _rfbClientRec* cl,const char* encryptedPassWord,int len);
141 typedef enum rfbNewClientAction (*rfbNewClientHookPtr)(struct _rfbClientRec* cl);
142 typedef void (*rfbDisplayHookPtr)(struct _rfbClientRec* cl);
143 typedef void (*rfbDisplayFinishedHookPtr)(struct _rfbClientRec* cl, int result);
145 typedef int (*rfbGetKeyboardLedStateHookPtr)(struct _rfbScreenInfo* screen);
146 typedef rfbBool (*rfbXvpHookPtr)(struct _rfbClientRec* cl, uint8_t, uint8_t);
152 typedef void (*rfbSetSingleWindowProcPtr) (struct _rfbClientRec* cl, int x, int y);
157 typedef void (*rfbSetServerInputProcPtr) (struct _rfbClientRec* cl, int status);
162 typedef int (*rfbFileTransferPermitted) (struct _rfbClientRec* cl);
164 typedef void (*rfbSetTextChat) (struct _rfbClientRec* cl, int length, char *string);
165 
166 typedef struct {
167  uint32_t count;
168  rfbBool is16;
169  union {
170  uint8_t* bytes;
171  uint16_t* shorts;
172  } data;
173 } rfbColourMap;
174 
179 typedef struct _rfbSecurity {
180  uint8_t type;
181  void (*handler)(struct _rfbClientRec* cl);
182  struct _rfbSecurity* next;
183 } rfbSecurityHandler;
184 
189 typedef struct _rfbProtocolExtension {
192  rfbBool (*newClient)(struct _rfbClientRec* client, void** data);
195  rfbBool (*init)(struct _rfbClientRec* client, void* data);
198  int *pseudoEncodings;
201  rfbBool (*enablePseudoEncoding)(struct _rfbClientRec* client,
202  void** data, int encodingNumber);
204  rfbBool (*handleMessage)(struct _rfbClientRec* client,
205  void* data,
206  const rfbClientToServerMsg* message);
207  void (*close)(struct _rfbClientRec* client, void* data);
208  void (*usage)(void);
210  int (*processArgument)(int argc, char *argv[]);
211  struct _rfbProtocolExtension* next;
212 } rfbProtocolExtension;
213 
214 typedef struct _rfbExtensionData {
215  rfbProtocolExtension* extension;
216  void* data;
217  struct _rfbExtensionData* next;
218 } rfbExtensionData;
219 
226 typedef struct _rfbScreenInfo
227 {
229  struct _rfbScreenInfo *scaledScreenNext;
230  int scaledScreenRefCount;
231 
232  int width;
233  int paddedWidthInBytes;
234  int height;
235  int depth;
236  int bitsPerPixel;
237  int sizeInBytes;
238 
239  rfbPixel blackPixel;
240  rfbPixel whitePixel;
241 
247  void* screenData;
248 
249  /* additions by libvncserver */
250 
251  rfbPixelFormat serverFormat;
252  rfbColourMap colourMap;
253  const char* desktopName;
254  char thisHost[255];
255 
256  rfbBool autoPort;
257  int port;
258  SOCKET listenSock;
259  int maxSock;
260  int maxFd;
261 #ifdef __MINGW32__
262  struct fd_set allFds;
263 #else
264  fd_set allFds;
265 #endif
266 
267  enum rfbSocketState socketState;
268  SOCKET inetdSock;
269  rfbBool inetdInitDone;
270 
271  int udpPort;
272  SOCKET udpSock;
273  struct _rfbClientRec* udpClient;
274  rfbBool udpSockConnected;
275  struct sockaddr_in udpRemoteAddr;
276 
277  int maxClientWait;
278 
279  /* http stuff */
280  rfbBool httpInitDone;
281  rfbBool httpEnableProxyConnect;
282  int httpPort;
283  char* httpDir;
284  SOCKET httpListenSock;
285  SOCKET httpSock;
286 
287  rfbPasswordCheckProcPtr passwordCheck;
288  void* authPasswdData;
291  int authPasswdFirstViewOnly;
292 
294  int maxRectsPerUpdate;
297  int deferUpdateTime;
298 #ifdef TODELETE
299  char* screen;
300 #endif
301  rfbBool alwaysShared;
302  rfbBool neverShared;
303  rfbBool dontDisconnect;
304  struct _rfbClientRec* clientHead;
305  struct _rfbClientRec* pointerClient;
308  /* cursor */
309  int cursorX, cursorY,underCursorBufferLen;
310  char* underCursorBuffer;
311  rfbBool dontConvertRichCursorToXCursor;
312  struct rfbCursor* cursor;
313 
318  char* frameBuffer;
319  rfbKbdAddEventProcPtr kbdAddEvent;
320  rfbKbdReleaseAllKeysProcPtr kbdReleaseAllKeys;
321  rfbPtrAddEventProcPtr ptrAddEvent;
322  rfbSetXCutTextProcPtr setXCutText;
323  rfbGetCursorProcPtr getCursorPtr;
324  rfbSetTranslateFunctionProcPtr setTranslateFunction;
325  rfbSetSingleWindowProcPtr setSingleWindow;
326  rfbSetServerInputProcPtr setServerInput;
327  rfbFileTransferPermitted getFileTransferPermission;
328  rfbSetTextChat setTextChat;
329 
331  rfbNewClientHookPtr newClientHook;
333  rfbDisplayHookPtr displayHook;
334 
336  rfbGetKeyboardLedStateHookPtr getKeyboardLedStateHook;
337 
338 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
339  MUTEX(cursorMutex);
340  rfbBool backgroundLoop;
341 #endif
342 
344  rfbBool ignoreSIGPIPE;
345 
349  int progressiveSliceHeight;
350 
351  in_addr_t listenInterface;
352  int deferPtrUpdateTime;
353 
355  rfbBool handleEventsEagerly;
356 
358  char *versionString;
359 
361  int protocolMajorVersion;
362  int protocolMinorVersion;
363 
365  rfbBool permitFileTransfer;
366 
368  rfbDisplayFinishedHookPtr displayFinishedHook;
370  rfbXvpHookPtr xvpHook;
371 } rfbScreenInfo, *rfbScreenInfoPtr;
372 
373 
378 typedef void (*rfbTranslateFnType)(char *table, rfbPixelFormat *in,
379  rfbPixelFormat *out,
380  char *iptr, char *optr,
381  int bytesBetweenInputLines,
382  int width, int height);
383 
384 
385 /* region stuff */
386 
387 struct sraRegion;
388 typedef struct sraRegion* sraRegionPtr;
389 
390 /*
391  * Per-client structure.
392  */
393 
394 typedef void (*ClientGoneHookPtr)(struct _rfbClientRec* cl);
395 
396 typedef struct _rfbFileTransferData {
397  int fd;
398  int compressionEnabled;
399  int fileSize;
400  int numPackets;
401  int receiving;
402  int sending;
403 } rfbFileTransferData;
404 
405 
406 typedef struct _rfbStatList {
407  uint32_t type;
408  uint32_t sentCount;
409  uint32_t bytesSent;
410  uint32_t bytesSentIfRaw;
411  uint32_t rcvdCount;
412  uint32_t bytesRcvd;
413  uint32_t bytesRcvdIfRaw;
414  struct _rfbStatList *Next;
415 } rfbStatList;
416 
417 typedef struct _rfbClientRec {
418 
420  rfbScreenInfoPtr screen;
421 
423  rfbScreenInfoPtr scaledScreen;
425  rfbBool PalmVNC;
426 
427 
434  void* clientData;
435  ClientGoneHookPtr clientGoneHook;
436 
437  SOCKET sock;
438  char *host;
439 
440  /* RFB protocol minor version number */
441  int protocolMajorVersion;
442  int protocolMinorVersion;
443 
444 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
445  pthread_t client_thread;
446 #endif
447 
448  enum {
449  RFB_PROTOCOL_VERSION,
450  RFB_SECURITY_TYPE,
451  RFB_AUTHENTICATION,
452  RFB_INITIALISATION,
453  RFB_NORMAL
454  } state;
455 
456  rfbBool reverseConnection;
457  rfbBool onHold;
458  rfbBool readyForSetColourMapEntries;
459  rfbBool useCopyRect;
460  int preferredEncoding;
461  int correMaxWidth, correMaxHeight;
462 
463  rfbBool viewOnly;
464 
465  /* The following member is only used during VNC authentication */
466  uint8_t authChallenge[CHALLENGESIZE];
467 
468  /* The following members represent the update needed to get the client's
469  framebuffer from its present state to the current state of our
470  framebuffer.
471 
472  If the client does not accept CopyRect encoding then the update is
473  simply represented as the region of the screen which has been modified
474  (modifiedRegion).
475 
476  If the client does accept CopyRect encoding, then the update consists of
477  two parts. First we have a single copy from one region of the screen to
478  another (the destination of the copy is copyRegion), and second we have
479  the region of the screen which has been modified in some other way
480  (modifiedRegion).
481 
482  Although the copy is of a single region, this region may have many
483  rectangles. When sending an update, the copyRegion is always sent
484  before the modifiedRegion. This is because the modifiedRegion may
485  overlap parts of the screen which are in the source of the copy.
486 
487  In fact during normal processing, the modifiedRegion may even overlap
488  the destination copyRegion. Just before an update is sent we remove
489  from the copyRegion anything in the modifiedRegion. */
490 
491  sraRegionPtr copyRegion;
492  int copyDX, copyDY;
494  sraRegionPtr modifiedRegion;
495 
501  sraRegionPtr requestedRegion;
502 
509  struct timeval startDeferring;
510  struct timeval startPtrDeferring;
511  int lastPtrX;
512  int lastPtrY;
513  int lastPtrButtons;
514 
518  rfbTranslateFnType translateFn;
519  char *translateLookupTable;
520  rfbPixelFormat format;
521 
528 #define UPDATE_BUF_SIZE 30000
529 
530  char updateBuf[UPDATE_BUF_SIZE];
531  int ublen;
532 
533  /* statistics */
534  struct _rfbStatList *statEncList;
535  struct _rfbStatList *statMsgList;
536  int rawBytesEquivalent;
537  int bytesSent;
538 
539 #ifdef LIBVNCSERVER_HAVE_LIBZ
540  /* zlib encoding -- necessary compression state info per client */
541 
542  struct z_stream_s compStream;
543  rfbBool compStreamInited;
544  uint32_t zlibCompressLevel;
546  int tightQualityLevel;
547 
548 #ifdef LIBVNCSERVER_HAVE_LIBJPEG
549  /* tight encoding -- preserve zlib streams' state for each client */
550  z_stream zsStruct[4];
551  rfbBool zsActive[4];
552  int zsLevel[4];
553  int tightCompressLevel;
554 #endif
555 #endif
556 
557  /* Ultra Encoding support */
558  rfbBool compStreamInitedLZO;
559  char *lzoWrkMem;
560 
561  rfbFileTransferData fileTransfer;
562 
563  int lastKeyboardLedState;
564  rfbBool enableSupportedMessages;
565  rfbBool enableSupportedEncodings;
566  rfbBool enableServerIdentity;
567  rfbBool enableKeyboardLedState;
568  rfbBool enableLastRectEncoding;
569  rfbBool enableCursorShapeUpdates;
570  rfbBool enableCursorPosUpdates;
571  rfbBool useRichCursorEncoding;
572  rfbBool cursorWasChanged;
573  rfbBool cursorWasMoved;
574  int cursorX,cursorY;
577  rfbBool useNewFBSize;
578  rfbBool newFBSizePending;
580  struct _rfbClientRec *prev;
581  struct _rfbClientRec *next;
582 
583 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
584 
589  int refCount;
590  MUTEX(refCountMutex);
591  COND(deleteCond);
592 
593  MUTEX(outputMutex);
594  MUTEX(updateMutex);
595  COND(updateCond);
596 #endif
597 
598 #ifdef LIBVNCSERVER_HAVE_LIBZ
599  void* zrleData;
600  int zywrleLevel;
601  int zywrleBuf[rfbZRLETileWidth * rfbZRLETileHeight];
602 #endif
603 
606  int progressiveSliceY;
607 
608  rfbExtensionData* extensions;
609 
611  char *zrleBeforeBuf;
612  void *paletteHelper;
613 
615 #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
616 #define LIBVNCSERVER_SEND_MUTEX
617  MUTEX(sendMutex);
618 #endif
619 
620  /* buffers to hold pixel data before and after encoding.
621  per-client for thread safety */
622  char *beforeEncBuf;
623  int beforeEncBufSize;
624  char *afterEncBuf;
625  int afterEncBufSize;
626  int afterEncBufLen;
627 } rfbClientRec, *rfbClientPtr;
628 
634 #define FB_UPDATE_PENDING(cl) \
635  (((cl)->enableCursorShapeUpdates && (cl)->cursorWasChanged) || \
636  (((cl)->enableCursorShapeUpdates == FALSE && \
637  ((cl)->cursorX != (cl)->screen->cursorX || \
638  (cl)->cursorY != (cl)->screen->cursorY))) || \
639  ((cl)->useNewFBSize && (cl)->newFBSizePending) || \
640  ((cl)->enableCursorPosUpdates && (cl)->cursorWasMoved) || \
641  !sraRgnEmpty((cl)->copyRegion) || !sraRgnEmpty((cl)->modifiedRegion))
642 
643 /*
644  * Macros for endian swapping.
645  */
646 
647 #define Swap16(s) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff))
648 
649 #define Swap24(l) ((((l) & 0xff) << 16) | (((l) >> 16) & 0xff) | \
650  (((l) & 0x00ff00)))
651 
652 #define Swap32(l) (((l) >> 24) | \
653  (((l) & 0x00ff0000) >> 8) | \
654  (((l) & 0x0000ff00) << 8) | \
655  ((l) << 24))
656 
657 
658 extern char rfbEndianTest;
659 
660 #define Swap16IfLE(s) (rfbEndianTest ? Swap16(s) : (s))
661 #define Swap24IfLE(l) (rfbEndianTest ? Swap24(l) : (l))
662 #define Swap32IfLE(l) (rfbEndianTest ? Swap32(l) : (l))
663 
664 /* UltraVNC uses some windows structures unmodified, so the viewer expects LittleEndian Data */
665 #define Swap16IfBE(s) (rfbEndianTest ? (s) : Swap16(s))
666 #define Swap24IfBE(l) (rfbEndianTest ? (l) : Swap24(l))
667 #define Swap32IfBE(l) (rfbEndianTest ? (l) : Swap32(l))
668 
669 /* sockets.c */
670 
671 extern int rfbMaxClientWait;
672 
673 extern void rfbInitSockets(rfbScreenInfoPtr rfbScreen);
674 extern void rfbShutdownSockets(rfbScreenInfoPtr rfbScreen);
675 extern void rfbDisconnectUDPSock(rfbScreenInfoPtr rfbScreen);
676 extern void rfbCloseClient(rfbClientPtr cl);
677 extern int rfbReadExact(rfbClientPtr cl, char *buf, int len);
678 extern int rfbReadExactTimeout(rfbClientPtr cl, char *buf, int len,int timeout);
679 extern int rfbWriteExact(rfbClientPtr cl, const char *buf, int len);
680 extern int rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec);
681 extern int rfbConnect(rfbScreenInfoPtr rfbScreen, char* host, int port);
682 extern int rfbConnectToTcpAddr(char* host, int port);
683 extern int rfbListenOnTCPPort(int port, in_addr_t iface);
684 extern int rfbListenOnUDPPort(int port, in_addr_t iface);
685 extern int rfbStringToAddr(char* string,in_addr_t* addr);
686 extern rfbBool rfbSetNonBlocking(int sock);
687 
688 /* rfbserver.c */
689 
690 /* Routines to iterate over the client list in a thread-safe way.
691  Only a single iterator can be in use at a time process-wide. */
692 typedef struct rfbClientIterator *rfbClientIteratorPtr;
693 
694 extern void rfbClientListInit(rfbScreenInfoPtr rfbScreen);
695 extern rfbClientIteratorPtr rfbGetClientIterator(rfbScreenInfoPtr rfbScreen);
696 extern rfbClientPtr rfbClientIteratorNext(rfbClientIteratorPtr iterator);
697 extern void rfbReleaseClientIterator(rfbClientIteratorPtr iterator);
698 extern void rfbIncrClientRef(rfbClientPtr cl);
699 extern void rfbDecrClientRef(rfbClientPtr cl);
700 
701 extern void rfbNewClientConnection(rfbScreenInfoPtr rfbScreen,int sock);
702 extern rfbClientPtr rfbNewClient(rfbScreenInfoPtr rfbScreen,int sock);
703 extern rfbClientPtr rfbNewUDPClient(rfbScreenInfoPtr rfbScreen);
704 extern rfbClientPtr rfbReverseConnection(rfbScreenInfoPtr rfbScreen,char *host, int port);
705 extern void rfbClientConnectionGone(rfbClientPtr cl);
706 extern void rfbProcessClientMessage(rfbClientPtr cl);
707 extern void rfbClientConnFailed(rfbClientPtr cl, const char *reason);
708 extern void rfbNewUDPConnection(rfbScreenInfoPtr rfbScreen,int sock);
709 extern void rfbProcessUDPInput(rfbScreenInfoPtr rfbScreen);
710 extern rfbBool rfbSendFramebufferUpdate(rfbClientPtr cl, sraRegionPtr updateRegion);
711 extern rfbBool rfbSendRectEncodingRaw(rfbClientPtr cl, int x,int y,int w,int h);
712 extern rfbBool rfbSendUpdateBuf(rfbClientPtr cl);
713 extern void rfbSendServerCutText(rfbScreenInfoPtr rfbScreen,char *str, int len);
714 extern rfbBool rfbSendCopyRegion(rfbClientPtr cl,sraRegionPtr reg,int dx,int dy);
715 extern rfbBool rfbSendLastRectMarker(rfbClientPtr cl);
716 extern rfbBool rfbSendNewFBSize(rfbClientPtr cl, int w, int h);
717 extern rfbBool rfbSendSetColourMapEntries(rfbClientPtr cl, int firstColour, int nColours);
718 extern void rfbSendBell(rfbScreenInfoPtr rfbScreen);
719 
720 extern char *rfbProcessFileTransferReadBuffer(rfbClientPtr cl, uint32_t length);
721 extern rfbBool rfbSendFileTransferChunk(rfbClientPtr cl);
722 extern rfbBool rfbSendDirContent(rfbClientPtr cl, int length, char *buffer);
723 extern rfbBool rfbSendFileTransferMessage(rfbClientPtr cl, uint8_t contentType, uint8_t contentParam, uint32_t size, uint32_t length, const char *buffer);
724 extern char *rfbProcessFileTransferReadBuffer(rfbClientPtr cl, uint32_t length);
725 extern rfbBool rfbProcessFileTransfer(rfbClientPtr cl, uint8_t contentType, uint8_t contentParam, uint32_t size, uint32_t length);
726 
727 void rfbGotXCutText(rfbScreenInfoPtr rfbScreen, char *str, int len);
728 
729 /* translate.c */
730 
731 extern rfbBool rfbEconomicTranslate;
732 
733 extern void rfbTranslateNone(char *table, rfbPixelFormat *in,
734  rfbPixelFormat *out,
735  char *iptr, char *optr,
736  int bytesBetweenInputLines,
737  int width, int height);
738 extern rfbBool rfbSetTranslateFunction(rfbClientPtr cl);
739 extern rfbBool rfbSetClientColourMap(rfbClientPtr cl, int firstColour, int nColours);
740 extern void rfbSetClientColourMaps(rfbScreenInfoPtr rfbScreen, int firstColour, int nColours);
741 
742 /* httpd.c */
743 
744 extern void rfbHttpInitSockets(rfbScreenInfoPtr rfbScreen);
745 extern void rfbHttpShutdownSockets(rfbScreenInfoPtr rfbScreen);
746 extern void rfbHttpCheckFds(rfbScreenInfoPtr rfbScreen);
747 
748 
749 
750 /* auth.c */
751 
752 extern void rfbAuthNewClient(rfbClientPtr cl);
753 extern void rfbProcessClientSecurityType(rfbClientPtr cl);
754 extern void rfbAuthProcessClientMessage(rfbClientPtr cl);
755 extern void rfbRegisterSecurityHandler(rfbSecurityHandler* handler);
756 extern void rfbUnregisterSecurityHandler(rfbSecurityHandler* handler);
757 
758 /* rre.c */
759 
760 extern rfbBool rfbSendRectEncodingRRE(rfbClientPtr cl, int x,int y,int w,int h);
761 
762 
763 /* corre.c */
764 
765 extern rfbBool rfbSendRectEncodingCoRRE(rfbClientPtr cl, int x,int y,int w,int h);
766 
767 
768 /* hextile.c */
769 
770 extern rfbBool rfbSendRectEncodingHextile(rfbClientPtr cl, int x, int y, int w,
771  int h);
772 
773 /* ultra.c */
774 
775 /* Set maximum ultra rectangle size in pixels. Always allow at least
776  * two scan lines.
777  */
778 #define ULTRA_MAX_RECT_SIZE (128*256)
779 #define ULTRA_MAX_SIZE(min) ((( min * 2 ) > ULTRA_MAX_RECT_SIZE ) ? \
780  ( min * 2 ) : ULTRA_MAX_RECT_SIZE )
781 
782 extern rfbBool rfbSendRectEncodingUltra(rfbClientPtr cl, int x,int y,int w,int h);
783 
784 
785 #ifdef LIBVNCSERVER_HAVE_LIBZ
786 /* zlib.c */
787 
791 #define VNC_ENCODE_ZLIB_MIN_COMP_SIZE (17)
792 
793 /* Set maximum zlib rectangle size in pixels. Always allow at least
794  * two scan lines.
795  */
796 #define ZLIB_MAX_RECT_SIZE (128*256)
797 #define ZLIB_MAX_SIZE(min) ((( min * 2 ) > ZLIB_MAX_RECT_SIZE ) ? \
798  ( min * 2 ) : ZLIB_MAX_RECT_SIZE )
799 
800 extern rfbBool rfbSendRectEncodingZlib(rfbClientPtr cl, int x, int y, int w,
801  int h);
802 
803 #ifdef LIBVNCSERVER_HAVE_LIBJPEG
804 /* tight.c */
805 
806 #define TIGHT_DEFAULT_COMPRESSION 6
807 
808 extern rfbBool rfbTightDisableGradient;
809 
810 extern int rfbNumCodedRectsTight(rfbClientPtr cl, int x,int y,int w,int h);
811 extern rfbBool rfbSendRectEncodingTight(rfbClientPtr cl, int x,int y,int w,int h);
812 
813 #endif
814 #endif
815 
816 
817 /* cursor.c */
818 
819 typedef struct rfbCursor {
821  rfbBool cleanup, cleanupSource, cleanupMask, cleanupRichSource;
822  unsigned char *source;
823  unsigned char *mask;
824  unsigned short width, height, xhot, yhot;
825  unsigned short foreRed, foreGreen, foreBlue;
826  unsigned short backRed, backGreen, backBlue;
827  unsigned char *richSource;
828  unsigned char *alphaSource;
829  rfbBool alphaPreMultiplied;
830 } rfbCursor, *rfbCursorPtr;
831 extern unsigned char rfbReverseByte[0x100];
832 
833 extern rfbBool rfbSendCursorShape(rfbClientPtr cl/*, rfbScreenInfoPtr pScreen*/);
834 extern rfbBool rfbSendCursorPos(rfbClientPtr cl);
835 extern void rfbConvertLSBCursorBitmapOrMask(int width,int height,unsigned char* bitmap);
836 extern rfbCursorPtr rfbMakeXCursor(int width,int height,char* cursorString,char* maskString);
837 extern char* rfbMakeMaskForXCursor(int width,int height,char* cursorString);
838 extern char* rfbMakeMaskFromAlphaSource(int width,int height,unsigned char* alphaSource);
839 extern void rfbMakeXCursorFromRichCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor);
840 extern void rfbMakeRichCursorFromXCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor);
841 extern void rfbFreeCursor(rfbCursorPtr cursor);
842 extern void rfbSetCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr c);
843 
845 extern void rfbDefaultPtrAddEvent(int buttonMask,int x,int y,rfbClientPtr cl);
846 
847 /* zrle.c */
848 #ifdef LIBVNCSERVER_HAVE_LIBZ
849 extern rfbBool rfbSendRectEncodingZRLE(rfbClientPtr cl, int x, int y, int w,int h);
850 #endif
851 
852 /* stats.c */
853 
854 extern void rfbResetStats(rfbClientPtr cl);
855 extern void rfbPrintStats(rfbClientPtr cl);
856 
857 /* font.c */
858 
859 typedef struct rfbFontData {
860  unsigned char* data;
866  int* metaData;
867 } rfbFontData,* rfbFontDataPtr;
868 
869 int rfbDrawChar(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,int x,int y,unsigned char c,rfbPixel colour);
870 void rfbDrawString(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,int x,int y,const char* string,rfbPixel colour);
872 int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,int x,int y,unsigned char c,int x1,int y1,int x2,int y2,rfbPixel colour,rfbPixel backColour);
873 void rfbDrawStringWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,int x,int y,const char* string,int x1,int y1,int x2,int y2,rfbPixel colour,rfbPixel backColour);
874 int rfbWidthOfString(rfbFontDataPtr font,const char* string);
875 int rfbWidthOfChar(rfbFontDataPtr font,unsigned char c);
876 void rfbFontBBox(rfbFontDataPtr font,unsigned char c,int* x1,int* y1,int* x2,int* y2);
878 void rfbWholeFontBBox(rfbFontDataPtr font,int *x1, int *y1, int *x2, int *y2);
879 
881 rfbFontDataPtr rfbLoadConsoleFont(char *filename);
883 void rfbFreeFont(rfbFontDataPtr font);
884 
885 /* draw.c */
886 
887 void rfbFillRect(rfbScreenInfoPtr s,int x1,int y1,int x2,int y2,rfbPixel col);
888 void rfbDrawPixel(rfbScreenInfoPtr s,int x,int y,rfbPixel col);
889 void rfbDrawLine(rfbScreenInfoPtr s,int x1,int y1,int x2,int y2,rfbPixel col);
890 
891 /* selbox.c */
892 
897 typedef void (*SelectionChangedHookPtr)(int _index);
898 extern int rfbSelectBox(rfbScreenInfoPtr rfbScreen,
899  rfbFontDataPtr font, char** list,
900  int x1, int y1, int x2, int y2,
901  rfbPixel foreColour, rfbPixel backColour,
902  int border,SelectionChangedHookPtr selChangedHook);
903 
904 /* cargs.c */
905 
906 extern void rfbUsage(void);
907 extern void rfbPurgeArguments(int* argc,int* position,int count,char *argv[]);
908 extern rfbBool rfbProcessArguments(rfbScreenInfoPtr rfbScreen,int* argc, char *argv[]);
909 extern rfbBool rfbProcessSizeArguments(int* width,int* height,int* bpp,int* argc, char *argv[]);
910 
911 /* main.c */
912 
913 extern void rfbLogEnable(int enabled);
914 typedef void (*rfbLogProc)(const char *format, ...);
915 extern rfbLogProc rfbLog, rfbErr;
916 extern void rfbLogPerror(const char *str);
917 
918 void rfbScheduleCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy);
919 void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy);
920 
921 void rfbDoCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy);
922 void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy);
923 
924 void rfbMarkRectAsModified(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2);
925 void rfbMarkRegionAsModified(rfbScreenInfoPtr rfbScreen,sraRegionPtr modRegion);
926 void rfbDoNothingWithClient(rfbClientPtr cl);
927 enum rfbNewClientAction defaultNewClientHook(rfbClientPtr cl);
928 void rfbRegisterProtocolExtension(rfbProtocolExtension* extension);
929 void rfbUnregisterProtocolExtension(rfbProtocolExtension* extension);
930 struct _rfbProtocolExtension* rfbGetExtensionIterator();
931 void rfbReleaseExtensionIterator();
932 rfbBool rfbEnableExtension(rfbClientPtr cl, rfbProtocolExtension* extension,
933  void* data);
934 rfbBool rfbDisableExtension(rfbClientPtr cl, rfbProtocolExtension* extension);
935 void* rfbGetExtensionClientData(rfbClientPtr cl, rfbProtocolExtension* extension);
936 
938 rfbBool rfbCheckPasswordByList(rfbClientPtr cl,const char* response,int len);
939 
940 /* functions to make a vnc server */
941 extern rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv,
942  int width,int height,int bitsPerSample,int samplesPerPixel,
943  int bytesPerPixel);
944 extern void rfbInitServer(rfbScreenInfoPtr rfbScreen);
945 extern void rfbShutdownServer(rfbScreenInfoPtr rfbScreen,rfbBool disconnectClients);
946 extern void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen,char *framebuffer,
947  int width,int height, int bitsPerSample,int samplesPerPixel,
948  int bytesPerPixel);
949 
950 extern void rfbScreenCleanup(rfbScreenInfoPtr screenInfo);
951 extern void rfbSetServerVersionIdentity(rfbScreenInfoPtr screen, char *fmt, ...);
952 
953 /* functions to accept/refuse a client that has been put on hold
954  by a NewClientHookPtr function. Must not be called in other
955  situations. */
956 extern void rfbStartOnHoldClient(rfbClientPtr cl);
957 extern void rfbRefuseOnHoldClient(rfbClientPtr cl);
958 
959 /* call one of these two functions to service the vnc clients.
960  usec are the microseconds the select on the fds waits.
961  if you are using the event loop, set this to some value > 0, so the
962  server doesn't get a high load just by listening.
963  rfbProcessEvents() returns TRUE if an update was pending. */
964 
965 extern void rfbRunEventLoop(rfbScreenInfoPtr screenInfo, long usec, rfbBool runInBackground);
966 extern rfbBool rfbProcessEvents(rfbScreenInfoPtr screenInfo,long usec);
967 extern rfbBool rfbIsActive(rfbScreenInfoPtr screenInfo);
968 
969 /* TightVNC file transfer extension */
970 void rfbRegisterTightVNCFileTransferExtension();
971 void rfbUnregisterTightVNCFileTransferExtension();
972 
973 /* Statistics */
974 extern char *messageNameServer2Client(uint32_t type, char *buf, int len);
975 extern char *messageNameClient2Server(uint32_t type, char *buf, int len);
976 extern char *encodingName(uint32_t enc, char *buf, int len);
977 
978 extern rfbStatList *rfbStatLookupEncoding(rfbClientPtr cl, uint32_t type);
979 extern rfbStatList *rfbStatLookupMessage(rfbClientPtr cl, uint32_t type);
980 
981 /* Each call to rfbStatRecord* adds one to the rect count for that type */
982 extern void rfbStatRecordEncodingSent(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw);
983 extern void rfbStatRecordEncodingSentAdd(rfbClientPtr cl, uint32_t type, int byteCount); /* Specifically for tight encoding */
984 extern void rfbStatRecordEncodingRcvd(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw);
985 extern void rfbStatRecordMessageSent(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw);
986 extern void rfbStatRecordMessageRcvd(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw);
987 extern void rfbResetStats(rfbClientPtr cl);
988 extern void rfbPrintStats(rfbClientPtr cl);
989 
990 extern int rfbStatGetSentBytes(rfbClientPtr cl);
991 extern int rfbStatGetSentBytesIfRaw(rfbClientPtr cl);
992 extern int rfbStatGetRcvdBytes(rfbClientPtr cl);
993 extern int rfbStatGetRcvdBytesIfRaw(rfbClientPtr cl);
994 extern int rfbStatGetMessageCountSent(rfbClientPtr cl, uint32_t type);
995 extern int rfbStatGetMessageCountRcvd(rfbClientPtr cl, uint32_t type);
996 extern int rfbStatGetEncodingCountSent(rfbClientPtr cl, uint32_t type);
997 extern int rfbStatGetEncodingCountRcvd(rfbClientPtr cl, uint32_t type);
998 
1000 extern void rfbSetProtocolVersion(rfbScreenInfoPtr rfbScreen, int major_, int minor_);
1001 
1003 extern rfbBool rfbSendTextChatMessage(rfbClientPtr cl, uint32_t length, char *buffer);
1004 
1005 
1006 /*
1007  * Additions for Qt event loop integration
1008  * Original idea taken from vino.
1009  */
1010 rfbBool rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen);
1011 rfbBool rfbUpdateClient(rfbClientPtr cl);
1012 
1013 
1014 #if(defined __cplusplus)
1015 }
1016 #endif
1017 
1188 #endif
_rfbScreenInfo::paddedWidthInBytes
int paddedWidthInBytes
Definition: libvncserver/rfb/rfb.h:233
rfbScheduleCopyRegion
void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen, sraRegionPtr copyRegion, int dx, int dy)
rfbGetKeyboardLedStateHookPtr
int(* rfbGetKeyboardLedStateHookPtr)(struct _rfbScreenInfo *screen)
support the capability to view the caps/num/scroll states of the X server
Definition: libvncserver/rfb/rfb.h:145
rfbStatRecordEncodingRcvd
void rfbStatRecordEncodingRcvd(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw)
_rfbClientRec::prev
struct _rfbClientRec * prev
Definition: libvncserver/rfb/rfb.h:580
_rfbClientRec::requestedRegion
sraRegionPtr requestedRegion
As part of the FramebufferUpdateRequest, a client can express interest in a subrectangle of the whole...
Definition: libvncserver/rfb/rfb.h:501
_rfbScreenInfo::bitsPerPixel
int bitsPerPixel
Definition: libvncserver/rfb/rfb.h:236
_rfbScreenInfo::allFds
fd_set allFds
Definition: libvncserver/rfb/rfb.h:264
_rfbScreenInfo::maxRectsPerUpdate
int maxRectsPerUpdate
send only this many rectangles in one update
Definition: libvncserver/rfb/rfb.h:294
rfbReadExactTimeout
int rfbReadExactTimeout(rfbClientPtr cl, char *buf, int len, int timeout)
rfbCursor::cleanupRichSource
rfbBool cleanupRichSource
Definition: libvncserver/rfb/rfb.h:821
rfbEnableExtension
rfbBool rfbEnableExtension(rfbClientPtr cl, rfbProtocolExtension *extension, void *data)
rfbCursor::alphaSource
unsigned char * alphaSource
source for alpha blending info
Definition: libvncserver/rfb/rfb.h:828
rfbNewUDPClient
rfbClientPtr rfbNewUDPClient(rfbScreenInfoPtr rfbScreen)
_rfbScreenInfo::cursorY
int cursorY
Definition: libvncserver/rfb/rfb.h:309
rfbPrintStats
void rfbPrintStats(rfbClientPtr cl)
_rfbClientRec::protocolMajorVersion
int protocolMajorVersion
Definition: libvncserver/rfb/rfb.h:441
rfbFileTransferPermitted
int(* rfbFileTransferPermitted)(struct _rfbClientRec *cl)
Permit the server to allow or deny filetransfers.
Definition: libvncserver/rfb/rfb.h:162
_rfbClientRec::enableKeyboardLedState
rfbBool enableKeyboardLedState
client supports KeyboardState encoding
Definition: libvncserver/rfb/rfb.h:567
CHALLENGESIZE
#define CHALLENGESIZE
Definition: rfbproto.h:1423
rfbSendBell
void rfbSendBell(rfbScreenInfoPtr rfbScreen)
_rfbProtocolExtension::processArgument
int(* processArgument)(int argc, char *argv[])
processArguments returns the number of handled arguments
Definition: libvncserver/rfb/rfb.h:210
rfbMakeMaskFromAlphaSource
char * rfbMakeMaskFromAlphaSource(int width, int height, unsigned char *alphaSource)
rfbNewClientConnection
void rfbNewClientConnection(rfbScreenInfoPtr rfbScreen, int sock)
rfbGetCursorProcPtr
struct rfbCursor *(* rfbGetCursorProcPtr)(struct _rfbClientRec *pScreen)
Definition: libvncserver/rfb/rfb.h:138
rfbMakeXCursor
rfbCursorPtr rfbMakeXCursor(int width, int height, char *cursorString, char *maskString)
rfbCheckFds
int rfbCheckFds(rfbScreenInfoPtr rfbScreen, long usec)
_rfbScreenInfo::protocolMinorVersion
int protocolMinorVersion
Definition: libvncserver/rfb/rfb.h:362
rfbLogProc
void(* rfbLogProc)(const char *format,...)
Definition: libvncserver/rfb/rfb.h:914
rfbUnregisterTightVNCFileTransferExtension
void rfbUnregisterTightVNCFileTransferExtension()
rfbStatRecordEncodingSentAdd
void rfbStatRecordEncodingSentAdd(rfbClientPtr cl, uint32_t type, int byteCount)
_rfbScreenInfo::displayFinishedHook
rfbDisplayFinishedHookPtr displayFinishedHook
displayFinishedHook is called just after a frame buffer update
Definition: libvncserver/rfb/rfb.h:368
_rfbClientRec::useCopyRect
rfbBool useCopyRect
Definition: libvncserver/rfb/rfb.h:459
_rfbFileTransferData::receiving
int receiving
Definition: libvncserver/rfb/rfb.h:401
void
typedef void(__LZO_CDECL *lzo_free_func_t)(lzo_callback_p self
rfbGetClientIterator
rfbClientIteratorPtr rfbGetClientIterator(rfbScreenInfoPtr rfbScreen)
_rfbClientRec::RFB_NORMAL
normal protocol messages
Definition: libvncserver/rfb/rfb.h:453
rfbproto.h
rfbEconomicTranslate
rfbBool rfbEconomicTranslate
_rfbStatList::bytesSentIfRaw
uint32_t bytesSentIfRaw
Definition: libvncserver/rfb/rfb.h:410
_rfbScreenInfo::ignoreSIGPIPE
rfbBool ignoreSIGPIPE
if TRUE, an ignoring signal handler is installed for SIGPIPE
Definition: libvncserver/rfb/rfb.h:344
rfbNewClient
rfbClientPtr rfbNewClient(rfbScreenInfoPtr rfbScreen, int sock)
_rfbScreenInfo::dontConvertRichCursorToXCursor
rfbBool dontConvertRichCursorToXCursor
Definition: libvncserver/rfb/rfb.h:311
_rfbScreenInfo::maxSock
int maxSock
Definition: libvncserver/rfb/rfb.h:259
_rfbClientRec::RFB_SECURITY_TYPE
negotiating security (RFB v.3.7)
Definition: libvncserver/rfb/rfb.h:450
_rfbScreenInfo::httpDir
char * httpDir
Definition: libvncserver/rfb/rfb.h:283
_rfbScreenInfo::newClientHook
rfbNewClientHookPtr newClientHook
newClientHook is called just after a new client is created
Definition: libvncserver/rfb/rfb.h:331
_rfbProtocolExtension::handleMessage
rfbBool(* handleMessage)(struct _rfbClientRec *client, void *data, const rfbClientToServerMsg *message)
returns TRUE if message was handled
Definition: libvncserver/rfb/rfb.h:204
rfbMarkRectAsModified
void rfbMarkRectAsModified(rfbScreenInfoPtr rfbScreen, int x1, int y1, int x2, int y2)
rfbScreenInfoPtr
struct _rfbScreenInfo * rfbScreenInfoPtr
_rfbScreenInfo::depth
int depth
Definition: libvncserver/rfb/rfb.h:235
_rfbClientRec::RFB_AUTHENTICATION
authenticating
Definition: libvncserver/rfb/rfb.h:451
rfbErr
rfbLogProc rfbErr
_rfbClientRec::format
rfbPixelFormat format
Definition: libvncserver/rfb/rfb.h:520
rfbSetClientColourMaps
void rfbSetClientColourMaps(rfbScreenInfoPtr rfbScreen, int firstColour, int nColours)
_rfbScreenInfo::setTextChat
rfbSetTextChat setTextChat
Definition: libvncserver/rfb/rfb.h:328
rfbCursor::width
unsigned short width
Definition: libvncserver/rfb/rfb.h:824
SelectionChangedHookPtr
void(* SelectionChangedHookPtr)(int _index)
this opens a modal select box.
Definition: libvncserver/rfb/rfb.h:897
rfbStatRecordMessageRcvd
void rfbStatRecordMessageRcvd(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw)
rfbFontData::data
unsigned char * data
Definition: libvncserver/rfb/rfb.h:860
rfbDrawChar
int rfbDrawChar(rfbScreenInfoPtr rfbScreen, rfbFontDataPtr font, int x, int y, unsigned char c, rfbPixel colour)
_rfbClientRec::updateBuf
char updateBuf[UPDATE_BUF_SIZE]
Definition: libvncserver/rfb/rfb.h:530
_rfbScreenInfo::setTranslateFunction
rfbSetTranslateFunctionProcPtr setTranslateFunction
Definition: libvncserver/rfb/rfb.h:324
rfbDoCopyRegion
void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen, sraRegionPtr copyRegion, int dx, int dy)
rfbWidthOfChar
int rfbWidthOfChar(rfbFontDataPtr font, unsigned char c)
rfbSendServerCutText
void rfbSendServerCutText(rfbScreenInfoPtr rfbScreen, char *str, int len)
rfbColourMap::is16
rfbBool is16
is the data format short?
Definition: libvncserver/rfb/rfb.h:168
rfbKbdAddEventProcPtr
void(* rfbKbdAddEventProcPtr)(rfbBool down, rfbKeySym keySym, struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:134
_rfbClientRec::host
char * host
Definition: libvncserver/rfb/rfb.h:438
_rfbFileTransferData::compressionEnabled
int compressionEnabled
Definition: libvncserver/rfb/rfb.h:398
_rfbClientRec::paletteHelper
void * paletteHelper
Definition: libvncserver/rfb/rfb.h:612
rfbListenOnUDPPort
int rfbListenOnUDPPort(int port, in_addr_t iface)
_rfbClientRec::authChallenge
uint8_t authChallenge[CHALLENGESIZE]
Definition: libvncserver/rfb/rfb.h:466
rfbSendSetColourMapEntries
rfbBool rfbSendSetColourMapEntries(rfbClientPtr cl, int firstColour, int nColours)
rfbFontDataPtr
struct rfbFontData * rfbFontDataPtr
_rfbClientRec::enableCursorPosUpdates
rfbBool enableCursorPosUpdates
client supports cursor position updates
Definition: libvncserver/rfb/rfb.h:570
rfbCursor::xhot
unsigned short xhot
Definition: libvncserver/rfb/rfb.h:824
rfbMakeMaskForXCursor
char * rfbMakeMaskForXCursor(int width, int height, char *cursorString)
_rfbClientRec::correMaxWidth
int correMaxWidth
Definition: libvncserver/rfb/rfb.h:461
sraRegionPtr
struct sraRegion * sraRegionPtr
Definition: libvncserver/rfb/rfb.h:388
_rfbScreenInfo::udpPort
int udpPort
Definition: libvncserver/rfb/rfb.h:271
rfbCursor::foreBlue
unsigned short foreBlue
device-independent colour
Definition: libvncserver/rfb/rfb.h:825
rfbCursor::foreGreen
unsigned short foreGreen
Definition: libvncserver/rfb/rfb.h:825
rfbSendRectEncodingRaw
rfbBool rfbSendRectEncodingRaw(rfbClientPtr cl, int x, int y, int w, int h)
rfbDrawLine
void rfbDrawLine(rfbScreenInfoPtr s, int x1, int y1, int x2, int y2, rfbPixel col)
_rfbScreenInfo::socketState
enum rfbSocketState socketState
Definition: libvncserver/rfb/rfb.h:267
_rfbStatList::bytesRcvd
uint32_t bytesRcvd
Definition: libvncserver/rfb/rfb.h:412
rfbKbdReleaseAllKeysProcPtr
void(* rfbKbdReleaseAllKeysProcPtr)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:135
_rfbClientRec::compStreamInitedLZO
rfbBool compStreamInitedLZO
Definition: libvncserver/rfb/rfb.h:558
rfbHttpShutdownSockets
void rfbHttpShutdownSockets(rfbScreenInfoPtr rfbScreen)
rfbCursor::height
unsigned short height
Definition: libvncserver/rfb/rfb.h:824
RFB_CLIENT_ACCEPT
Definition: libvncserver/rfb/rfb.h:123
rfbBool
int8_t rfbBool
Definition: rfbproto.h:102
_rfbClientRec::cursorX
int cursorX
Definition: libvncserver/rfb/rfb.h:574
rfbNewClientHookPtr
enum rfbNewClientAction(* rfbNewClientHookPtr)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:141
_rfbClientRec::copyDX
int copyDX
Definition: libvncserver/rfb/rfb.h:492
rfbSetServerInputProcPtr
void(* rfbSetServerInputProcPtr)(struct _rfbClientRec *cl, int status)
Status determines if the X11 server permits input from the local user status==0 or 1...
Definition: libvncserver/rfb/rfb.h:157
rfbReverseConnection
rfbClientPtr rfbReverseConnection(rfbScreenInfoPtr rfbScreen, char *host, int port)
_rfbProtocolExtension::next
struct _rfbProtocolExtension * next
Definition: libvncserver/rfb/rfb.h:211
_rfbClientRec::RFB_INITIALISATION
sending initialisation messages
Definition: libvncserver/rfb/rfb.h:452
_rfbScreenInfo::thisHost
char thisHost[255]
Definition: libvncserver/rfb/rfb.h:254
rfbDisplayHookPtr
void(* rfbDisplayHookPtr)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:142
rfbColourMap::count
uint32_t count
Definition: libvncserver/rfb/rfb.h:167
ClientGoneHookPtr
void(* ClientGoneHookPtr)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:394
rfbCursorPtr
struct rfbCursor * rfbCursorPtr
_rfbClientRec::preferredEncoding
int preferredEncoding
Definition: libvncserver/rfb/rfb.h:460
_rfbScreenInfo::whitePixel
rfbPixel whitePixel
Definition: libvncserver/rfb/rfb.h:240
rfbColourMap
Definition: libvncserver/rfb/rfb.h:166
rfbClientIteratorPtr
struct rfbClientIterator * rfbClientIteratorPtr
Definition: libvncserver/rfb/rfb.h:692
_rfbScreenInfo::colourMap
rfbColourMap colourMap
set this if rfbServerFormat.trueColour==FALSE
Definition: libvncserver/rfb/rfb.h:252
_rfbClientRec::zrleBeforeBuf
char * zrleBeforeBuf
for threaded zrle
Definition: libvncserver/rfb/rfb.h:611
rfbDisconnectUDPSock
void rfbDisconnectUDPSock(rfbScreenInfoPtr rfbScreen)
_rfbClientRec::state
enum _rfbClientRec::@2 state
Possible client states:
_rfbScreenInfo::port
int port
Definition: libvncserver/rfb/rfb.h:257
_rfbScreenInfo::udpSock
SOCKET udpSock
Definition: libvncserver/rfb/rfb.h:272
rfbSendDirContent
rfbBool rfbSendDirContent(rfbClientPtr cl, int length, char *buffer)
rfbReverseByte
unsigned char rfbReverseByte[0x100]
_rfbScreenInfo::blackPixel
rfbPixel blackPixel
Definition: libvncserver/rfb/rfb.h:239
defaultNewClientHook
enum rfbNewClientAction defaultNewClientHook(rfbClientPtr cl)
rfbStatGetSentBytes
int rfbStatGetSentBytes(rfbClientPtr cl)
_rfbProtocolExtension::init
rfbBool(* init)(struct _rfbClientRec *client, void *data)
returns FALSE if extension should be deactivated for client.
Definition: libvncserver/rfb/rfb.h:195
rfbProcessSizeArguments
rfbBool rfbProcessSizeArguments(int *width, int *height, int *bpp, int *argc, char *argv[])
_rfbClientRec::next
struct _rfbClientRec * next
Definition: libvncserver/rfb/rfb.h:581
_rfbScreenInfo::versionString
char * versionString
rfbEncodingServerIdentity
Definition: libvncserver/rfb/rfb.h:358
_rfbClientRec::modifiedRegion
sraRegionPtr modifiedRegion
Definition: libvncserver/rfb/rfb.h:494
rfbFileTransferData
struct _rfbFileTransferData rfbFileTransferData
rfbStatGetEncodingCountSent
int rfbStatGetEncodingCountSent(rfbClientPtr cl, uint32_t type)
rfbDrawStringWithClip
void rfbDrawStringWithClip(rfbScreenInfoPtr rfbScreen, rfbFontDataPtr font, int x, int y, const char *string, int x1, int y1, int x2, int y2, rfbPixel colour, rfbPixel backColour)
_rfbScreenInfo::listenInterface
in_addr_t listenInterface
Definition: libvncserver/rfb/rfb.h:351
_rfbScreenInfo::httpPort
int httpPort
Definition: libvncserver/rfb/rfb.h:282
messageNameServer2Client
char * messageNameServer2Client(uint32_t type, char *buf, int len)
_rfbScreenInfo::underCursorBufferLen
int underCursorBufferLen
Definition: libvncserver/rfb/rfb.h:309
rfbPixelFormat
Definition: rfbproto.h:148
rfbSendRectEncodingUltra
rfbBool rfbSendRectEncodingUltra(rfbClientPtr cl, int x, int y, int w, int h)
rfbSetTranslateFunctionProcPtr
rfbBool(* rfbSetTranslateFunctionProcPtr)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:139
rfbCursor::cleanupMask
rfbBool cleanupMask
Definition: libvncserver/rfb/rfb.h:821
rfbTranslateFnType
void(* rfbTranslateFnType)(char *table, rfbPixelFormat *in, rfbPixelFormat *out, char *iptr, char *optr, int bytesBetweenInputLines, int width, int height)
rfbTranslateFnType is the type of translation functions.
Definition: libvncserver/rfb/rfb.h:378
rfbSetXCutTextProcPtr
void(* rfbSetXCutTextProcPtr)(char *str, int len, struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:137
_rfbClientRec::beforeEncBufSize
int beforeEncBufSize
Definition: libvncserver/rfb/rfb.h:623
rfbProcessFileTransfer
rfbBool rfbProcessFileTransfer(rfbClientPtr cl, uint8_t contentType, uint8_t contentParam, uint32_t size, uint32_t length)
rfbIncrClientRef
void rfbIncrClientRef(rfbClientPtr cl)
_rfbSecurity::type
uint8_t type
Definition: libvncserver/rfb/rfb.h:180
_rfbClientRec::cursorWasChanged
rfbBool cursorWasChanged
cursor shape update should be sent
Definition: libvncserver/rfb/rfb.h:572
_rfbScreenInfo::pointerClient
struct _rfbClientRec * pointerClient
"Mutex" for pointer events
Definition: libvncserver/rfb/rfb.h:305
rfbKeySym
uint32_t rfbKeySym
Definition: rfbproto.h:109
_rfbClientRec::screen
rfbScreenInfoPtr screen
back pointer to the screen
Definition: libvncserver/rfb/rfb.h:420
rfbProtocolExtension
struct _rfbProtocolExtension rfbProtocolExtension
Protocol extension handling.
rfbMarkRegionAsModified
void rfbMarkRegionAsModified(rfbScreenInfoPtr rfbScreen, sraRegionPtr modRegion)
_rfbClientRec::enableSupportedEncodings
rfbBool enableSupportedEncodings
client supports SupportedEncodings encoding
Definition: libvncserver/rfb/rfb.h:565
rfbSendRectEncodingRRE
rfbBool rfbSendRectEncodingRRE(rfbClientPtr cl, int x, int y, int w, int h)
rfbSetSingleWindowProcPtr
void(* rfbSetSingleWindowProcPtr)(struct _rfbClientRec *cl, int x, int y)
If x==1 and y==1 then set the whole display else find the window underneath x and y and set the frame...
Definition: libvncserver/rfb/rfb.h:152
rfbPixel
uint32_t rfbPixel
Definition: rfbproto.h:110
rfbCursor::cleanupSource
rfbBool cleanupSource
Definition: libvncserver/rfb/rfb.h:821
_rfbClientRec::onHold
rfbBool onHold
Definition: libvncserver/rfb/rfb.h:457
rfbClientConnFailed
void rfbClientConnFailed(rfbClientPtr cl, const char *reason)
rfbStatGetMessageCountRcvd
int rfbStatGetMessageCountRcvd(rfbClientPtr cl, uint32_t type)
_rfbExtensionData::data
void * data
Definition: libvncserver/rfb/rfb.h:216
_rfbClientRec::fileTransfer
rfbFileTransferData fileTransfer
Definition: libvncserver/rfb/rfb.h:561
_rfbClientRec::correMaxHeight
int correMaxHeight
Definition: libvncserver/rfb/rfb.h:461
rfbInitServer
#define rfbInitServer
Definition: libvncserver/rfb/rfb.h:114
rfbZRLETileHeight
#define rfbZRLETileHeight
Definition: rfbproto.h:900
rfbWriteExact
int rfbWriteExact(rfbClientPtr cl, const char *buf, int len)
rfbStatGetEncodingCountRcvd
int rfbStatGetEncodingCountRcvd(rfbClientPtr cl, uint32_t type)
_rfbScreenInfo::inetdInitDone
rfbBool inetdInitDone
Definition: libvncserver/rfb/rfb.h:269
rfbSendUpdateBuf
rfbBool rfbSendUpdateBuf(rfbClientPtr cl)
rfbShutdownSockets
void rfbShutdownSockets(rfbScreenInfoPtr rfbScreen)
rfbSetServerVersionIdentity
void rfbSetServerVersionIdentity(rfbScreenInfoPtr screen, char *fmt,...)
rfbAuthProcessClientMessage
void rfbAuthProcessClientMessage(rfbClientPtr cl)
_rfbScreenInfo::getCursorPtr
rfbGetCursorProcPtr getCursorPtr
Definition: libvncserver/rfb/rfb.h:323
_rfbClientRec::sock
SOCKET sock
Definition: libvncserver/rfb/rfb.h:437
_rfbClientRec
Definition: libvncserver/rfb/rfb.h:417
rfbSendNewFBSize
rfbBool rfbSendNewFBSize(rfbClientPtr cl, int w, int h)
_rfbClientRec::statEncList
struct _rfbStatList * statEncList
Definition: libvncserver/rfb/rfb.h:534
rfbWholeFontBBox
void rfbWholeFontBBox(rfbFontDataPtr font, int *x1, int *y1, int *x2, int *y2)
this returns the smallest box enclosing any character of font.
_rfbProtocolExtension::newClient
rfbBool(* newClient)(struct _rfbClientRec *client, void **data)
returns FALSE if extension should be deactivated for client.
Definition: libvncserver/rfb/rfb.h:192
_rfbScreenInfo::maxClientWait
int maxClientWait
Definition: libvncserver/rfb/rfb.h:277
rfbSecurityHandler
struct _rfbSecurity rfbSecurityHandler
Security handling (RFB protocol version 3.7)
rfbCursor::yhot
unsigned short yhot
metrics
Definition: libvncserver/rfb/rfb.h:824
rfbFontData::metaData
int * metaData
metaData is a 256*5 array: for each character (offset,width,height,x,y)
Definition: libvncserver/rfb/rfb.h:866
rfbStringToAddr
int rfbStringToAddr(char *string, in_addr_t *addr)
rfbProcessArguments
rfbBool rfbProcessArguments(rfbScreenInfoPtr rfbScreen, int *argc, char *argv[])
rfbSendRectEncodingCoRRE
rfbBool rfbSendRectEncodingCoRRE(rfbClientPtr cl, int x, int y, int w, int h)
_rfbScreenInfo::httpSock
SOCKET httpSock
Definition: libvncserver/rfb/rfb.h:285
rfbClientListInit
void rfbClientListInit(rfbScreenInfoPtr rfbScreen)
_rfbScreenInfo::desktopName
const char * desktopName
Definition: libvncserver/rfb/rfb.h:253
rfbSetCursor
void rfbSetCursor(rfbScreenInfoPtr rfbScreen, rfbCursorPtr c)
_rfbScreenInfo::setSingleWindow
rfbSetSingleWindowProcPtr setSingleWindow
Definition: libvncserver/rfb/rfb.h:325
rfbStatList
struct _rfbStatList rfbStatList
rfbClientPtr
struct _rfbClientRec * rfbClientPtr
_rfbFileTransferData
Definition: libvncserver/rfb/rfb.h:396
rfbConnect
int rfbConnect(rfbScreenInfoPtr rfbScreen, char *host, int port)
_rfbScreenInfo::inetdSock
SOCKET inetdSock
Definition: libvncserver/rfb/rfb.h:268
rfbIsActive
rfbBool rfbIsActive(rfbScreenInfoPtr screenInfo)
rfbCursor::foreRed
unsigned short foreRed
Definition: libvncserver/rfb/rfb.h:825
rfbGotXCutText
void rfbGotXCutText(rfbScreenInfoPtr rfbScreen, char *str, int len)
rfbSendFramebufferUpdate
rfbBool rfbSendFramebufferUpdate(rfbClientPtr cl, sraRegionPtr updateRegion)
rfbReadExact
int rfbReadExact(rfbClientPtr cl, char *buf, int len)
_rfbScreenInfo::underCursorBuffer
char * underCursorBuffer
Definition: libvncserver/rfb/rfb.h:310
rfbCursor::alphaPreMultiplied
rfbBool alphaPreMultiplied
if richSource already has alpha applied
Definition: libvncserver/rfb/rfb.h:829
_rfbClientRec::lastKeyboardLedState
int lastKeyboardLedState
keep track of last value so we can send change events
Definition: libvncserver/rfb/rfb.h:563
rfbProcessClientSecurityType
void rfbProcessClientSecurityType(rfbClientPtr cl)
rfbDoCopyRect
void rfbDoCopyRect(rfbScreenInfoPtr rfbScreen, int x1, int y1, int x2, int y2, int dx, int dy)
_rfbScreenInfo::deferUpdateTime
int deferUpdateTime
this is the amount of milliseconds to wait at least before sending an update.
Definition: libvncserver/rfb/rfb.h:297
rfbFillRect
void rfbFillRect(rfbScreenInfoPtr s, int x1, int y1, int x2, int y2, rfbPixel col)
rfbSendLastRectMarker
rfbBool rfbSendLastRectMarker(rfbClientPtr cl)
rfbFontData
struct rfbFontData rfbFontData
rfbClientIteratorNext
rfbClientPtr rfbClientIteratorNext(rfbClientIteratorPtr iterator)
rfbReleaseExtensionIterator
void rfbReleaseExtensionIterator()
rfbStatGetRcvdBytesIfRaw
int rfbStatGetRcvdBytesIfRaw(rfbClientPtr cl)
rfbFontBBox
void rfbFontBBox(rfbFontDataPtr font, unsigned char c, int *x1, int *y1, int *x2, int *y2)
_rfbClientRec::lzoWrkMem
char * lzoWrkMem
Definition: libvncserver/rfb/rfb.h:559
rfbStatGetMessageCountSent
int rfbStatGetMessageCountSent(rfbClientPtr cl, uint32_t type)
_rfbClientRec::extensions
rfbExtensionData * extensions
Definition: libvncserver/rfb/rfb.h:608
rfbStatRecordEncodingSent
void rfbStatRecordEncodingSent(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw)
_rfbProtocolExtension::pseudoEncodings
int * pseudoEncodings
if pseudoEncodings is not NULL, it contains a 0 terminated list of the pseudo encodings handled by th...
Definition: libvncserver/rfb/rfb.h:198
_rfbProtocolExtension::close
void(* close)(struct _rfbClientRec *client, void *data)
Definition: libvncserver/rfb/rfb.h:207
_rfbScreenInfo::scaledScreenRefCount
int scaledScreenRefCount
Definition: libvncserver/rfb/rfb.h:230
_rfbScreenInfo::neverShared
rfbBool neverShared
Definition: libvncserver/rfb/rfb.h:302
_rfbClientRec::useRichCursorEncoding
rfbBool useRichCursorEncoding
rfbEncodingRichCursor is preferred
Definition: libvncserver/rfb/rfb.h:571
_rfbClientRec::ublen
int ublen
Definition: libvncserver/rfb/rfb.h:531
rfbSelectBox
int rfbSelectBox(rfbScreenInfoPtr rfbScreen, rfbFontDataPtr font, char **list, int x1, int y1, int x2, int y2, rfbPixel foreColour, rfbPixel backColour, int border, SelectionChangedHookPtr selChangedHook)
rfbRegisterProtocolExtension
void rfbRegisterProtocolExtension(rfbProtocolExtension *extension)
_rfbFileTransferData::sending
int sending
Definition: libvncserver/rfb/rfb.h:402
rfbDisplayFinishedHookPtr
void(* rfbDisplayFinishedHookPtr)(struct _rfbClientRec *cl, int result)
Definition: libvncserver/rfb/rfb.h:143
_rfbScreenInfo::passwordCheck
rfbPasswordCheckProcPtr passwordCheck
Definition: libvncserver/rfb/rfb.h:287
rfbMakeRichCursorFromXCursor
void rfbMakeRichCursorFromXCursor(rfbScreenInfoPtr rfbScreen, rfbCursorPtr cursor)
rfbScreenCleanup
void rfbScreenCleanup(rfbScreenInfoPtr screenInfo)
rfbScheduleCopyRect
void rfbScheduleCopyRect(rfbScreenInfoPtr rfbScreen, int x1, int y1, int x2, int y2, int dx, int dy)
rfbScreenInfo
struct _rfbScreenInfo rfbScreenInfo
Per-screen (framebuffer) structure.
_rfbClientRec::viewOnly
rfbBool viewOnly
Definition: libvncserver/rfb/rfb.h:463
_rfbClientRec::afterEncBufSize
int afterEncBufSize
Definition: libvncserver/rfb/rfb.h:625
_rfbScreenInfo::setXCutText
rfbSetXCutTextProcPtr setXCutText
Definition: libvncserver/rfb/rfb.h:322
rfbDrawPixel
void rfbDrawPixel(rfbScreenInfoPtr s, int x, int y, rfbPixel col)
rfbProcessUDPInput
void rfbProcessUDPInput(rfbScreenInfoPtr rfbScreen)
rfbStartOnHoldClient
void rfbStartOnHoldClient(rfbClientPtr cl)
_rfbStatList::bytesSent
uint32_t bytesSent
Definition: libvncserver/rfb/rfb.h:409
_rfbScreenInfo::clientHead
struct _rfbClientRec * clientHead
Definition: libvncserver/rfb/rfb.h:304
rfbCursor::richSource
unsigned char * richSource
source bytes for a rich cursor
Definition: libvncserver/rfb/rfb.h:827
_rfbClientRec::bytesSent
int bytesSent
Definition: libvncserver/rfb/rfb.h:537
rfbSendFileTransferMessage
rfbBool rfbSendFileTransferMessage(rfbClientPtr cl, uint8_t contentType, uint8_t contentParam, uint32_t size, uint32_t length, const char *buffer)
_rfbScreenInfo::listenSock
SOCKET listenSock
Definition: libvncserver/rfb/rfb.h:258
_rfbProtocolExtension::usage
void(* usage)(void)
Definition: libvncserver/rfb/rfb.h:208
rfbEndianTest
char rfbEndianTest
_rfbClientRec::afterEncBufLen
int afterEncBufLen
Definition: libvncserver/rfb/rfb.h:626
size
lzo_uint lzo_uint size
Definition: lzoconf.h:271
encodingName
char * encodingName(uint32_t enc, char *buf, int len)
rfbTranslateNone
void rfbTranslateNone(char *table, rfbPixelFormat *in, rfbPixelFormat *out, char *iptr, char *optr, int bytesBetweenInputLines, int width, int height)
rfbNewUDPConnection
void rfbNewUDPConnection(rfbScreenInfoPtr rfbScreen, int sock)
messageNameClient2Server
char * messageNameClient2Server(uint32_t type, char *buf, int len)
_rfbScreenInfo::kbdReleaseAllKeys
rfbKbdReleaseAllKeysProcPtr kbdReleaseAllKeys
Definition: libvncserver/rfb/rfb.h:320
_rfbClientRec::cursorWasMoved
rfbBool cursorWasMoved
cursor position update should be sent
Definition: libvncserver/rfb/rfb.h:573
_rfbSecurity
Security handling (RFB protocol version 3.7)
Definition: libvncserver/rfb/rfb.h:179
rfbCursor::mask
unsigned char * mask
points to bits
Definition: libvncserver/rfb/rfb.h:823
_rfbClientRec::copyDY
int copyDY
the translation by which the copy happens
Definition: libvncserver/rfb/rfb.h:492
rfbExtensionData
struct _rfbExtensionData rfbExtensionData
rfbLogPerror
void rfbLogPerror(const char *str)
rfbShutdownServer
void rfbShutdownServer(rfbScreenInfoPtr rfbScreen, rfbBool disconnectClients)
_rfbClientRec::lastPtrButtons
int lastPtrButtons
Definition: libvncserver/rfb/rfb.h:513
rfbSetProtocolVersion
void rfbSetProtocolVersion(rfbScreenInfoPtr rfbScreen, int major_, int minor_)
Set which version you want to advertise 3.3, 3.6, 3.7 and 3.8 are currently supported.
_rfbScreenInfo::udpRemoteAddr
struct sockaddr_in udpRemoteAddr
Definition: libvncserver/rfb/rfb.h:275
rfbZRLETileWidth
#define rfbZRLETileWidth
Definition: rfbproto.h:899
_rfbClientRec::beforeEncBuf
char * beforeEncBuf
for thread safety for rfbSendFBUpdate()
Definition: libvncserver/rfb/rfb.h:622
_rfbScreenInfo::scaledScreenNext
struct _rfbScreenInfo * scaledScreenNext
this structure has children that are scaled versions of this screen
Definition: libvncserver/rfb/rfb.h:229
rfbCursor::backRed
unsigned short backRed
Definition: libvncserver/rfb/rfb.h:826
rfbListenOnTCPPort
int rfbListenOnTCPPort(int port, in_addr_t iface)
rfbHttpInitSockets
void rfbHttpInitSockets(rfbScreenInfoPtr rfbScreen)
rfbDisableExtension
rfbBool rfbDisableExtension(rfbClientPtr cl, rfbProtocolExtension *extension)
_rfbFileTransferData::fileSize
int fileSize
Definition: libvncserver/rfb/rfb.h:399
rfbUsage
void rfbUsage(void)
rfbStatGetSentBytesIfRaw
int rfbStatGetSentBytesIfRaw(rfbClientPtr cl)
rfbConvertLSBCursorBitmapOrMask
void rfbConvertLSBCursorBitmapOrMask(int width, int height, unsigned char *bitmap)
sraRegion
struct sraRegion sraRegion
Definition: rfbregion.h:18
rfbNewFramebuffer
void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen, char *framebuffer, int width, int height, int bitsPerSample, int samplesPerPixel, int bytesPerPixel)
rfbClientToServerMsg
Definition: rfbproto.h:1400
rfbConnectToTcpAddr
int rfbConnectToTcpAddr(char *host, int port)
_rfbScreenInfo::permitFileTransfer
rfbBool permitFileTransfer
command line authorization of file transfers
Definition: libvncserver/rfb/rfb.h:365
rfbCursor
struct rfbCursor rfbCursor
rfbSendCursorPos
rfbBool rfbSendCursorPos(rfbClientPtr cl)
_rfbClientRec::translateLookupTable
char * translateLookupTable
Definition: libvncserver/rfb/rfb.h:519
_rfbScreenInfo::httpEnableProxyConnect
rfbBool httpEnableProxyConnect
Definition: libvncserver/rfb/rfb.h:281
_rfbClientRec::cursorY
int cursorY
the coordinates of the cursor, if enableCursorShapeUpdates = FALSE
Definition: libvncserver/rfb/rfb.h:574
_rfbScreenInfo::httpListenSock
SOCKET httpListenSock
Definition: libvncserver/rfb/rfb.h:284
_rfbScreenInfo::deferPtrUpdateTime
int deferPtrUpdateTime
Definition: libvncserver/rfb/rfb.h:352
rfbRunEventLoop
void rfbRunEventLoop(rfbScreenInfoPtr screenInfo, long usec, rfbBool runInBackground)
rfbXvpHookPtr
rfbBool(* rfbXvpHookPtr)(struct _rfbClientRec *cl, uint8_t, uint8_t)
Definition: libvncserver/rfb/rfb.h:146
rfbHttpCheckFds
void rfbHttpCheckFds(rfbScreenInfoPtr rfbScreen)
rfbColourMap::shorts
uint16_t * shorts
Definition: libvncserver/rfb/rfb.h:171
_rfbScreenInfo::getFileTransferPermission
rfbFileTransferPermitted getFileTransferPermission
Definition: libvncserver/rfb/rfb.h:327
rfbProcessNewConnection
rfbBool rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen)
rfbRefuseOnHoldClient
void rfbRefuseOnHoldClient(rfbClientPtr cl)
_rfbScreenInfo
Per-screen (framebuffer) structure.
Definition: libvncserver/rfb/rfb.h:226
rfbStatRecordMessageSent
void rfbStatRecordMessageSent(rfbClientPtr cl, uint32_t type, int byteCount, int byteIfRaw)
rfbStatLookupMessage
rfbStatList * rfbStatLookupMessage(rfbClientPtr cl, uint32_t type)
_rfbScreenInfo::protocolMajorVersion
int protocolMajorVersion
What does the server tell the new clients which version it supports.
Definition: libvncserver/rfb/rfb.h:361
_rfbClientRec::startPtrDeferring
struct timeval startPtrDeferring
Definition: libvncserver/rfb/rfb.h:510
rfbDoNothingWithClient
void rfbDoNothingWithClient(rfbClientPtr cl)
rfbCheckPasswordByList
rfbBool rfbCheckPasswordByList(rfbClientPtr cl, const char *response, int len)
to check against plain passwords
rfbRegisterTightVNCFileTransferExtension
void rfbRegisterTightVNCFileTransferExtension()
_rfbExtensionData
Definition: libvncserver/rfb/rfb.h:214
rfbSetTextChat
void(* rfbSetTextChat)(struct _rfbClientRec *cl, int length, char *string)
Handle the textchat messages.
Definition: libvncserver/rfb/rfb.h:164
_rfbStatList::bytesRcvdIfRaw
uint32_t bytesRcvdIfRaw
Definition: libvncserver/rfb/rfb.h:413
_rfbClientRec::progressiveSliceY
int progressiveSliceY
if progressive updating is on, this variable holds the current y coordinate of the progressive slice...
Definition: libvncserver/rfb/rfb.h:606
rfbMakeXCursorFromRichCursor
void rfbMakeXCursorFromRichCursor(rfbScreenInfoPtr rfbScreen, rfbCursorPtr cursor)
_rfbProtocolExtension
Protocol extension handling.
Definition: libvncserver/rfb/rfb.h:189
_rfbScreenInfo::getKeyboardLedStateHook
rfbGetKeyboardLedStateHookPtr getKeyboardLedStateHook
These hooks are called to pass keyboard state back to the client.
Definition: libvncserver/rfb/rfb.h:336
_rfbClientRec::reverseConnection
rfbBool reverseConnection
Definition: libvncserver/rfb/rfb.h:456
_rfbClientRec::readyForSetColourMapEntries
rfbBool readyForSetColourMapEntries
Definition: libvncserver/rfb/rfb.h:458
RFB_SOCKET_SHUTDOWN
Definition: libvncserver/rfb/rfb.h:131
_rfbClientRec::enableServerIdentity
rfbBool enableServerIdentity
client supports ServerIdentity encoding
Definition: libvncserver/rfb/rfb.h:566
rfbSetNonBlocking
rfbBool rfbSetNonBlocking(int sock)
_rfbScreenInfo::autoPort
rfbBool autoPort
Definition: libvncserver/rfb/rfb.h:256
rfbCursor::source
unsigned char * source
points to bits
Definition: libvncserver/rfb/rfb.h:822
rfbLog
rfbLogProc rfbLog
_rfbClientRec::RFB_PROTOCOL_VERSION
establishing protocol version
Definition: libvncserver/rfb/rfb.h:449
_rfbScreenInfo::cursor
struct rfbCursor * cursor
Definition: libvncserver/rfb/rfb.h:312
rfbLogEnable
void rfbLogEnable(int enabled)
_rfbStatList::Next
struct _rfbStatList * Next
Definition: libvncserver/rfb/rfb.h:414
_rfbClientRec::scaledScreen
rfbScreenInfoPtr scaledScreen
points to a scaled version of the screen buffer in cl->scaledScreenList
Definition: libvncserver/rfb/rfb.h:423
_rfbScreenInfo::progressiveSliceHeight
int progressiveSliceHeight
if not zero, only a slice of this height is processed every time an update should be sent...
Definition: libvncserver/rfb/rfb.h:349
rfbFreeCursor
void rfbFreeCursor(rfbCursorPtr cursor)
_rfbFileTransferData::numPackets
int numPackets
Definition: libvncserver/rfb/rfb.h:400
_rfbScreenInfo::sizeInBytes
int sizeInBytes
Definition: libvncserver/rfb/rfb.h:237
_rfbScreenInfo::handleEventsEagerly
rfbBool handleEventsEagerly
handle as many input events as possible (default off)
Definition: libvncserver/rfb/rfb.h:355
_rfbScreenInfo::cursorX
int cursorX
Definition: libvncserver/rfb/rfb.h:309
UPDATE_BUF_SIZE
#define UPDATE_BUF_SIZE
UPDATE_BUF_SIZE must be big enough to send at least one whole line of the framebuffer.
Definition: libvncserver/rfb/rfb.h:528
_rfbScreenInfo::ptrAddEvent
rfbPtrAddEventProcPtr ptrAddEvent
Definition: libvncserver/rfb/rfb.h:321
_rfbExtensionData::next
struct _rfbExtensionData * next
Definition: libvncserver/rfb/rfb.h:217
rfbDrawCharWithClip
int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen, rfbFontDataPtr font, int x, int y, unsigned char c, int x1, int y1, int x2, int y2, rfbPixel colour, rfbPixel backColour)
if colour==backColour, background is transparent
_rfbScreenInfo::kbdAddEvent
rfbKbdAddEventProcPtr kbdAddEvent
Definition: libvncserver/rfb/rfb.h:319
_rfbScreenInfo::serverFormat
rfbPixelFormat serverFormat
Definition: libvncserver/rfb/rfb.h:251
_rfbExtensionData::extension
rfbProtocolExtension * extension
Definition: libvncserver/rfb/rfb.h:215
_rfbClientRec::copyRegion
sraRegionPtr copyRegion
the destination region of the copy
Definition: libvncserver/rfb/rfb.h:491
rfbRegisterSecurityHandler
void rfbRegisterSecurityHandler(rfbSecurityHandler *handler)
_rfbScreenInfo::width
int width
Definition: libvncserver/rfb/rfb.h:232
rfbGetExtensionIterator
struct _rfbProtocolExtension * rfbGetExtensionIterator()
rfbSendCursorShape
rfbBool rfbSendCursorShape(rfbClientPtr cl)
_rfbClientRec::lastPtrX
int lastPtrX
Definition: libvncserver/rfb/rfb.h:511
rfbColourMap::bytes
uint8_t * bytes
Definition: libvncserver/rfb/rfb.h:170
_rfbClientRec::enableLastRectEncoding
rfbBool enableLastRectEncoding
client supports LastRect encoding
Definition: libvncserver/rfb/rfb.h:568
rfbDrawString
void rfbDrawString(rfbScreenInfoPtr rfbScreen, rfbFontDataPtr font, int x, int y, const char *string, rfbPixel colour)
rfbSetTranslateFunction
rfbBool rfbSetTranslateFunction(rfbClientPtr cl)
rfbReleaseClientIterator
void rfbReleaseClientIterator(rfbClientIteratorPtr iterator)
_rfbClientRec::afterEncBuf
char * afterEncBuf
Definition: libvncserver/rfb/rfb.h:624
_rfbScreenInfo::maxFd
int maxFd
Definition: libvncserver/rfb/rfb.h:260
rfbProcessClientMessage
void rfbProcessClientMessage(rfbClientPtr cl)
_rfbScreenInfo::frameBuffer
char * frameBuffer
the frameBuffer has to be supplied by the serving process.
Definition: libvncserver/rfb/rfb.h:318
_rfbClientRec::useNewFBSize
rfbBool useNewFBSize
client supports NewFBSize encoding
Definition: libvncserver/rfb/rfb.h:577
_rfbClientRec::clientGoneHook
ClientGoneHookPtr clientGoneHook
Definition: libvncserver/rfb/rfb.h:435
rfbProcessEvents
rfbBool rfbProcessEvents(rfbScreenInfoPtr screenInfo, long usec)
_rfbClientRec::startDeferring
struct timeval startDeferring
The following member represents the state of the "deferred update" timer.
Definition: libvncserver/rfb/rfb.h:509
rfbMaxClientWait
int rfbMaxClientWait
rfbSendRectEncodingHextile
rfbBool rfbSendRectEncodingHextile(rfbClientPtr cl, int x, int y, int w, int h)
rfbSendFileTransferChunk
rfbBool rfbSendFileTransferChunk(rfbClientPtr cl)
rfbPasswordCheckProcPtr
rfbBool(* rfbPasswordCheckProcPtr)(struct _rfbClientRec *cl, const char *encryptedPassWord, int len)
Definition: libvncserver/rfb/rfb.h:140
_rfbClientRec::lastPtrY
int lastPtrY
Definition: libvncserver/rfb/rfb.h:512
_rfbStatList
Definition: libvncserver/rfb/rfb.h:406
rfbUpdateClient
rfbBool rfbUpdateClient(rfbClientPtr cl)
_rfbScreenInfo::dontDisconnect
rfbBool dontDisconnect
Definition: libvncserver/rfb/rfb.h:303
rfbCursor::backBlue
unsigned short backBlue
device-independent colour
Definition: libvncserver/rfb/rfb.h:826
_rfbScreenInfo::screenData
void * screenData
some screen specific data can be put into a struct where screenData points to.
Definition: libvncserver/rfb/rfb.h:247
rfbSetClientColourMap
rfbBool rfbSetClientColourMap(rfbClientPtr cl, int firstColour, int nColours)
MUTEX
#define MUTEX(mutex)
Definition: libvncserver/rfb/rfb.h:87
COND
#define COND(cond)
Definition: libvncserver/rfb/rfb.h:92
rfbCursor::backGreen
unsigned short backGreen
Definition: libvncserver/rfb/rfb.h:826
rfbNewClientAction
rfbNewClientAction
Definition: libvncserver/rfb/rfb.h:122
rfbGetScreen
rfbScreenInfoPtr rfbGetScreen(int *argc, char **argv, int width, int height, int bitsPerSample, int samplesPerPixel, int bytesPerPixel)
rfbCursor::cleanup
rfbBool cleanup
set this to true if LibVNCServer has to free this cursor
Definition: libvncserver/rfb/rfb.h:821
_rfbClientRec::clientData
void * clientData
private data.
Definition: libvncserver/rfb/rfb.h:434
_rfbSecurity::next
struct _rfbSecurity * next
Definition: libvncserver/rfb/rfb.h:182
rfbLoadConsoleFont
rfbFontDataPtr rfbLoadConsoleFont(char *filename)
dynamically load a linux console font (4096 bytes, 256 glyphs a 8x16
int
typedef int
Definition: lzoconf.h:277
_rfbClientRec::PalmVNC
rfbBool PalmVNC
how did the client tell us it wanted the screen changed? Ultra style or palm style?
Definition: libvncserver/rfb/rfb.h:425
_rfbClientRec::protocolMinorVersion
int protocolMinorVersion
Definition: libvncserver/rfb/rfb.h:442
RFB_CLIENT_REFUSE
Definition: libvncserver/rfb/rfb.h:125
_rfbStatList::sentCount
uint32_t sentCount
Definition: libvncserver/rfb/rfb.h:408
rfbProcessFileTransferReadBuffer
char * rfbProcessFileTransferReadBuffer(rfbClientPtr cl, uint32_t length)
rfbGetExtensionClientData
void * rfbGetExtensionClientData(rfbClientPtr cl, rfbProtocolExtension *extension)
rfbSendCopyRegion
rfbBool rfbSendCopyRegion(rfbClientPtr cl, sraRegionPtr reg, int dx, int dy)
RFB_SOCKET_INIT
Definition: libvncserver/rfb/rfb.h:129
SOCKET
#define SOCKET
Definition: rfbproto.h:101
_rfbScreenInfo::authPasswdFirstViewOnly
int authPasswdFirstViewOnly
If rfbAuthPasswdData is given a list, this is the first view only password.
Definition: libvncserver/rfb/rfb.h:291
_rfbScreenInfo::xvpHook
rfbXvpHookPtr xvpHook
xvpHook is called to handle an xvp client message
Definition: libvncserver/rfb/rfb.h:370
_rfbClientRec::translateFn
rfbTranslateFnType translateFn
translateFn points to the translation function which is used to copy and translate a rectangle from t...
Definition: libvncserver/rfb/rfb.h:518
_rfbClientRec::enableCursorShapeUpdates
rfbBool enableCursorShapeUpdates
client supports cursor shape updates
Definition: libvncserver/rfb/rfb.h:569
rfbResetStats
void rfbResetStats(rfbClientPtr cl)
_rfbScreenInfo::authPasswdData
void * authPasswdData
Definition: libvncserver/rfb/rfb.h:288
rfbWidthOfString
int rfbWidthOfString(rfbFontDataPtr font, const char *string)
_rfbProtocolExtension::enablePseudoEncoding
rfbBool(* enablePseudoEncoding)(struct _rfbClientRec *client, void **data, int encodingNumber)
returns TRUE if that pseudo encoding is handled by the extension.
Definition: libvncserver/rfb/rfb.h:201
rfbFreeFont
void rfbFreeFont(rfbFontDataPtr font)
free a dynamically loaded font
_rfbStatList::rcvdCount
uint32_t rcvdCount
Definition: libvncserver/rfb/rfb.h:411
_rfbClientRec::statMsgList
struct _rfbStatList * statMsgList
Definition: libvncserver/rfb/rfb.h:535
RFB_SOCKET_READY
Definition: libvncserver/rfb/rfb.h:130
_rfbFileTransferData::fd
int fd
Definition: libvncserver/rfb/rfb.h:397
rfbPtrAddEventProcPtr
void(* rfbPtrAddEventProcPtr)(int buttonMask, int x, int y, struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:136
rfbDefaultPtrAddEvent
void rfbDefaultPtrAddEvent(int buttonMask, int x, int y, rfbClientPtr cl)
cursor handling for the pointer
rfbUnregisterProtocolExtension
void rfbUnregisterProtocolExtension(rfbProtocolExtension *extension)
rfbSendTextChatMessage
rfbBool rfbSendTextChatMessage(rfbClientPtr cl, uint32_t length, char *buffer)
send a TextChat message to a client
_rfbClientRec::newFBSizePending
rfbBool newFBSizePending
framebuffer size was changed
Definition: libvncserver/rfb/rfb.h:578
rfbCursor
Definition: libvncserver/rfb/rfb.h:819
rfbClientRec
struct _rfbClientRec rfbClientRec
rfbInitSockets
void rfbInitSockets(rfbScreenInfoPtr rfbScreen)
_rfbSecurity::handler
void(* handler)(struct _rfbClientRec *cl)
Definition: libvncserver/rfb/rfb.h:181
_rfbClientRec::enableSupportedMessages
rfbBool enableSupportedMessages
client supports SupportedMessages encoding
Definition: libvncserver/rfb/rfb.h:564
rfbStatLookupEncoding
rfbStatList * rfbStatLookupEncoding(rfbClientPtr cl, uint32_t type)
_rfbScreenInfo::udpSockConnected
rfbBool udpSockConnected
Definition: libvncserver/rfb/rfb.h:274
_rfbScreenInfo::udpClient
struct _rfbClientRec * udpClient
Definition: libvncserver/rfb/rfb.h:273
rfbStatGetRcvdBytes
int rfbStatGetRcvdBytes(rfbClientPtr cl)
_rfbScreenInfo::displayHook
rfbDisplayHookPtr displayHook
displayHook is called just before a frame buffer update
Definition: libvncserver/rfb/rfb.h:333
rfbPurgeArguments
void rfbPurgeArguments(int *argc, int *position, int count, char *argv[])
_rfbScreenInfo::alwaysShared
rfbBool alwaysShared
Definition: libvncserver/rfb/rfb.h:301
RFB_CLIENT_ON_HOLD
Definition: libvncserver/rfb/rfb.h:124
_rfbScreenInfo::setServerInput
rfbSetServerInputProcPtr setServerInput
Definition: libvncserver/rfb/rfb.h:326
rfbSocketState
rfbSocketState
Definition: libvncserver/rfb/rfb.h:128
_rfbScreenInfo::httpInitDone
rfbBool httpInitDone
Definition: libvncserver/rfb/rfb.h:280
rfbFontData
Definition: libvncserver/rfb/rfb.h:859
rfbAuthNewClient
void rfbAuthNewClient(rfbClientPtr cl)
rfbClientConnectionGone
void rfbClientConnectionGone(rfbClientPtr cl)
rfbUnregisterSecurityHandler
void rfbUnregisterSecurityHandler(rfbSecurityHandler *handler)
_rfbClientRec::rawBytesEquivalent
int rawBytesEquivalent
Definition: libvncserver/rfb/rfb.h:536
rfbDecrClientRef
void rfbDecrClientRef(rfbClientPtr cl)
_rfbStatList::type
uint32_t type
Definition: libvncserver/rfb/rfb.h:407
rfbCloseClient
void rfbCloseClient(rfbClientPtr cl)
_rfbScreenInfo::height
int height
Definition: libvncserver/rfb/rfb.h:234
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:29:40 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

krfb

Skip menu "krfb"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal