From 89f0e62679a78064c28b2ad322d371ea4afc1682 Mon Sep 17 00:00:00 2001 From: dmiller Date: Fri, 11 Jul 2025 19:47:06 +0000 Subject: [PATCH] Handle immediate write errors in NSE. --- nse_nsock.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nse_nsock.cc b/nse_nsock.cc index 25131bd64..4108b1c69 100644 --- a/nse_nsock.cc +++ b/nse_nsock.cc @@ -351,6 +351,7 @@ static void status (lua_State *L, enum nse_status status) } } +/* callback for connect and write events */ static void callback (nsock_pool nsp, nsock_event nse, void *ud) { nse_nsock_udata *nu = (nse_nsock_udata *) ud; @@ -598,6 +599,10 @@ static int l_send (lua_State *L) const char *string = luaL_checklstring(L, 2, &size); trace(nu->nsiod, hexify((unsigned char *) string, size).c_str(), TO); nsock_write(nsp, nu->nsiod, callback, nu->timeout, nu, string, size); + if (nu->action == NU_ACTION_IMMEDIATE) { + // Immediate error + return nseU_safeerror(L, nse_status2str(NSE_STATUS_ERROR)); + } return yield(L, nu, "SEND", TO, 0, NULL); }