From ccd584f2da1e687ea66d47824a791162458e737b Mon Sep 17 00:00:00 2001 From: Gunnar Mills Date: Tue, 16 Nov 2021 11:36:33 -0600 Subject: Revert "Remove AsyncResp from openHandler" This reverts commit 0f3d3a01aed4040ef73a977a958ecdf4f68111f6. Seeing bumps fail. Change-Id: Ida7b1bae48abbed2e00a5259e8f94b64168d4788 Signed-off-by: Gunnar Mills --- http/routing.hpp | 4 +++- http/websocket.hpp | 11 ++++++++--- include/dbus_monitor.hpp | 3 ++- include/kvm_websocket.hpp | 3 ++- include/nbd_proxy.hpp | 16 +++++++++------- include/obmc_console.hpp | 3 ++- include/vm_websocket.hpp | 3 ++- 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/http/routing.hpp b/http/routing.hpp index abb1d43743..0a0dc74752 100644 --- a/http/routing.hpp +++ b/http/routing.hpp @@ -386,7 +386,9 @@ class WebSocketRule : public BaseRule } protected: - std::function openHandler; + std::function)> + openHandler; std::function messageHandler; std::function diff --git a/http/websocket.hpp b/http/websocket.hpp index 06f35d1fbc..324ffd5b8d 100644 --- a/http/websocket.hpp +++ b/http/websocket.hpp @@ -65,7 +65,8 @@ class ConnectionImpl : public Connection public: ConnectionImpl( const crow::Request& reqIn, Adaptor adaptorIn, - std::function openHandler, + std::function)> + openHandler, std::function messageHandler, std::function closeHandler, @@ -192,11 +193,14 @@ class ConnectionImpl : public Connection { BMCWEB_LOG_DEBUG << "Websocket accepted connection"; + auto asyncResp = std::make_shared(); + + asyncResp->res.result(boost::beast::http::status::ok); doRead(); if (openHandler) { - openHandler(*this); + openHandler(*this, asyncResp); } } @@ -276,7 +280,8 @@ class ConnectionImpl : public Connection std::vector outBuffer; bool doingWrite = false; - std::function openHandler; + std::function)> + openHandler; std::function messageHandler; std::function closeHandler; std::function errorHandler; diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp index 60041941f4..a6c86c61ef 100644 --- a/include/dbus_monitor.hpp +++ b/include/dbus_monitor.hpp @@ -107,7 +107,8 @@ inline void requestRoutes(App& app) BMCWEB_ROUTE(app, "/subscribe") .privileges({{"Login"}}) .websocket() - .onopen([&](crow::websocket::Connection& conn) { + .onopen([&](crow::websocket::Connection& conn, + const std::shared_ptr&) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; sessions[&conn] = DbusWebsocketSession(); }) diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp index 46443b983f..a9dc8eaf0e 100644 --- a/include/kvm_websocket.hpp +++ b/include/kvm_websocket.hpp @@ -161,7 +161,8 @@ inline void requestRoutes(App& app) BMCWEB_ROUTE(app, "/kvm/0") .privileges({{"ConfigureComponents", "ConfigureManager"}}) .websocket() - .onopen([](crow::websocket::Connection& conn) { + .onopen([](crow::websocket::Connection& conn, + const std::shared_ptr&) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; if (sessions.size() == maxSessions) diff --git a/include/nbd_proxy.hpp b/include/nbd_proxy.hpp index 85fb2d467e..7b90e90378 100644 --- a/include/nbd_proxy.hpp +++ b/include/nbd_proxy.hpp @@ -252,15 +252,17 @@ inline void requestRoutes(App& app) { BMCWEB_ROUTE(app, "/nbd/") .websocket() - .onopen([](crow::websocket::Connection& conn) { + .onopen([](crow::websocket::Connection& conn, + const std::shared_ptr& asyncResp) { BMCWEB_LOG_DEBUG << "nbd-proxy.onopen(" << &conn << ")"; auto getUserInfoHandler = - [&conn](const boost::system::error_code ec, - boost::container::flat_map< - std::string, std::variant>> - userInfo) { + [&conn, asyncResp]( + const boost::system::error_code ec, + boost::container::flat_map< + std::string, std::variant>> + userInfo) { if (ec) { BMCWEB_LOG_ERROR << "GetUserInfo failed..."; @@ -300,7 +302,7 @@ inline void requestRoutes(App& app) return; } - auto openHandler = [&conn]( + auto openHandler = [&conn, asyncResp]( const boost::system::error_code ec, const dbus::utility:: ManagedObjectType& objects) { diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp index dab9521481..478649ac8d 100644 --- a/include/obmc_console.hpp +++ b/include/obmc_console.hpp @@ -119,7 +119,8 @@ inline void requestRoutes(App& app) BMCWEB_ROUTE(app, "/console0") .privileges({{"ConfigureComponents", "ConfigureManager"}}) .websocket() - .onopen([](crow::websocket::Connection& conn) { + .onopen([](crow::websocket::Connection& conn, + const std::shared_ptr&) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; sessions.insert(&conn); diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp index 08de90e0d9..34ef82ef99 100644 --- a/include/vm_websocket.hpp +++ b/include/vm_websocket.hpp @@ -160,7 +160,8 @@ inline void requestRoutes(App& app) BMCWEB_ROUTE(app, "/vm/0/0") .privileges({{"ConfigureComponents", "ConfigureManager"}}) .websocket() - .onopen([](crow::websocket::Connection& conn) { + .onopen([](crow::websocket::Connection& conn, + const std::shared_ptr&) { BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened"; if (session != nullptr) -- cgit v1.2.3