diff --git a/CMakeLists.txt b/CMakeLists.txt index eeadd2b..9931b9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,17 +142,6 @@ find_package(OpenSSL REQUIRED) set( CMAKE_FIND_LIBRARY_SUFFIXES ${ORIGINAL_LIB_SUFFIXES} ) -# We are now building in support for deflate compression into our websockets layer by default, -# which requires zlib. Aside from that, all of fc compiles without zlib, so this could be -# made optional without much effort -# (important exception, apple: as of 10.10 yosemite, the OpenSSL static libraries shipped with -# os x have a dependency on zlib) -# On a side note, fc's fc::zlib_compress() function uses a separate implementation of zlib -# from the miniz library. If we're comfortable requiring an external zlib, we can -# reimplement fc::zlib_compress() to call the real zlib, and remove miniz.c from our -# repository. -find_package( ZLIB REQUIRED ) - option( UNITY_BUILD OFF ) set( fc_sources @@ -484,6 +473,14 @@ if(WIN32) endif(WIN32) +IF(APPLE) + # As of 10.10 yosemite, the OpenSSL static libraries shipped with os x have a dependency + # on zlib, so any time you link in openssl you also need to link zlib. . We really want to detect whether openssl was configured with the --no-zlib + # option or not when it was built, but that's difficult to do in practice, so we + # just always try to link it in on mac. + find_package( ZLIB REQUIRED ) +ENDIF(APPLE) + SET(OPENSSL_CONF_TARGET ) IF(DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY) SET (OPENSSL_CONF_TARGET ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) diff --git a/src/network/http/websocket.cpp b/src/network/http/websocket.cpp index c75f0e8..67745d9 100644 --- a/src/network/http/websocket.cpp +++ b/src/network/http/websocket.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include @@ -62,12 +61,47 @@ namespace fc { namespace http { transport_type; static const long timeout_open_handshake = 0; + }; + struct asio_tls_with_stub_log : public websocketpp::config::asio_tls { - /// permessage_compress extension - struct permessage_deflate_config {}; + typedef asio_with_stub_log type; + typedef asio_tls base; - typedef websocketpp::extensions::permessage_deflate::enabled - permessage_deflate_type; + typedef base::concurrency_type concurrency_type; + + typedef base::request_type request_type; + typedef base::response_type response_type; + + typedef base::message_type message_type; + typedef base::con_msg_manager_type con_msg_manager_type; + typedef base::endpoint_msg_manager_type endpoint_msg_manager_type; + + /// Custom Logging policies + /*typedef websocketpp::log::syslog elog_type; + typedef websocketpp::log::syslog alog_type; + */ + //typedef base::alog_type alog_type; + //typedef base::elog_type elog_type; + typedef websocketpp::log::stub elog_type; + typedef websocketpp::log::stub alog_type; + + typedef base::rng_type rng_type; + + struct transport_config : public base::transport_config { + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; + typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; + }; + + typedef websocketpp::transport::asio::endpoint + transport_type; + + static const long timeout_open_handshake = 0; }; struct asio_tls_stub_log : public websocketpp::config::asio_tls { typedef asio_tls_stub_log type; @@ -90,22 +124,16 @@ namespace fc { namespace http { typedef base::rng_type rng_type; struct transport_config : public base::transport_config { - typedef type::concurrency_type concurrency_type; - typedef type::alog_type alog_type; - typedef type::elog_type elog_type; - typedef type::request_type request_type; - typedef type::response_type response_type; - typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; + typedef type::concurrency_type concurrency_type; + typedef type::alog_type alog_type; + typedef type::elog_type elog_type; + typedef type::request_type request_type; + typedef type::response_type response_type; + typedef websocketpp::transport::asio::tls_socket::endpoint socket_type; }; typedef websocketpp::transport::asio::endpoint transport_type; - - /// permessage_compress extension - struct permessage_deflate_config {}; - - typedef websocketpp::extensions::permessage_deflate::enabled - permessage_deflate_type; };