diff --git a/src/options.cpp b/src/options.cpp index 19a800e1..39d92d1d 100644 --- a/src/options.cpp +++ b/src/options.cpp @@ -786,6 +786,7 @@ int zmq::options_t::setsockopt (int option_, } break; +#ifdef ZMQ_HAVE_WSS case ZMQ_WSS_KEY_PEM: // TODO: check if valid certificate wss_key_pem = std::string ((char *) optval_, optvallen_); @@ -804,7 +805,7 @@ int zmq::options_t::setsockopt (int option_, case ZMQ_WSS_TRUST_SYSTEM: return do_setsockopt_int_as_bool_strict (optval_, optvallen_, &wss_trust_system); - +#endif #endif default: diff --git a/src/session_base.cpp b/src/session_base.cpp index 90d540f5..d6200b15 100644 --- a/src/session_base.cpp +++ b/src/session_base.cpp @@ -114,15 +114,20 @@ zmq::session_base_t::session_base_t (class io_thread_t *io_thread_, _socket (socket_), _io_thread (io_thread_), _has_linger_timer (false), - _addr (addr_), + _addr (addr_) +#ifdef ZMQ_HAVE_WSS + , _wss_hostname (NULL) +#endif { +#ifdef ZMQ_HAVE_WSS if (options_.wss_hostname.length () > 0) { _wss_hostname = static_cast (malloc (options_.wss_hostname.length () + 1)); assert (_wss_hostname); strcpy (_wss_hostname, options_.wss_hostname.c_str ()); } +#endif } const zmq::endpoint_uri_pair_t &zmq::session_base_t::get_endpoint () const @@ -145,8 +150,10 @@ zmq::session_base_t::~session_base_t () if (_engine) _engine->terminate (); +#ifdef ZMQ_HAVE_WSS if (_wss_hostname) free (_wss_hostname); +#endif LIBZMQ_DELETE (_addr); } diff --git a/src/session_base.hpp b/src/session_base.hpp index f4bb88f3..ed2772c1 100644 --- a/src/session_base.hpp +++ b/src/session_base.hpp @@ -192,9 +192,11 @@ class session_base_t : public own_t, public io_object_t, public i_pipe_events // Protocol and address to use when connecting. address_t *_addr; +#ifdef ZMQ_HAVE_WSS // TLS handshake, we need to take a copy when the session is created, // in order to maintain the value at the creation time char *_wss_hostname; +#endif ZMQ_NON_COPYABLE_NOR_MOVABLE (session_base_t) };