Fix broken server startup if curl is disabled (#12046)

This commit is contained in:
sfan5 2022-02-04 20:29:28 +01:00 committed by GitHub
parent 1ee37148a8
commit afb061c374
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 17 deletions

@ -162,20 +162,6 @@ int ModApiHttp::l_http_fetch_async_get(lua_State *L)
return 1; return 1;
} }
int ModApiHttp::l_set_http_api_lua(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
// This is called by builtin to give us a function that will later
// populate the http_api table with additional method(s).
// We need this because access to the HTTP api is security-relevant and
// any mod could just mess with a global variable.
luaL_checktype(L, 1, LUA_TFUNCTION);
lua_rawseti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_HTTP_API_LUA);
return 0;
}
int ModApiHttp::l_request_http_api(lua_State *L) int ModApiHttp::l_request_http_api(lua_State *L)
{ {
NO_MAP_LOCK_REQUIRED; NO_MAP_LOCK_REQUIRED;
@ -215,6 +201,22 @@ int ModApiHttp::l_get_http_api(lua_State *L)
#endif #endif
int ModApiHttp::l_set_http_api_lua(lua_State *L)
{
NO_MAP_LOCK_REQUIRED;
#if USE_CURL
// This is called by builtin to give us a function that will later
// populate the http_api table with additional method(s).
// We need this because access to the HTTP api is security-relevant and
// any mod could just mess with a global variable.
luaL_checktype(L, 1, LUA_TFUNCTION);
lua_rawseti(L, LUA_REGISTRYINDEX, CUSTOM_RIDX_HTTP_API_LUA);
#endif
return 0;
}
void ModApiHttp::Initialize(lua_State *L, int top) void ModApiHttp::Initialize(lua_State *L, int top)
{ {
#if USE_CURL #if USE_CURL
@ -231,6 +233,11 @@ void ModApiHttp::Initialize(lua_State *L, int top)
API_FCT(set_http_api_lua); API_FCT(set_http_api_lua);
} }
#else
// Define this function anyway so builtin can call it without checking
API_FCT(set_http_api_lua);
#endif #endif
} }

@ -41,9 +41,6 @@ private:
// http_fetch_async_get(handle) // http_fetch_async_get(handle)
static int l_http_fetch_async_get(lua_State *L); static int l_http_fetch_async_get(lua_State *L);
// set_http_api_lua() [internal]
static int l_set_http_api_lua(lua_State *L);
// request_http_api() // request_http_api()
static int l_request_http_api(lua_State *L); static int l_request_http_api(lua_State *L);
@ -51,6 +48,10 @@ private:
static int l_get_http_api(lua_State *L); static int l_get_http_api(lua_State *L);
#endif #endif
// set_http_api_lua() [internal]
static int l_set_http_api_lua(lua_State *L);
public: public:
static void Initialize(lua_State *L, int top); static void Initialize(lua_State *L, int top);
static void InitializeAsync(lua_State *L, int top); static void InitializeAsync(lua_State *L, int top);