diff --git a/config.ini b/config.ini index 6d39c93..bcac4ca 100644 --- a/config.ini +++ b/config.ini @@ -68,6 +68,7 @@ spawnz=-5500 # Player location monitor interface configuration [monitor] +enabled=false # the port to listen for connections on port=8003 # how often the listeners should be updated (in milliseconds) diff --git a/src/Monitor.cpp b/src/Monitor.cpp index dab3022..f939672 100644 --- a/src/Monitor.cpp +++ b/src/Monitor.cpp @@ -13,6 +13,9 @@ static sockaddr_in address; // runs during init void Monitor::init() { + if (!settings::MONITORENABLED) + return; + listener = socket(AF_INET, SOCK_STREAM, 0); if (SOCKETERROR(listener)) { std::cout << "Failed to create monitor socket" << std::endl; @@ -106,6 +109,9 @@ void Monitor::tick(CNServer *serv, time_t delta) { void Monitor::start(void *unused) { socklen_t len = sizeof(address); + if (!settings::MONITORENABLED) + return; + for (;;) { int sock = accept(listener, (struct sockaddr*)&address, &len); if (SOCKETERROR(sock)) diff --git a/src/settings.cpp b/src/settings.cpp index c4db43f..8ac644a 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -31,6 +31,7 @@ std::string settings::MOTDSTRING = "Welcome to OpenFusion!"; int settings::ACCLEVEL = 1; // monitor settings +bool settings::MONITORENABLED = false; int settings::MONITORPORT = 8003; int settings::MONITORINTERVAL = 5000; @@ -74,6 +75,7 @@ void settings::init() { ACCLEVEL = reader.GetInteger("shard", "accountlevel", ACCLEVEL); EVENTMODE = reader.GetInteger("shard", "eventmode", EVENTMODE); EVENTCRATECHANCE = reader.GetInteger("shard", "eventcratechance", EVENTCRATECHANCE); + MONITORENABLED = reader.GetBoolean("monitor", "enabled", MONITORENABLED); MONITORPORT = reader.GetInteger("monitor", "port", MONITORPORT); MONITORINTERVAL = reader.GetInteger("monitor", "interval", MONITORINTERVAL); } diff --git a/src/settings.hpp b/src/settings.hpp index 60476f6..0d92fef 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -25,6 +25,7 @@ namespace settings { extern std::string GRUNTWORKJSON; extern int EVENTMODE; extern int EVENTCRATECHANCE; + extern bool MONITORENABLED; extern int MONITORPORT; extern int MONITORINTERVAL;