aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server.cpp8
-rw-r--r--src/server.h3
-rw-r--r--src/serverlist.cpp3
-rw-r--r--src/serverlist.h2
4 files changed, 12 insertions, 4 deletions
diff --git a/src/server.cpp b/src/server.cpp
index c948427ad..fba512049 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -428,6 +428,9 @@ Server::~Server()
void Server::start(Address bind_addr)
{
DSTACK(__FUNCTION_NAME);
+
+ m_bind_addr = bind_addr;
+
infostream<<"Starting server on "
<< bind_addr.serializeString() <<"..."<<std::endl;
@@ -678,6 +681,7 @@ void Server::AsyncRunStep(bool initial_step)
g_settings->getBool("server_announce"))
{
ServerList::sendAnnounce(counter ? "update" : "start",
+ m_bind_addr.getPort(),
m_clients.getPlayerNames(),
m_uptime.get(),
m_env->getGameTime(),
@@ -5093,8 +5097,8 @@ void dedicated_server_loop(Server &server, bool &kill)
{
infostream<<"Dedicated server quitting"<<std::endl;
#if USE_CURL
- if(g_settings->getBool("server_announce") == true)
- ServerList::sendAnnounce("delete");
+ if(g_settings->getBool("server_announce"))
+ ServerList::sendAnnounce("delete", server.m_bind_addr.getPort());
#endif
break;
}
diff --git a/src/server.h b/src/server.h
index e9cf0a25c..3d6b00d99 100644
--- a/src/server.h
+++ b/src/server.h
@@ -340,6 +340,9 @@ public:
u8* ser_vers, u16* prot_vers, u8* major, u8* minor, u8* patch,
std::string* vers_string);
+ // Bind address
+ Address m_bind_addr;
+
private:
friend class EmergeThread;
diff --git a/src/serverlist.cpp b/src/serverlist.cpp
index 65c75fec2..472a6b85c 100644
--- a/src/serverlist.cpp
+++ b/src/serverlist.cpp
@@ -189,6 +189,7 @@ const std::string serializeJson(const std::vector<ServerListSpec> &serverlist)
#if USE_CURL
void sendAnnounce(const std::string &action,
+ const u16 port,
const std::vector<std::string> &clients_names,
const double uptime,
const u32 game_time,
@@ -199,7 +200,7 @@ void sendAnnounce(const std::string &action,
{
Json::Value server;
server["action"] = action;
- server["port"] = g_settings->getU16("port");
+ server["port"] = port;
if (g_settings->exists("server_address")) {
server["address"] = g_settings->get("server_address");
}
diff --git a/src/serverlist.h b/src/serverlist.h
index 7a7461ebd..8ffea44cc 100644
--- a/src/serverlist.h
+++ b/src/serverlist.h
@@ -38,7 +38,7 @@ namespace ServerList
std::vector<ServerListSpec> deSerializeJson(const std::string &liststring);
const std::string serializeJson(const std::vector<ServerListSpec> &serverlist);
#if USE_CURL
- void sendAnnounce(const std::string &action,
+ void sendAnnounce(const std::string &action, const u16 port,
const std::vector<std::string> &clients_names = std::vector<std::string>(),
const double uptime = 0, const u32 game_time = 0,
const float lag = 0, const std::string &gameid = "",