Make websocketpp work better with newer compilers
Change-Id: Idf3c4ae8d447f32bafffe58280898e61224d03d4
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/WORKSPACE b/WORKSPACE
index 3ed0f2b..0fd8cbd 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1192,6 +1192,8 @@
http_archive(
name = "com_github_zaphoyd_websocketpp",
build_file = "//third_party/websocketpp:websocketpp.BUILD",
+ patch_args = ["-p1"],
+ patches = ["//third_party/websocketpp:websocketpp.patch"],
sha256 = "6ce889d85ecdc2d8fa07408d6787e7352510750daa66b5ad44aacb47bea76755",
strip_prefix = "websocketpp-0.8.2",
url = "https://github.com/zaphoyd/websocketpp/archive/refs/tags/0.8.2.tar.gz",
diff --git a/third_party/websocketpp/websocketpp.patch b/third_party/websocketpp/websocketpp.patch
new file mode 100644
index 0000000..6c2292b
--- /dev/null
+++ b/third_party/websocketpp/websocketpp.patch
@@ -0,0 +1,236 @@
+diff --git a/websocketpp/endpoint.hpp b/websocketpp/endpoint.hpp
+index c124b1d..177bda6 100644
+--- a/websocketpp/endpoint.hpp
++++ b/websocketpp/endpoint.hpp
+@@ -109,26 +109,26 @@ public:
+
+
+ /// Destructor
+- ~endpoint<connection,config>() {}
++ ~endpoint() {}
+
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+ // no copy constructor because endpoints are not copyable
+ endpoint(endpoint &) = delete;
+-
++
+ // no copy assignment operator because endpoints are not copyable
+ endpoint & operator=(endpoint const &) = delete;
+ #endif // _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+
+ #ifdef _WEBSOCKETPP_MOVE_SEMANTICS_
+ /// Move constructor
+- endpoint(endpoint && o)
++ endpoint(endpoint && o)
+ : config::transport_type(std::move(o))
+ , config::endpoint_base(std::move(o))
+ , m_alog(std::move(o.m_alog))
+ , m_elog(std::move(o.m_elog))
+ , m_user_agent(std::move(o.m_user_agent))
+ , m_open_handler(std::move(o.m_open_handler))
+-
++
+ , m_close_handler(std::move(o.m_close_handler))
+ , m_fail_handler(std::move(o.m_fail_handler))
+ , m_ping_handler(std::move(o.m_ping_handler))
+@@ -146,7 +146,7 @@ public:
+ , m_max_http_body_size(o.m_max_http_body_size)
+
+ , m_rng(std::move(o.m_rng))
+- , m_is_server(o.m_is_server)
++ , m_is_server(o.m_is_server)
+ {}
+
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+@@ -403,9 +403,9 @@ public:
+
+ /// Get default maximum message size
+ /**
+- * Get the default maximum message size that will be used for new
++ * Get the default maximum message size that will be used for new
+ * connections created by this endpoint. The maximum message size determines
+- * the point at which the connection will fail a connection with the
++ * the point at which the connection will fail a connection with the
+ * message_too_big protocol error.
+ *
+ * The default is set by the max_message_size value from the template config
+@@ -415,10 +415,10 @@ public:
+ size_t get_max_message_size() const {
+ return m_max_message_size;
+ }
+-
++
+ /// Set default maximum message size
+ /**
+- * Set the default maximum message size that will be used for new
++ * Set the default maximum message size that will be used for new
+ * connections created by this endpoint. Maximum message size determines the
+ * point at which the connection will fail a connection with the
+ * message_too_big protocol error.
+@@ -449,7 +449,7 @@ public:
+ size_t get_max_http_body_size() const {
+ return m_max_http_body_size;
+ }
+-
++
+ /// Set maximum HTTP message body size
+ /**
+ * Set maximum HTTP message body size. Maximum message body size determines
+@@ -484,32 +484,32 @@ public:
+
+ /// Pause reading of new data (exception free)
+ /**
+- * Signals to the connection to halt reading of new data. While reading is
++ * Signals to the connection to halt reading of new data. While reading is
+ * paused, the connection will stop reading from its associated socket. In
+ * turn this will result in TCP based flow control kicking in and slowing
+ * data flow from the remote endpoint.
+ *
+- * This is useful for applications that push new requests to a queue to be
++ * This is useful for applications that push new requests to a queue to be
+ * processed by another thread and need a way to signal when their request
+ * queue is full without blocking the network processing thread.
+ *
+ * Use `resume_reading()` to resume.
+ *
+ * If supported by the transport this is done asynchronously. As such
+- * reading may not stop until the current read operation completes.
++ * reading may not stop until the current read operation completes.
+ * Typically you can expect to receive no more bytes after initiating a read
+ * pause than the size of the read buffer.
+ *
+ * If reading is paused for this connection already nothing is changed.
+ */
+ void pause_reading(connection_hdl hdl, lib::error_code & ec);
+-
++
+ /// Pause reading of new data
+ void pause_reading(connection_hdl hdl);
+
+ /// Resume reading of new data (exception free)
+ /**
+- * Signals to the connection to resume reading of new data after it was
++ * Signals to the connection to resume reading of new data after it was
+ * paused by `pause_reading()`.
+ *
+ * If reading is not paused for this connection already nothing is changed.
+@@ -533,7 +533,7 @@ public:
+ * @param ec A status code, zero on success, non-zero otherwise
+ */
+ void send_http_response(connection_hdl hdl, lib::error_code & ec);
+-
++
+ /// Send deferred HTTP Response (exception free)
+ /**
+ * Sends an http response to an HTTP connection that was deferred. This will
+diff --git a/websocketpp/logger/basic.hpp b/websocketpp/logger/basic.hpp
+index 8451413..7dd8684 100644
+--- a/websocketpp/logger/basic.hpp
++++ b/websocketpp/logger/basic.hpp
+@@ -58,46 +58,46 @@ namespace log {
+ template <typename concurrency, typename names>
+ class basic {
+ public:
+- basic<concurrency,names>(channel_type_hint::value h =
++ basic(channel_type_hint::value h =
+ channel_type_hint::access)
+ : m_static_channels(0xffffffff)
+ , m_dynamic_channels(0)
+ , m_out(h == channel_type_hint::error ? &std::cerr : &std::cout) {}
+
+- basic<concurrency,names>(std::ostream * out)
++ basic(std::ostream * out)
+ : m_static_channels(0xffffffff)
+ , m_dynamic_channels(0)
+ , m_out(out) {}
+
+- basic<concurrency,names>(level c, channel_type_hint::value h =
++ basic(level c, channel_type_hint::value h =
+ channel_type_hint::access)
+ : m_static_channels(c)
+ , m_dynamic_channels(0)
+ , m_out(h == channel_type_hint::error ? &std::cerr : &std::cout) {}
+
+- basic<concurrency,names>(level c, std::ostream * out)
++ basic(level c, std::ostream * out)
+ : m_static_channels(c)
+ , m_dynamic_channels(0)
+ , m_out(out) {}
+
+ /// Destructor
+- ~basic<concurrency,names>() {}
++ ~basic() {}
+
+ /// Copy constructor
+- basic<concurrency,names>(basic<concurrency,names> const & other)
++ basic(basic<concurrency,names> const & other)
+ : m_static_channels(other.m_static_channels)
+ , m_dynamic_channels(other.m_dynamic_channels)
+ , m_out(other.m_out)
+ {}
+-
++
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+ // no copy assignment operator because of const member variables
+- basic<concurrency,names> & operator=(basic<concurrency,names> const &) = delete;
++ basic & operator=(basic<concurrency,names> const &) = delete;
+ #endif // _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+
+ #ifdef _WEBSOCKETPP_MOVE_SEMANTICS_
+ /// Move constructor
+- basic<concurrency,names>(basic<concurrency,names> && other)
++ basic(basic<concurrency,names> && other)
+ : m_static_channels(other.m_static_channels)
+ , m_dynamic_channels(other.m_dynamic_channels)
+ , m_out(other.m_out)
+@@ -105,7 +105,7 @@ public:
+
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+ // no move assignment operator because of const member variables
+- basic<concurrency,names> & operator=(basic<concurrency,names> &&) = delete;
++ basic & operator=(basic<concurrency,names> &&) = delete;
+ #endif // _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+
+ #endif // _WEBSOCKETPP_MOVE_SEMANTICS_
+diff --git a/websocketpp/roles/server_endpoint.hpp b/websocketpp/roles/server_endpoint.hpp
+index 9cc652f..a96471b 100644
+--- a/websocketpp/roles/server_endpoint.hpp
++++ b/websocketpp/roles/server_endpoint.hpp
+@@ -72,23 +72,23 @@ public:
+ }
+
+ /// Destructor
+- ~server<config>() {}
++ ~server() {}
+
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+ // no copy constructor because endpoints are not copyable
+- server<config>(server<config> &) = delete;
++ server(server<config> &) = delete;
+
+ // no copy assignment operator because endpoints are not copyable
+- server<config> & operator=(server<config> const &) = delete;
++ server & operator=(server<config> const &) = delete;
+ #endif // _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+
+ #ifdef _WEBSOCKETPP_MOVE_SEMANTICS_
+ /// Move constructor
+- server<config>(server<config> && o) : endpoint<connection<config>,config>(std::move(o)) {}
++ server(server<config> && o) : endpoint<connection<config>,config>(std::move(o)) {}
+
+ #ifdef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+ // no move assignment operator because of const member variables
+- server<config> & operator=(server<config> &&) = delete;
++ server & operator=(server<config> &&) = delete;
+ #endif // _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
+
+ #endif // _WEBSOCKETPP_MOVE_SEMANTICS_
+@@ -123,7 +123,7 @@ public:
+ ec = error::make_error_code(error::async_accept_not_listening);
+ return;
+ }
+-
++
+ ec = lib::error_code();
+ connection_ptr con = get_connection();
+