1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Config: Guess config files by FHS. v4.0.194 (#2711)

This commit is contained in:
winlin 2021-11-07 17:39:58 +08:00
parent b06661539c
commit 1f4dad024e
3 changed files with 41 additions and 16 deletions

View file

@ -8,6 +8,7 @@ The changelog for SRS.
## SRS 4.0 Changelog ## SRS 4.0 Changelog
* v4.0, 2021-11-07, Merge [#2711](https://github.com/ossrs/srs/pull/2711): Config: Guess config files by [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard). v4.0.194
* v4.0, 2021-11-07, Merge [#2714](https://github.com/ossrs/srs/pull/2714): DVR: copy req from publish. v4.0.193 * v4.0, 2021-11-07, Merge [#2714](https://github.com/ossrs/srs/pull/2714): DVR: copy req from publish. v4.0.193
* v4.0, 2021-11-04, Merge [#2707](https://github.com/ossrs/srs/pull/2707): Refuse edge request when state is stopping. v4.0.192 * v4.0, 2021-11-04, Merge [#2707](https://github.com/ossrs/srs/pull/2707): Refuse edge request when state is stopping. v4.0.192
* v4.0, 2021-11-02, Auto create package by github actions. v4.0.191 * v4.0, 2021-11-02, Auto create package by github actions. v4.0.191

View file

@ -1956,8 +1956,8 @@ srs_error_t SrsConfig::parse_options(int argc, char** argv)
} }
} }
// config // Show help if has any argv
show_help = true; show_help = argc > 1;
for (int i = 1; i < argc; i++) { for (int i = 1; i < argc; i++) {
if ((err = parse_argv(i, argv)) != srs_success) { if ((err = parse_argv(i, argv)) != srs_success) {
return srs_error_wrap(err, "parse argv"); return srs_error_wrap(err, "parse argv");
@ -1981,20 +1981,44 @@ srs_error_t SrsConfig::parse_options(int argc, char** argv)
// first hello message. // first hello message.
srs_trace(_srs_version); srs_trace(_srs_version);
if (config_file.empty()) { // Try config files as bellow:
return srs_error_new(ERROR_SYSTEM_CONFIG_INVALID, "no config, read help: %s -h", argv[0]); // config_file Specified by user, like conf/srs.conf
// try_docker_config Guess by SRS, like conf/docker.conf
// try_fhs_config For FHS, try /etc/srs/srs.conf first, @see https://github.com/ossrs/srs/pull/2711
if (!srs_path_exists(config_file)) {
vector<string> try_config_files;
if (!config_file.empty()) {
try_config_files.push_back(config_file);
if (srs_string_ends_with(config_file, "docker.conf")) {
try_config_files.push_back(srs_string_replace(config_file, "docker.conf", "srs.conf"));
}
}
try_config_files.push_back(SRS_CONF_DEFAULT_COFNIG_FILE);
if (srs_string_ends_with(SRS_CONF_DEFAULT_COFNIG_FILE, "docker.conf")) {
try_config_files.push_back(srs_string_replace(SRS_CONF_DEFAULT_COFNIG_FILE, "docker.conf", "srs.conf"));
}
try_config_files.push_back("/etc/srs/srs.conf");
string exists_config_file;
for (int i = 0; i < (int) try_config_files.size(); i++) {
string try_config_file = try_config_files.at(i);
if (srs_path_exists(try_config_file)) {
exists_config_file = try_config_file;
break;
}
} }
// For docker, if config is not specified, try srs.conf instead. if (exists_config_file.empty()) {
string try_config = srs_string_replace(config_file, "docker.conf", "srs.conf"); return srs_error_new(ERROR_SYSTEM_CONFIG_INVALID, "no config file at %s", srs_join_vector_string(try_config_files, ", ").c_str());
if (!srs_path_exists(config_file) && try_config != config_file) {
if (!srs_path_exists(try_config)) {
return srs_error_new(ERROR_SYSTEM_CONFIG_INVALID, "no config file %s or %s", config_file.c_str(), try_config.c_str());
}
srs_warn("user config %s does not exists, use %s instead", config_file.c_str(), try_config.c_str());
config_file = try_config;
} }
if (config_file != exists_config_file) {
srs_warn("user config %s does not exists, use %s instead", config_file.c_str(), exists_config_file.c_str());
config_file = exists_config_file;
}
}
// Parse the matched config file.
err = parse_file(config_file.c_str()); err = parse_file(config_file.c_str());
if (test_conf) { if (test_conf) {

View file

@ -9,6 +9,6 @@
#define VERSION_MAJOR 4 #define VERSION_MAJOR 4
#define VERSION_MINOR 0 #define VERSION_MINOR 0
#define VERSION_REVISION 193 #define VERSION_REVISION 194
#endif #endif