From df34c4329307508310fb1018d62b0531c94bc6c7 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 24 Jul 2013 20:25:27 +0000 Subject: Server shuts down when the stdin is closed (linux Ctrl+D / win Ctrl+Z) Fixes FS #419 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1679 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Root.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'source') diff --git a/source/Root.cpp b/source/Root.cpp index 771986003..59242c60d 100644 --- a/source/Root.cpp +++ b/source/Root.cpp @@ -72,11 +72,20 @@ void cRoot::InputThread(void * a_Params) cLogCommandOutputCallback Output; - while (!(self.m_bStop || self.m_bRestart)) + while (!(self.m_bStop || self.m_bRestart) && std::cin.good()) { std::string Command; std::getline(std::cin, Command); - self.ExecuteConsoleCommand(Command, Output); + if (!Command.empty()) + { + self.ExecuteConsoleCommand(Command, Output); + } + } + + if (!(self.m_bStop || self.m_bRestart)) + { + // We have come here because the std::cin has received an EOF and the server is still running; stop the server: + self.m_bStop = true; } } -- cgit v1.2.3