From 71ba9a7a547798347ecfe1efbaba63904b0992c3 Mon Sep 17 00:00:00 2001 From: Joel Martin Date: Wed, 29 Dec 2010 14:11:28 -0700 Subject: [PATCH] wswrapper: update README, DO_MSG def for output. Update README to mention wswrapper. Add DO_MSG define which controls whether wswrapper code generates basic output. --- utils/README.md | 21 +++++++++++++++++---- utils/wswrapper.c | 2 ++ utils/wswrapper.h | 12 ++++++++---- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/utils/README.md b/utils/README.md index b0ed6018..916fde27 100644 --- a/utils/README.md +++ b/utils/README.md @@ -1,7 +1,20 @@ -## wsproxy: WebSockets to TCP Proxy +## WebSockets Utilities: wswrapper and wsproxy -### How it works +### wswrapper + +wswrapper is an LD_PRELOAD library that converts a TCP listen socket +of an existing program to a be a WebSockets socket. The `wswrap` +script can be used to easily launch a program using wswrapper. Here is +an example of using wswrapper with vncserver. wswrapper will convert +the socket listening on port 5901 to be a WebSockets port: + + `cd noVNC/utils` + + `./wswrap 5901 vncserver -geometry 640x480 :1` + + +### wsproxy At the most basic level, wsproxy just translates WebSockets traffic to normal socket traffic. wsproxy accepts the WebSockets handshake, @@ -15,7 +28,7 @@ case the data from the client is not a full WebSockets frame (i.e. does not end in 255). -### Additional features +#### Additional wsproxy features These are not necessary for the basic operation. @@ -38,7 +51,7 @@ These are not necessary for the basic operation. option. -### Implementations +#### Implementations of wsproxy There are three implementations of wsproxy included: python, C, and Node (node.js). diff --git a/utils/wswrapper.c b/utils/wswrapper.c index d507d911..7d4c9c99 100644 --- a/utils/wswrapper.c +++ b/utils/wswrapper.c @@ -13,6 +13,7 @@ * - programs using ppoll or epoll will not work correctly */ +#define DO_MSG 1 //#define DO_DEBUG 1 //#define DO_TRACE 1 @@ -828,6 +829,7 @@ int _WS_poll(int mode, struct pollfd *fds, nfds_t nfds, int timeout, return ret; } + /* * Overload (LD_PRELOAD) standard library network routines */ diff --git a/utils/wswrapper.h b/utils/wswrapper.h index 8550e3e1..afe9375b 100644 --- a/utils/wswrapper.h +++ b/utils/wswrapper.h @@ -7,6 +7,14 @@ * wswrapper.so. */ +#ifdef DO_MSG +#define MSG(...) \ + fprintf(stderr, "wswrapper: "); \ + fprintf(stderr, __VA_ARGS__); +#else +#define MSG(...) +#endif + #ifdef DO_DEBUG #define DEBUG(...) \ if (DO_DEBUG) { \ @@ -27,10 +35,6 @@ #define TRACE(...) #endif -#define MSG(...) \ - fprintf(stderr, "wswrapper: "); \ - fprintf(stderr, __VA_ARGS__); - #define RET_ERROR(eno, ...) \ fprintf(stderr, "wswrapper error: "); \ fprintf(stderr, __VA_ARGS__); \