diff --git a/include/villas/config.hpp b/include/villas/config.hpp index d7590df2a..be01a0bc3 100644 --- a/include/villas/config.hpp +++ b/include/villas/config.hpp @@ -78,7 +78,7 @@ protected: json_t * walkStrings(json_t *in, str_walk_fcn_t cb); /** Get the include dirs */ - std::list getIncludeDirs() const; + std::list getIncludeDirs(FILE *f) const; public: json_t *root; diff --git a/lib/config.cpp b/lib/config.cpp index af42e7614..b7c650933 100644 --- a/lib/config.cpp +++ b/lib/config.cpp @@ -142,7 +142,7 @@ json_t * Config::decode(FILE *f) return root; } -std::list Config::getIncludeDirs() +std::list Config::getIncludeDirs(FILE *f) const { auto uri = fs::read_symlink(fs::path("/proc/self/fd") / std::to_string(fileno(f))); if (isLocalFile(uri)) { @@ -165,11 +165,11 @@ json_t * Config::libconfigDecode(FILE *f) config_set_auto_convert(&cfg, 1); /* Setup libconfig include path. */ - auto inclDirs = getIncludeDirs(); + auto inclDirs = getIncludeDirs(f); if (inclDirs.size() > 0) { - logger->info("Setting include dir to: {}", inclDirs[0]); + logger->info("Setting include dir to: {}", inclDirs.front()); - config_set_include_dir(&cfg, inclDirs[0].c_str()); + config_set_include_dir(&cfg, inclDirs.front().c_str()); if (inclDirs.size() > 1) { logger->warn("Ignoring all but the first include directories for libconfig");