MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / checkShutdown

Method checkShutdown

plugins/serverControl/serverControl.cpp:193–221  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193void ServerControl::checkShutdown(void) {
194 // Check for server shutdown
195 //
196 // We shutdown the server in the following cases:
197 // The server has no players and
198 // the reset server once file exists OR
199 // the reset server always file exists and someone was on the server
200 //
201 if ((numPlayers <= 0) || (ignoreObservers && (numPlayers - numObservers) <= 0)) { // No players
202 if (resetServerOnceFilename != "") {
203 std::ifstream resetOnce(resetServerOnceFilename.c_str());
204 if (resetOnce) { // Reset server once exists
205 resetOnce.close();
206 remove(resetServerOnceFilename.c_str());
207 bz_debugMessagef(2, "ServerControl - Reset Server Once - SHUTDOWN");
208 bz_shutdown();
209 }
210 else if (resetServerAlwaysFilename != "" && serverActive) {
211 // Server was active - some non-observer player connected
212 std::ifstream resetAlways(resetServerAlwaysFilename.c_str());
213 if (resetAlways) { // Reset server always exists
214 resetAlways.close();
215 bz_debugMessagef(2, "ServerControl - Reset Server Always - SHUTDOWN");
216 bz_shutdown();
217 }
218 }
219 }
220 }
221}
222
223void ServerControl::process(bz_EventData* eventData) {
224 ostringstream msg;

Callers

nothing calls this directly

Calls 4

bz_debugMessagefFunction · 0.85
bz_shutdownFunction · 0.85
c_strMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected