From ddae567f167f0606a60595001039983286347256 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Sun, 19 Jan 2020 14:39:29 +0000 Subject: [PATCH 1/2] Problem: ZMQ_WSS socket options not defined in src/zmq_draft.h Solution: add them --- src/zmq_draft.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/zmq_draft.h b/src/zmq_draft.h index fbe33427..7ebcb617 100644 --- a/src/zmq_draft.h +++ b/src/zmq_draft.h @@ -57,6 +57,11 @@ #define ZMQ_SOCKS_PASSWORD 100 #define ZMQ_IN_BATCH_SIZE 101 #define ZMQ_OUT_BATCH_SIZE 102 +#define ZMQ_WSS_KEY_PEM 103 +#define ZMQ_WSS_CERT_PEM 104 +#define ZMQ_WSS_TRUST_PEM 105 +#define ZMQ_WSS_HOSTNAME 106 +#define ZMQ_WSS_TRUST_SYSTEM 107 #define ZMQ_ONLY_FIRST_SUBSCRIBE 108 From 1f00a5bf5937d3469e9ff89179eab7d69915eeec Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Sun, 19 Jan 2020 16:36:29 +0000 Subject: [PATCH 2/2] Problem: WS build option is independent of DRAFT Solution: make the default depend on the value of the DRAFT build flag --- CMakeLists.txt | 10 +++++++--- NEWS | 2 +- configure.ac | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e42de5fb..92546b7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,11 +98,15 @@ if(APPLE) option(ZMQ_BUILD_FRAMEWORK "Build as OS X framework" OFF) endif() -# Disable webSocket transport -option(DISABLE_WS "Disable WebSocket transport" OFF) +# Enable webSocket transport +if (ENABLE_DRAFTS) + option(ENABLE_WS "Enable WebSocket transport" ON) +else() + option(ENABLE_WS "Enable WebSocket transport" OFF) +endif() option(WITH_NSS "Use NSS instead of builtin sha1" OFF) -if (NOT DISABLE_WS) +if (ENABLE_WS) list(APPEND sources ${CMAKE_CURRENT_SOURCE_DIR}/src/ws_address.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/wss_address.cpp diff --git a/NEWS b/NEWS index 960a9408..c4673acb 100644 --- a/NEWS +++ b/NEWS @@ -27,7 +27,7 @@ of WebSockets (and secure WebSockets via TLS) via the ZWS 2.0 protocol. WSS requires the GnuTLS library for TLS support. ZMQ_WSS_ specific socket options were added to support TLS. - WebSockets support can be disabled at build time with --disable-ws. + WebSockets support is disabled by default if DRAFT APIs are disabled. * Fixed #3566 - malformed CURVE message can cause memory leak diff --git a/configure.ac b/configure.ac index 8ac65888..aa532a77 100644 --- a/configure.ac +++ b/configure.ac @@ -565,7 +565,9 @@ AM_CONDITIONAL(USE_WEPOLL, test "$poller" = "wepoll") ws_crypto_library="" AC_ARG_ENABLE([ws], - [AS_HELP_STRING([--disable-ws], [Disable WebSocket transport [default=no]])]) + [AS_HELP_STRING([--enable-ws], [Enable WebSocket transport [default=state of DRAFT]])], + [enable_ws=$enableval], + [enable_ws=$enable_drafts]) AC_ARG_WITH([nss], [AS_HELP_STRING([--with-nss], [use nss instead of built-in sha1 [default=no]])])