GUACAMOLE-623: Use libwebsockets' dummy callback only if defined.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-server/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-server/commit/b48a1b3a Tree: http://git-wip-us.apache.org/repos/asf/guacamole-server/tree/b48a1b3a Diff: http://git-wip-us.apache.org/repos/asf/guacamole-server/diff/b48a1b3a Branch: refs/heads/master Commit: b48a1b3a5d15e6c95fa64222342033eb584dc0a3 Parents: d8618b0 Author: Michael Jumper <mjum...@apache.org> Authored: Wed Sep 26 21:51:07 2018 -0700 Committer: Michael Jumper <mjum...@apache.org> Committed: Wed Sep 26 21:51:07 2018 -0700 ---------------------------------------------------------------------- configure.ac | 8 ++++++++ src/protocols/kubernetes/kubernetes.c | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/b48a1b3a/configure.ac ---------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index bb23f62..672d19e 100644 --- a/configure.ac +++ b/configure.ac @@ -1224,6 +1224,14 @@ then [Whether LCCSCF_USE_SSL is defined])],, [#include <libwebsockets.h>]) + # Older versions of libwebsockets do not define a dummy callback which + # must be invoked after the main event callback is invoked; the main event + # callback must instead manually return zero + AC_CHECK_DECL([lws_callback_http_dummy], + [AC_DEFINE([HAVE_LWS_CALLBACK_HTTP_DUMMY],, + [Whether lws_callback_http_dummy() is defined])],, + [#include <libwebsockets.h>]) + fi AM_CONDITIONAL([ENABLE_WEBSOCKETS], http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/b48a1b3a/src/protocols/kubernetes/kubernetes.c ---------------------------------------------------------------------- diff --git a/src/protocols/kubernetes/kubernetes.c b/src/protocols/kubernetes/kubernetes.c index 9cb0b13..fb38d68 100644 --- a/src/protocols/kubernetes/kubernetes.c +++ b/src/protocols/kubernetes/kubernetes.c @@ -66,8 +66,13 @@ static int guac_kubernetes_lws_callback(struct lws* wsi, guac_client* client = guac_kubernetes_lws_current_client; /* Do not handle any further events if connection is closing */ - if (client->state != GUAC_CLIENT_RUNNING) + if (client->state != GUAC_CLIENT_RUNNING) { +#ifdef HAVE_LWS_CALLBACK_HTTP_DUMMY return lws_callback_http_dummy(wsi, reason, user, in, length); +#else + return 0; +#endif + } switch (reason) { @@ -127,7 +132,11 @@ static int guac_kubernetes_lws_callback(struct lws* wsi, } +#ifdef HAVE_LWS_CALLBACK_HTTP_DUMMY return lws_callback_http_dummy(wsi, reason, user, in, length); +#else + return 0; +#endif }