nghttpx: Use ImmutableString for pid_file

This commit is contained in:
Tatsuhiro Tsujikawa 2016-02-14 21:34:33 +09:00
parent 2b707bff27
commit 76a425226f
3 changed files with 7 additions and 7 deletions

View File

@ -199,18 +199,18 @@ int chown_to_running_user(const char *path) {
namespace { namespace {
void save_pid() { void save_pid() {
std::ofstream out(get_config()->pid_file.get(), std::ios::binary); std::ofstream out(get_config()->pid_file.c_str(), std::ios::binary);
out << get_config()->pid << "\n"; out << get_config()->pid << "\n";
out.close(); out.close();
if (!out) { if (!out) {
LOG(ERROR) << "Could not save PID to file " << get_config()->pid_file.get(); LOG(ERROR) << "Could not save PID to file " << get_config()->pid_file;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (get_config()->uid != 0) { if (get_config()->uid != 0) {
if (chown_to_running_user(get_config()->pid_file.get()) == -1) { if (chown_to_running_user(get_config()->pid_file.c_str()) == -1) {
auto error = errno; auto error = errno;
LOG(WARN) << "Changing owner of pid file " << get_config()->pid_file.get() LOG(WARN) << "Changing owner of pid file " << get_config()->pid_file
<< " failed: " << strerror(error); << " failed: " << strerror(error);
} }
} }
@ -946,7 +946,7 @@ int event_loop() {
redirect_stderr_to_errorlog(); redirect_stderr_to_errorlog();
} }
if (get_config()->pid_file) { if (!get_config()->pid_file.empty()) {
save_pid(); save_pid();
} }

View File

@ -1728,7 +1728,7 @@ int parse_config(const char *opt, const char *optarg,
return 0; return 0;
case SHRPX_OPTID_PID_FILE: case SHRPX_OPTID_PID_FILE:
mod_config()->pid_file = strcopy(optarg); mod_config()->pid_file = optarg;
return 0; return 0;
case SHRPX_OPTID_USER: { case SHRPX_OPTID_USER: {

View File

@ -581,7 +581,7 @@ struct Config {
TLSConfig tls; TLSConfig tls;
LoggingConfig logging; LoggingConfig logging;
ConnectionConfig conn; ConnectionConfig conn;
std::unique_ptr<char[]> pid_file; ImmutableString pid_file;
std::unique_ptr<char[]> conf_path; std::unique_ptr<char[]> conf_path;
std::unique_ptr<char[]> user; std::unique_ptr<char[]> user;
std::unique_ptr<char[]> mruby_file; std::unique_ptr<char[]> mruby_file;