diff options
author | sfan5 <sfan5@live.de> | 2022-02-04 20:29:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-04 20:29:28 +0100 |
commit | afb061c374ed6797f47b0806aba26845713d15ac (patch) | |
tree | 52a84a63bfe91ef624654b9f9292077042077bd6 | |
parent | 1ee37148a8072fe6350124cd51c812c3d3fb069a (diff) | |
download | minetest-afb061c374ed6797f47b0806aba26845713d15ac.tar.gz minetest-afb061c374ed6797f47b0806aba26845713d15ac.tar.bz2 minetest-afb061c374ed6797f47b0806aba26845713d15ac.zip |
Fix broken server startup if curl is disabled (#12046)
-rw-r--r-- | src/script/lua_api/l_http.cpp | 35 | ||||
-rw-r--r-- | src/script/lua_api/l_http.h | 7 |
2 files changed, 25 insertions, 17 deletions
diff --git a/src/script/lua_api/l_http.cpp b/src/script/lua_api/l_http.cpp index bd359b3cc..5566a8523 100644 --- a/src/script/lua_api/l_http.cpp +++ b/src/script/lua_api/l_http.cpp @@ -162,20 +162,6 @@ int ModApiHttp::l_http_fetch_async_get(lua_State *L) 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) { NO_MAP_LOCK_REQUIRED; @@ -215,6 +201,22 @@ int ModApiHttp::l_get_http_api(lua_State *L) #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) { #if USE_CURL @@ -231,6 +233,11 @@ void ModApiHttp::Initialize(lua_State *L, int top) 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 } diff --git a/src/script/lua_api/l_http.h b/src/script/lua_api/l_http.h index 17fa283ba..8d084ecd9 100644 --- a/src/script/lua_api/l_http.h +++ b/src/script/lua_api/l_http.h @@ -41,9 +41,6 @@ private: // http_fetch_async_get(handle) 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() static int l_request_http_api(lua_State *L); @@ -51,6 +48,10 @@ private: static int l_get_http_api(lua_State *L); #endif + // set_http_api_lua() [internal] + static int l_set_http_api_lua(lua_State *L); + + public: static void Initialize(lua_State *L, int top); static void InitializeAsync(lua_State *L, int top); |