diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-10-27 07:13:22 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-10-27 07:13:22 +0000 |
commit | 90f3d27affadff9b7b2ba6c5d4014c206e0a178e (patch) | |
tree | b3dc7472f1a6851811e6c78a81f82578cf8e78e3 | |
parent | 6bc7d2c1ecd6a79545fdf83a9b8b054190d56ed2 (diff) |
Allow relative path on pid file
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5547 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/configreader.cpp | 2 | ||||
-rw-r--r-- | src/inspircd.cpp | 17 |
2 files changed, 15 insertions, 4 deletions
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); } } |