summaryrefslogtreecommitdiffstats
path: root/rfb
diff options
context:
space:
mode:
Diffstat (limited to 'rfb')
-rw-r--r--rfb/rfb.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/rfb/rfb.h b/rfb/rfb.h
index e79b68b..1a46e9a 100644
--- a/rfb/rfb.h
+++ b/rfb/rfb.h
@@ -631,6 +631,19 @@ typedef struct _rfbClientRec {
#if defined(LIBVNCSERVER_HAVE_LIBZ) || defined(LIBVNCSERVER_HAVE_LIBPNG)
uint32_t tightEncoding; /* rfbEncodingTight or rfbEncodingTightPng */
#endif
+
+#ifdef LIBVNCSERVER_WITH_WEBSOCKETS
+ rfbBool webSockets;
+ rfbBool webSocketsSSL;
+ rfbBool webSocketsBase64;
+
+ char encodeBuf[UPDATE_BUF_SIZE*2 + 2]; /* UTF-8 could double it + framing */
+
+ char decodeBuf[8192]; /* TODO: what makes sense? */
+ int dblen;
+ char carryBuf[3]; /* For base64 carry-over */
+ int carrylen;
+#endif
} rfbClientRec, *rfbClientPtr;
/**
@@ -683,6 +696,7 @@ extern void rfbDisconnectUDPSock(rfbScreenInfoPtr rfbScreen);
extern void rfbCloseClient(rfbClientPtr cl);
extern int rfbReadExact(rfbClientPtr cl, char *buf, int len);
extern int rfbReadExactTimeout(rfbClientPtr cl, char *buf, int len,int timeout);
+extern int rfbPeekExactTimeout(rfbClientPtr cl, char *buf, int len,int timeout);
extern int rfbWriteExact(rfbClientPtr cl, const char *buf, int len);
extern int rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec);
extern int rfbConnect(rfbScreenInfoPtr rfbScreen, char* host, int port);
@@ -692,6 +706,14 @@ extern int rfbListenOnUDPPort(int port, in_addr_t iface);
extern int rfbStringToAddr(char* string,in_addr_t* addr);
extern rfbBool rfbSetNonBlocking(int sock);
+#ifdef LIBVNCSERVER_WITH_WEBSOCKETS
+/* websockets.c */
+
+extern rfbBool webSocketsCheck(rfbClientPtr cl);
+extern int webSocketsEncode(rfbClientPtr cl, const char *src, int len);
+extern int webSocketsDecode(rfbClientPtr cl, char *dst, int len);
+#endif
+
/* rfbserver.c */
/* Routines to iterate over the client list in a thread-safe way.
OpenPOWER on IntegriCloud