diff --git a/mongoose.c b/mongoose.c index bf2b940563c79cfa1fabef13e4b5b1722781bb20..b59909a95cc2dc9b5ce96a18bbbc8f3b92f362bb 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3957,6 +3957,8 @@ static void handle_lsp_request(struct connection *conn, const char *path, } else { // We're not sending HTTP headers here, Lua page must do it. prepare_lua_environment(&conn->mg_conn, L); + conn->mg_conn.connection_param = L; + call_user(conn, MG_LUA); lua_pushcclosure(L, &lua_error_handler, 0); lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS); lsp(conn, p, (int) st->st_size, L); diff --git a/mongoose.h b/mongoose.h index 734147557846d5200d26d31d2f14d95c20a33a23..afde089daad03bc3f1272cee6d18e3aae701b2cc 100644 --- a/mongoose.h +++ b/mongoose.h @@ -66,6 +66,7 @@ enum mg_event { MG_REQUEST, // If callback returns MG_FALSE, Mongoose continues with req MG_REPLY, // If callback returns MG_FALSE, Mongoose closes connection MG_CLOSE, // Connection is closed + MG_LUA, // Called before LSP page invoked MG_HTTP_ERROR // If callback returns MG_FALSE, Mongoose continues with err }; typedef int (*mg_handler_t)(struct mg_connection *, enum mg_event);