summaryrefslogtreecommitdiffstats
path: root/libvncclient/vncviewer.c
diff options
context:
space:
mode:
authorChristian Beier <dontmind@freeshell.org>2009-10-26 22:24:21 +0100
committerJohannes Schindelin <johannes.schindelin@gmx.de>2009-10-30 18:29:05 +0100
commit0a4f1bada4f6e62e1cb4ffd6c34e6c8313c39aef (patch)
treed881e3baa675fa505fc449b955358d72dfee2d71 /libvncclient/vncviewer.c
parent3b608cd39b0f335658dc56525d1d099722d27333 (diff)
downloadlibvncserver-0a4f1bada4f6e62e1cb4ffd6c34e6c8313c39aef.zip
libvncserver-0a4f1bada4f6e62e1cb4ffd6c34e6c8313c39aef.tar.gz
libvncclient: add a non-forking listen function.
Forking the whole process from deep within a library call does not really work at all with apps that use multiple threads, i.e. every reasonably modern GUI app. So, provide a non-forking listen function so that the caller can decide if to fork, start a thread, etc. This implementation adds a timeout parameter to be able to call the listen function multiple times so that it's possible to do sth. else in between, e.g. abort listening. Signed-off-by: Christian Beier <dontmind@freeshell.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Diffstat (limited to 'libvncclient/vncviewer.c')
-rw-r--r--libvncclient/vncviewer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libvncclient/vncviewer.c b/libvncclient/vncviewer.c
index 7e678fb..f29bd5f 100644
--- a/libvncclient/vncviewer.c
+++ b/libvncclient/vncviewer.c
@@ -43,6 +43,7 @@ static void DummyRect(rfbClient* client, int x, int y, int w, int h) {
static char* NoPassword(rfbClient* client) {
return strdup("");
}
+#define close closesocket
#else
#include <stdio.h>
#include <termios.h>
@@ -247,6 +248,9 @@ rfbBool rfbInitClient(rfbClient* client,int* argc,char** argv) {
if (strcmp(argv[i], "-listen") == 0) {
listenForIncomingConnections(client);
break;
+ } else if (strcmp(argv[i], "-listennofork") == 0) {
+ listenForIncomingConnectionsNoFork(client, -1);
+ break;
} else if (strcmp(argv[i], "-play") == 0) {
client->serverPort = -1;
j++;
OpenPOWER on IntegriCloud