From c62bab010fcf2b4b93af1cf0b71d4d0dbf78fed8 Mon Sep 17 00:00:00 2001 From: proller Date: Tue, 7 Jan 2014 02:50:45 +0400 Subject: Send long announce as POST, show OS in useragent Add lag reporting to masterserver (average dtime) StyledWriter -> FastWriter in masterserver announce --- src/serverlist.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/serverlist.cpp') diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 204427f88..2c475cbc0 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -188,7 +188,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; @@ -226,16 +226,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["step"] = 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 -- cgit v1.2.3