X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fserverlist.cpp;h=8a85b33b3d5511a83d755eaa3b6a48bdf83c14fa;hb=ea6c3835debfffa22163f048eae57928311143c4;hp=204427f8870a46496d0fae2b94d81eee129f10f7;hpb=b03135548bbd9bcb73d14b067b96ec913404dd5f;p=oweals%2Fminetest.git diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 204427f88..8a85b33b3 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -68,10 +68,9 @@ std::vector getLocal() } -#if USE_CURL std::vector getOnline() { - Json::Value root = fetchJsonValue((g_settings->get("serverlist_url")+"/list").c_str(),0); + Json::Value root = fetchJsonValue((g_settings->get("serverlist_url")+"/list").c_str(), NULL); std::vector serverlist; @@ -87,8 +86,6 @@ std::vector getOnline() return serverlist; } -#endif - /* Delete a server fromt he local favorites list */ @@ -188,7 +185,7 @@ std::string serializeJson(std::vector serverlist) #if USE_CURL -void sendAnnounce(std::string action, const std::vector & clients_names, double uptime, u32 game_time, std::string gameid, std::vector mods) { +void sendAnnounce(std::string action, const std::vector & clients_names, double uptime, u32 game_time, float lag, std::string gameid, std::vector mods) { Json::Value server; if (action.size()) server["action"] = action; @@ -218,7 +215,6 @@ void sendAnnounce(std::string action, const std::vector & clients_n server["dedicated"] = g_settings->get("server_dedicated"); server["privs"] = g_settings->get("default_privs"); server["rollback"] = g_settings->getBool("enable_rollback_recording"); - server["liquid_finite"] = g_settings->getBool("liquid_finite"); server["mapgen"] = g_settings->get("mg_name"); server["can_see_far_names"] = g_settings->getBool("unlimited_player_transfer_distance"); server["mods"] = Json::Value(Json::arrayValue); @@ -226,16 +222,19 @@ void sendAnnounce(std::string action, const std::vector & clients_n server["mods"].append(m->name); } actionstream << "announcing to " << g_settings->get("serverlist_url") << std::endl; + } else { + if (lag) + server["lag"] = lag; } - Json::StyledWriter writer; + Json::FastWriter writer; HTTPFetchRequest fetchrequest; - fetchrequest.url = g_settings->get("serverlist_url") - + std::string("/announce?json=") - + urlencode(writer.write(server)); - fetchrequest.useragent = std::string("Minetest ")+minetest_version_hash; - fetchrequest.caller = HTTPFETCH_DISCARD; - fetchrequest.timeout = g_settings->getS32("curl_timeout"); + fetchrequest.url = g_settings->get("serverlist_url") + std::string("/announce"); + std::string query = std::string("json=") + urlencode(writer.write(server)); + if (query.size() < 1000) + fetchrequest.url += "?" + query; + else + fetchrequest.post_fields = query; httpfetch_async(fetchrequest); } #endif