From 6f832f82fafea2c831f154869888041cd0a6a3e4 Mon Sep 17 00:00:00 2001 From: The-EDev Date: Tue, 21 Jun 2022 02:23:51 +0300 Subject: [PATCH] added message string to websocket error handler --- docs/guides/websockets.md | 2 +- include/crow/routing.h | 2 +- include/crow/websocket.h | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/guides/websockets.md b/docs/guides/websockets.md index 454cee7f9..4782c6322 100644 --- a/docs/guides/websockets.md +++ b/docs/guides/websockets.md @@ -8,7 +8,7 @@ A websocket route differs from a normal route quite a bit. It uses A slightly al - `#!cpp onaccept([&](const crow::request& req, void** userdata){handler code goes here})` - `#!cpp onopen([&](crow::websocket::connection& conn){handler code goes here})` - `#!cpp onmessage([&](crow::websocket::connection& conn, const std::string message, bool is_binary){handler code goes here})` -- `#!cpp onerror([&](crow::websocket::connection& conn){handler code goes here})` +- `#!cpp onerror([&](crow::websocket::connection& conn, const std::string error_message){handler code goes here})` - `#!cpp onclose([&](crow::websocket::connection& conn, const std::string reason){handler code goes here})` !!! note diff --git a/include/crow/routing.h b/include/crow/routing.h index bd305f185..e8465634d 100644 --- a/include/crow/routing.h +++ b/include/crow/routing.h @@ -508,7 +508,7 @@ namespace crow std::function open_handler_; std::function message_handler_; std::function close_handler_; - std::function error_handler_; + std::function error_handler_; std::function accept_handler_; uint64_t max_payload_; bool max_payload_override_ = false; diff --git a/include/crow/websocket.h b/include/crow/websocket.h index 937290777..f961055a4 100644 --- a/include/crow/websocket.h +++ b/include/crow/websocket.h @@ -75,7 +75,7 @@ namespace crow std::function open_handler, std::function message_handler, std::function close_handler, - std::function error_handler, + std::function error_handler, std::function accept_handler): adaptor_(std::move(adaptor)), handler_(handler), @@ -315,7 +315,7 @@ namespace crow adaptor_.shutdown_readwrite(); adaptor_.close(); if (error_handler_) - error_handler_(*this); + error_handler_(*this, "Client connection not masked."); check_destroy(); #endif } @@ -341,7 +341,7 @@ namespace crow adaptor_.shutdown_readwrite(); adaptor_.close(); if (error_handler_) - error_handler_(*this); + error_handler_(*this, ec.message()); check_destroy(); } }); @@ -379,7 +379,7 @@ namespace crow adaptor_.shutdown_readwrite(); adaptor_.close(); if (error_handler_) - error_handler_(*this); + error_handler_(*this, ec.message()); check_destroy(); } }); @@ -414,7 +414,7 @@ namespace crow adaptor_.shutdown_readwrite(); adaptor_.close(); if (error_handler_) - error_handler_(*this); + error_handler_(*this, ec.message()); check_destroy(); } }); @@ -426,7 +426,7 @@ namespace crow close_connection_ = true; adaptor_.close(); if (error_handler_) - error_handler_(*this); + error_handler_(*this, "Message length exceeds maximum paylaod."); check_destroy(); } else if (has_mask_) @@ -455,7 +455,7 @@ namespace crow { close_connection_ = true; if (error_handler_) - error_handler_(*this); + error_handler_(*this, ec.message()); adaptor_.shutdown_readwrite(); adaptor_.close(); check_destroy(); @@ -497,7 +497,7 @@ namespace crow { close_connection_ = true; if (error_handler_) - error_handler_(*this); + error_handler_(*this, ec.message()); adaptor_.shutdown_readwrite(); adaptor_.close(); check_destroy(); @@ -685,7 +685,7 @@ namespace crow std::function open_handler_; std::function message_handler_; std::function close_handler_; - std::function error_handler_; + std::function error_handler_; std::function accept_handler_; }; } // namespace websocket