aboutsummaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp43
1 files changed, 35 insertions, 8 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 93767da9d..b5f00a784 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -391,8 +391,17 @@ Server::~Server()
}
}
+inline uint64_t microtime(void) {
+ struct timeval tv;
+ struct timezone tz = {0};
+
+ gettimeofday(&tv, &tz);
+ return (tv.tv_sec * 1000000) + tv.tv_usec;
+}
+
void Server::init()
{
+ uint64_t start_time = microtime();
infostream << "Server created for gameid \"" << m_gamespec.id << "\"";
if (m_simple_singleplayer_mode)
infostream << " in simple singleplayer mode" << std::endl;
@@ -423,6 +432,9 @@ void Server::init()
m_mod_storage_database = openModStorageDatabase(m_path_world);
m_mod_storage_database->beginSave();
+ fprintf(stderr, "0: %17luus\n", microtime() - start_time);
+ start_time = microtime();
+
m_modmgr = std::make_unique<ServerModManager>(m_path_world);
std::vector<ModSpec> unsatisfied_mods = m_modmgr->getUnsatisfiedMods();
@@ -447,14 +459,23 @@ void Server::init()
m_script = new ServerScripting(this);
+ fprintf(stderr, "1: %17luus\n", microtime() - start_time);
+ start_time = microtime();
+
// Must be created before mod loading because we have some inventory creation
m_inventory_mgr = std::make_unique<ServerInventoryManager>();
m_script->loadMod(getBuiltinLuaPath() + DIR_DELIM "init.lua", BUILTIN_MOD_NAME);
+ fprintf(stderr, "2: %17luus\n", microtime() - start_time);
+ start_time = microtime();
+
m_gamespec.checkAndLog();
m_modmgr->loadMods(m_script);
+ fprintf(stderr, "3: %17luus\n", microtime() - start_time);
+ start_time = microtime();
+
// Read Textures and calculate sha1 sums
fillMediaCache();
@@ -490,6 +511,9 @@ void Server::init()
m_inventory_mgr->setEnv(m_env);
m_clients.setEnv(m_env);
+ fprintf(stderr, "4: %17luus\n", microtime() - start_time);
+ start_time = microtime();
+
if (!servermap->settings_mgr.makeMapgenParams())
FATAL_ERROR("Couldn't create any mapgen type");
@@ -518,6 +542,9 @@ void Server::init()
m_max_chatmessage_length = g_settings->getU16("chat_message_max_size");
m_csm_restriction_flags = g_settings->getU64("csm_restriction_flags");
m_csm_restriction_noderange = g_settings->getU32("csm_restriction_noderange");
+
+ fprintf(stderr, "5: %17luus\n", microtime() - start_time);
+ start_time = microtime();
}
void Server::start()
@@ -1167,14 +1194,14 @@ void Server::ProcessData(NetworkPacket *pkt)
std::string addr_s = address.serializeString();
// FIXME: Isn't it a bit excessive to check this for every packet?
- if (m_banmanager->isIpBanned(addr_s)) {
- std::string ban_name = m_banmanager->getBanName(addr_s);
- infostream << "Server: A banned client tried to connect from "
- << addr_s << "; banned name was " << ban_name << std::endl;
- DenyAccess(peer_id, SERVER_ACCESSDENIED_CUSTOM_STRING,
- "Your IP is banned. Banned name was " + ban_name);
- return;
- }
+// if (m_banmanager->isIpBanned(addr_s)) {
+// std::string ban_name = m_banmanager->getBanName(addr_s);
+// infostream << "Server: A banned client tried to connect from "
+// << addr_s << "; banned name was " << ban_name << std::endl;
+// DenyAccess(peer_id, SERVER_ACCESSDENIED_CUSTOM_STRING,
+// "Your IP is banned. Banned name was " + ban_name);
+// return;
+// }
} catch (con::PeerNotFoundException &e) {
/*
* no peer for this packet found