diff options
author | Christian Beier <dontmind@freeshell.org> | 2009-10-26 22:24:21 +0100 |
---|---|---|
committer | Johannes Schindelin <johannes.schindelin@gmx.de> | 2009-10-30 18:29:05 +0100 |
commit | 0a4f1bada4f6e62e1cb4ffd6c34e6c8313c39aef (patch) | |
tree | d881e3baa675fa505fc449b955358d72dfee2d71 /libvncclient/vncviewer.c | |
parent | 3b608cd39b0f335658dc56525d1d099722d27333 (diff) | |
download | libvncserver-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.c | 4 |
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++; |