Ticket #429: Detect listenForIncomingConnectionsNoFork() function, conditionally compile listen support.
This commit is contained in:
parent
9e1ebb8362
commit
3a28534232
25
configure.ac
25
configure.ac
@ -230,6 +230,31 @@ then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Listening support within libVNCServer
|
||||||
|
#
|
||||||
|
|
||||||
|
if test "x${have_libvncserver}" = "xyes"
|
||||||
|
then
|
||||||
|
|
||||||
|
have_vnc_listen=yes
|
||||||
|
AC_CHECK_DECL([listenForIncomingConnectionsNoFork],
|
||||||
|
[], [have_vnc_listen=no],
|
||||||
|
[[#include <rfb/rfbclient.h>]])
|
||||||
|
|
||||||
|
if test "x${have_vnc_listen}" = "xno"
|
||||||
|
then
|
||||||
|
AC_MSG_WARN([
|
||||||
|
--------------------------------------------
|
||||||
|
No listening support found in libvncclient.
|
||||||
|
Support for listen-mode connections will not be built.
|
||||||
|
--------------------------------------------])
|
||||||
|
else
|
||||||
|
AC_DEFINE([ENABLE_VNC_LISTEN])
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeRDP
|
# FreeRDP
|
||||||
#
|
#
|
||||||
|
@ -77,8 +77,11 @@ const char* GUAC_CLIENT_ARGS[] = {
|
|||||||
"audio-servername",
|
"audio-servername",
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_VNC_LISTEN
|
||||||
"reverse-connect",
|
"reverse-connect",
|
||||||
"listen-timeout",
|
"listen-timeout",
|
||||||
|
#endif
|
||||||
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -104,8 +107,11 @@ enum VNC_ARGS_IDX {
|
|||||||
IDX_AUDIO_SERVERNAME,
|
IDX_AUDIO_SERVERNAME,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_VNC_LISTEN
|
||||||
IDX_REVERSE_CONNECT,
|
IDX_REVERSE_CONNECT,
|
||||||
IDX_LISTEN_TIMEOUT,
|
IDX_LISTEN_TIMEOUT,
|
||||||
|
#endif
|
||||||
|
|
||||||
VNC_ARGS_COUNT
|
VNC_ARGS_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -169,6 +175,7 @@ static rfbClient* __guac_vnc_get_client(guac_client* client) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_VNC_LISTEN
|
||||||
/* If reverse connection enabled, start listening */
|
/* If reverse connection enabled, start listening */
|
||||||
if (guac_client_data->reverse_connect) {
|
if (guac_client_data->reverse_connect) {
|
||||||
|
|
||||||
@ -182,6 +189,7 @@ static rfbClient* __guac_vnc_get_client(guac_client* client) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set encodings if provided */
|
/* Set encodings if provided */
|
||||||
if (guac_client_data->encodings)
|
if (guac_client_data->encodings)
|
||||||
@ -264,6 +272,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
|||||||
else
|
else
|
||||||
retries_remaining = 0;
|
retries_remaining = 0;
|
||||||
|
|
||||||
|
#ifdef ENABLE_VNC_LISTEN
|
||||||
/* Set reverse-connection flag */
|
/* Set reverse-connection flag */
|
||||||
guac_client_data->reverse_connect =
|
guac_client_data->reverse_connect =
|
||||||
(strcmp(argv[IDX_REVERSE_CONNECT], "true") == 0);
|
(strcmp(argv[IDX_REVERSE_CONNECT], "true") == 0);
|
||||||
@ -273,6 +282,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
|||||||
guac_client_data->listen_timeout = atoi(argv[IDX_LISTEN_TIMEOUT]);
|
guac_client_data->listen_timeout = atoi(argv[IDX_LISTEN_TIMEOUT]);
|
||||||
else
|
else
|
||||||
guac_client_data->listen_timeout = 5000;
|
guac_client_data->listen_timeout = 5000;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Ensure connection is kept alive during lengthy connects */
|
/* Ensure connection is kept alive during lengthy connects */
|
||||||
guac_socket_require_keep_alive(client->socket);
|
guac_socket_require_keep_alive(client->socket);
|
||||||
|
@ -134,6 +134,7 @@ typedef struct vnc_guac_client_data {
|
|||||||
*/
|
*/
|
||||||
int dest_port;
|
int dest_port;
|
||||||
|
|
||||||
|
#ifdef ENABLE_VNC_LISTEN
|
||||||
/**
|
/**
|
||||||
* Whether not actually connecting to a VNC server, but rather listening
|
* Whether not actually connecting to a VNC server, but rather listening
|
||||||
* for a connection from the VNC server (reverse connection).
|
* for a connection from the VNC server (reverse connection).
|
||||||
@ -145,6 +146,7 @@ typedef struct vnc_guac_client_data {
|
|||||||
* milliseconds.
|
* milliseconds.
|
||||||
*/
|
*/
|
||||||
int listen_timeout;
|
int listen_timeout;
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the cursor should be rendered on the server (remote) or on the
|
* Whether the cursor should be rendered on the server (remote) or on the
|
||||||
|
Loading…
Reference in New Issue
Block a user