X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FDaemon%2FDaemon.cc;h=9457d8c43c9b5d98e70a8e564c12116de6c62c43;hb=76fe5e8b7de8a71aeb6fe9b1d0ea37d5fa51c87a;hp=079b383f44cc062f24323c902f8768c48a905063;hpb=b7f7003f523fa8251ac44b969374c7385d053cc4;p=senf.git diff --git a/Utils/Daemon/Daemon.cc b/Utils/Daemon/Daemon.cc index 079b383..9457d8c 100644 --- a/Utils/Daemon/Daemon.cc +++ b/Utils/Daemon/Daemon.cc @@ -92,6 +92,24 @@ prefix_ char ** senf::Daemon::argv() return argv_; } +namespace { + + struct IsDaemonOpt { + bool operator()(std::string const & str) const { + return str == "--no-daemon" + || boost::starts_with(str, std::string("--pid-file=")) + || boost::starts_with(str, std::string("--console-log=")); + } + }; +} + +prefix_ void senf::Daemon::removeDaemonArgs() +{ + char ** last (std::remove_if(argv_+1, argv_+argc_, IsDaemonOpt())); + *last = 0; + argc_ = last - argv_; +} + prefix_ void senf::Daemon::consoleLog(std::string const & path, StdStream which) { switch (which) {