mirror of https://github.com/Icinga/icinga2.git
ConfigObjectUtility::GetObjectConfigPath(): hash names of not already existing objects
... to avoid too long file names. refs #8022
This commit is contained in:
parent
5f548c8f89
commit
68a0079c26
|
@ -8,11 +8,13 @@
|
|||
#include "base/configwriter.hpp"
|
||||
#include "base/exception.hpp"
|
||||
#include "base/dependencygraph.hpp"
|
||||
#include "base/tlsutility.hpp"
|
||||
#include "base/utility.hpp"
|
||||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/system/error_code.hpp>
|
||||
#include <fstream>
|
||||
#include <utility>
|
||||
|
||||
using namespace icinga;
|
||||
|
||||
|
@ -35,8 +37,13 @@ String ConfigObjectUtility::GetObjectConfigPath(const Type::Ptr& type, const Str
|
|||
/* This may throw an exception the caller above must handle. */
|
||||
String prefix = GetConfigDir();
|
||||
|
||||
return prefix + "/conf.d/" + typeDir +
|
||||
"/" + EscapeName(fullName) + ".conf";
|
||||
auto old (prefix + "/conf.d/" + typeDir + "/" + EscapeName(fullName) + ".conf");
|
||||
|
||||
if (fullName.GetLength() <= 80u + 3u /* "..." */ + 40u /* hex SHA1 */ || Utility::PathExists(old)) {
|
||||
return std::move(old);
|
||||
}
|
||||
|
||||
return prefix + "/conf.d/" + typeDir + "/" + fullName.SubStr(0, 80) + "..." + SHA1(fullName) + ".conf";
|
||||
}
|
||||
|
||||
void ConfigObjectUtility::RepairPackage(const String& package)
|
||||
|
|
Loading…
Reference in New Issue