Add GetResponseBody to redbean to get access to generated response

This commit is contained in:
Paul Kulchenko 2022-07-21 22:18:11 -07:00
parent 6bb8b26d70
commit e7957287da
2 changed files with 12 additions and 0 deletions

View file

@ -1027,6 +1027,10 @@ FUNCTIONS
IsPrivateIp or IsLoopbackIp return true. When multiple addresses IsPrivateIp or IsLoopbackIp return true. When multiple addresses
are present in the header, the last/right-most address is used. are present in the header, the last/right-most address is used.
GetResponseBody() → str
Returns the response message body if present or an empty string.
Also returns an empty string during streaming.
GetClientAddr() → ip:uint32,port:uint16 GetClientAddr() → ip:uint32,port:uint16
Returns client socket ip4 address and port, e.g. 0x01020304,31337 Returns client socket ip4 address and port, e.g. 0x01020304,31337
would represent 1.2.3.4:31337. Please consider using GetRemoteAddr would represent 1.2.3.4:31337. Please consider using GetRemoteAddr

View file

@ -4398,6 +4398,12 @@ static int LuaGetBody(lua_State *L) {
return 1; return 1;
} }
static int LuaGetResponseBody(lua_State *L) {
OnlyCallDuringRequest(L, "GetResponseBody");
lua_pushlstring(L, content, contentlength);
return 1;
}
static int LuaGetHeader(lua_State *L) { static int LuaGetHeader(lua_State *L) {
int h; int h;
const char *key; const char *key;
@ -5054,6 +5060,7 @@ static const char *const kDontAutoComplete[] = {
"GetPayload", // deprecated "GetPayload", // deprecated
"GetPort", // "GetPort", //
"GetRemoteAddr", // "GetRemoteAddr", //
"GetResponseBody", //
"GetScheme", // "GetScheme", //
"GetServerAddr", // "GetServerAddr", //
"GetSslIdentity", // "GetSslIdentity", //
@ -5161,6 +5168,7 @@ static const luaL_Reg kLuaFuncs[] = {
{"GetRandomBytes", LuaGetRandomBytes}, // {"GetRandomBytes", LuaGetRandomBytes}, //
{"GetRedbeanVersion", LuaGetRedbeanVersion}, // {"GetRedbeanVersion", LuaGetRedbeanVersion}, //
{"GetRemoteAddr", LuaGetRemoteAddr}, // {"GetRemoteAddr", LuaGetRemoteAddr}, //
{"GetResponseBody", LuaGetResponseBody}, //
{"GetScheme", LuaGetScheme}, // {"GetScheme", LuaGetScheme}, //
{"GetServerAddr", LuaGetServerAddr}, // {"GetServerAddr", LuaGetServerAddr}, //
{"GetStatus", LuaGetStatus}, // {"GetStatus", LuaGetStatus}, //