Added check for Stateview, added socket cancel to finish all connect, send and receive operations immediately

This commit is contained in:
SaltySnail 2025-01-25 21:57:32 +01:00
parent fbce8a946e
commit f738950934
2 changed files with 3 additions and 0 deletions

View File

@ -84,6 +84,7 @@ void TClient::Disconnect(std::string_view Reason) {
if (ec) {
beammp_debugf("Failed to shutdown client socket: {}", ec.message());
}
mSocket.cancel();
mSocket.close(ec);
if (ec) {
beammp_debugf("Failed to close client socket: {}", ec.message());

View File

@ -43,6 +43,8 @@ static sol::protected_function AddTraceback(sol::state_view StateView, sol::prot
static std::optional<sol::function> GetLuaHandler(sol::state_view StateView, const std::string Handler, const std::string EventName);
static std::optional<sol::function> GetLuaHandler(sol::state_view StateView, const std::string Handler, const std::string EventName) {
if (!StateView)
return std::nullopt;
auto Res = StateView.safe_script("return " + Handler, sol::script_pass_on_error);
if (!Res.valid()) {
beammp_errorf("invalid handler for event \"{}\". handler: \"{}\"", EventName, Handler);