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__); \