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>
set the port to listen on and really ensure that the
window of the fork()ed instance is closed.
works somewhat: it's now actually possible to listen for an
incoming connection and to close it again, but the second
connection attempt fails with 'XIO: fatal IO error 11
(Resource temporarily unavailable)'. this could relate to the
fact that SDL uses threads internally and we're fork()ing
here...
Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Actually, initSockets() has to be called everywhere we possibly
use sockets the first time.
Also fix return value of initSockets().
Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
When working on a program which searches the display for some image, one
does not want to search again without getting an FB update. Add a
callback to make this possible.
On Windows, the WSA system needs to be initialized to be able to look up
host names.
This patch also changes *addr = 0 to use the constant INADDR_LOOPBACK
instead, which seems to be required on Windows.
SOCKET is redefined in winsock2.h so #undef it where winsock2.h
is included. The changes in rfbproto.c circumvent crosscompiler
errors like 'S_IFMT' undeclared ...', the Makefile.am changes
avoid building linux specific stuff for a win32 host target.
Also added configure option to specify sdl-config.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is a pure functionality fix: according to its manpage, stat()
returns 0 on success. Checking for a return value of zero fixes
incorrect results of IsUnixSocket().
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
There was an unnecessary assignment, and an assignment of a string that
was to be free()ed later, so it has to be strdup()ed.
Both issues spotted by Roman Held.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
When switching windows using the Alt+Tab shortcut, SDLvncviewer would
get the "down" event, but not the "up" event. This patch provides
a workaround.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Instead of having deep indent levels, put the code to handle events into
its own function. That also helps readability.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Using "SDLvncviewer -resizable", you make the window resizable. This
means that you can shrink the window (e.g. when you are trying to access
an x11vnc from your little netbook), or you can enlarge it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>