Add redbean Lua GetStatus function

This is useful to get status after it's changed/set by Redbean,
for example if 505 or 508 is set when ServeRedirect is called.
This commit is contained in:
Paul Kulchenko 2021-10-31 16:29:15 -07:00
parent d7ff346b52
commit 93d2cf3d11
2 changed files with 14 additions and 0 deletions

View file

@ -709,6 +709,10 @@ FUNCTIONS
GetScheme() → str
Returns scheme from Request-URL, if any.
GetStatus() → int
Returns current status (as set by an earlier SetStatus call) or
`nil` if the status hasn't been set yet.
GetTime() → seconds:number
Returns current time as a UNIX timestamp with 0.0001s precision.

View file

@ -3158,6 +3158,15 @@ static int LuaSetStatus(lua_State *L) {
return LuaRespond(L, SetStatus);
}
static int LuaGetStatus(lua_State *L) {
OnlyCallDuringRequest(L, "GetStatus");
if (!luaheaderp)
lua_pushnil(L);
else
lua_pushinteger(L, statuscode);
return 1;
}
static int LuaServeError(lua_State *L) {
return LuaRespond(L, ServeError);
}
@ -5345,6 +5354,7 @@ static const luaL_Reg kLuaFuncs[] = {
{"GetRemoteAddr", LuaGetRemoteAddr}, //
{"GetScheme", LuaGetScheme}, //
{"GetServerAddr", LuaGetServerAddr}, //
{"GetStatus", LuaGetStatus}, //
{"GetTime", LuaGetTime}, //
{"GetUrl", LuaGetUrl}, //
{"GetUser", LuaGetUser}, //