From 90f3d27affadff9b7b2ba6c5d4014c206e0a178e Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 27 Oct 2006 07:13:22 +0000 Subject: Allow relative path on pid file git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5547 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/configreader.cpp | 2 +- src/inspircd.cpp | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/configreader.cpp b/src/configreader.cpp index e0e249963..0dd5745d1 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -1279,7 +1279,7 @@ bool ServerConfig::ReadFile(file_cache &F, const char* fname) if((pos = confpath.find("/inspircd.conf")) != std::string::npos) { /* Leaves us with just the path */ - std::string newfile = confpath.substr(0, pos) + std::string("/") + newfile; + std::string newfile = confpath.substr(0, pos) + std::string("/") + fname; file = fopen(newfile.c_str(), "r"); } diff --git a/src/inspircd.cpp b/src/inspircd.cpp index df4cfe754..421b91ebe 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -148,7 +148,18 @@ bool InspIRCd::DaemonSeed() void InspIRCd::WritePID(const std::string &filename) { - std::ofstream outfile(filename.c_str()); + std::string fname = (filename.empty() ? "inspircd.pid" : filename); + if (*(fname.begin()) != '/') + { + std::string::size_type pos; + std::string confpath = CONFIG_FILE; + if ((pos = confpath.find("/inspircd.conf")) != std::string::npos) + { + /* Leaves us with just the path */ + fname = confpath.substr(0, pos) + std::string("/") + fname; + } + } + std::ofstream outfile(fname.c_str()); if (outfile.is_open()) { outfile << getpid(); @@ -156,8 +167,8 @@ void InspIRCd::WritePID(const std::string &filename) } else { - printf("Failed to write PID-file '%s', exiting.\n",filename.c_str()); - this->Log(DEFAULT,"Failed to write PID-file '%s', exiting.",filename.c_str()); + printf("Failed to write PID-file '%s', exiting.\n",fname.c_str()); + this->Log(DEFAULT,"Failed to write PID-file '%s', exiting.",fname.c_str()); Exit(0); } } -- cgit v1.2.3