diff --git a/lib/include/srslte/common/config_file.h b/lib/include/srslte/common/config_file.h index 80391f19a..8c07cf01d 100644 --- a/lib/include/srslte/common/config_file.h +++ b/lib/include/srslte/common/config_file.h @@ -35,22 +35,32 @@ bool config_exists(std::string &filename, std::string default_name) { std::ifstream conf(filename.c_str(), std::ios::in); if(conf.fail()) { - const char *homedir = NULL; + // try to find file in /etc/srslte char full_path[256]; ZERO_OBJECT(full_path); - if ((homedir = getenv("HOME")) == NULL) { - homedir = getpwuid(getuid())->pw_dir; - } - if (!homedir) { - homedir = "."; - } - snprintf(full_path, sizeof(full_path), "%s/.srs/%s", homedir, default_name.c_str()); + snprintf(full_path, sizeof(full_path), "/etc/srslte/%s", default_name.c_str()); filename = std::string(full_path); // try to open again conf.open(filename.c_str()); if (conf.fail()) { - return false; + // try home folder + const char* homedir = NULL; + ZERO_OBJECT(full_path); + if ((homedir = getenv("HOME")) == NULL) { + homedir = getpwuid(getuid())->pw_dir; + } + if (!homedir) { + homedir = "."; + } + snprintf(full_path, sizeof(full_path), "%s/.srs/%s", homedir, default_name.c_str()); + filename = std::string(full_path); + + // try to open again + conf.open(filename.c_str()); + if (conf.fail()) { + return false; + } } } return true;