mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 02:44:15 +00:00
rework of storing certificates path (#1642)
Signed-off-by: R4SAS <r4sas@i2pmail.org>
This commit is contained in:
parent
d3a49e513c
commit
e8ad7b4f79
@ -94,6 +94,11 @@ namespace util
|
|||||||
|
|
||||||
i2p::config::GetOption("daemon", isDaemon);
|
i2p::config::GetOption("daemon", isDaemon);
|
||||||
|
|
||||||
|
std::string certsdir; i2p::config::GetOption("certsdir", certsdir);
|
||||||
|
i2p::fs::SetCertsDir(certsdir);
|
||||||
|
|
||||||
|
certsdir = i2p::fs::GetCertsDir();
|
||||||
|
|
||||||
std::string logs = ""; i2p::config::GetOption("log", logs);
|
std::string logs = ""; i2p::config::GetOption("log", logs);
|
||||||
std::string logfile = ""; i2p::config::GetOption("logfile", logfile);
|
std::string logfile = ""; i2p::config::GetOption("logfile", logfile);
|
||||||
std::string loglevel = ""; i2p::config::GetOption("loglevel", loglevel);
|
std::string loglevel = ""; i2p::config::GetOption("loglevel", loglevel);
|
||||||
@ -132,6 +137,7 @@ namespace util
|
|||||||
LogPrint(eLogNone, "i2pd v", VERSION, " starting");
|
LogPrint(eLogNone, "i2pd v", VERSION, " starting");
|
||||||
LogPrint(eLogDebug, "FS: main config file: ", config);
|
LogPrint(eLogDebug, "FS: main config file: ", config);
|
||||||
LogPrint(eLogDebug, "FS: data directory: ", datadir);
|
LogPrint(eLogDebug, "FS: data directory: ", datadir);
|
||||||
|
LogPrint(eLogDebug, "FS: certificates directory: ", certsdir);
|
||||||
|
|
||||||
bool precomputation; i2p::config::GetOption("precomputation.elgamal", precomputation);
|
bool precomputation; i2p::config::GetOption("precomputation.elgamal", precomputation);
|
||||||
bool aesni; i2p::config::GetOption("cpuext.aesni", aesni);
|
bool aesni; i2p::config::GetOption("cpuext.aesni", aesni);
|
||||||
|
@ -24,6 +24,7 @@ namespace i2p {
|
|||||||
namespace fs {
|
namespace fs {
|
||||||
std::string appName = "i2pd";
|
std::string appName = "i2pd";
|
||||||
std::string dataDir = "";
|
std::string dataDir = "";
|
||||||
|
std::string certsDir = "";
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
std::string dirSep = "\\";
|
std::string dirSep = "\\";
|
||||||
#else
|
#else
|
||||||
@ -42,6 +43,10 @@ namespace fs {
|
|||||||
return dataDir;
|
return dataDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string & GetCertsDir () {
|
||||||
|
return certsDir;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string GetUTF8DataDir () {
|
const std::string GetUTF8DataDir () {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
boost::filesystem::wpath path (dataDir);
|
boost::filesystem::wpath path (dataDir);
|
||||||
@ -126,6 +131,21 @@ namespace fs {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetCertsDir(const std::string & cmdline_certsdir) {
|
||||||
|
if (cmdline_certsdir != "")
|
||||||
|
{
|
||||||
|
if (cmdline_certsdir[cmdline_certsdir.length()-1] == '/')
|
||||||
|
certsDir = cmdline_certsdir.substr(0, cmdline_certsdir.size()-1); // strip trailing slash
|
||||||
|
else
|
||||||
|
certsDir = cmdline_certsdir;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
certsDir = i2p::fs::DataDirPath("certificates");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool Init() {
|
bool Init() {
|
||||||
if (!boost::filesystem::exists(dataDir))
|
if (!boost::filesystem::exists(dataDir))
|
||||||
boost::filesystem::create_directory(dataDir);
|
boost::filesystem::create_directory(dataDir);
|
||||||
|
18
libi2pd/FS.h
18
libi2pd/FS.h
@ -75,6 +75,9 @@ namespace fs {
|
|||||||
/** @brief Returns datadir path */
|
/** @brief Returns datadir path */
|
||||||
const std::string & GetDataDir();
|
const std::string & GetDataDir();
|
||||||
|
|
||||||
|
/** @brief Returns certsdir path */
|
||||||
|
const std::string & GetCertsDir();
|
||||||
|
|
||||||
/** @brief Returns datadir path in UTF-8 encoding */
|
/** @brief Returns datadir path in UTF-8 encoding */
|
||||||
const std::string GetUTF8DataDir();
|
const std::string GetUTF8DataDir();
|
||||||
|
|
||||||
@ -90,7 +93,20 @@ namespace fs {
|
|||||||
* Mac: /Library/Application Support/i2pd/ or ~/Library/Application Support/i2pd/
|
* Mac: /Library/Application Support/i2pd/ or ~/Library/Application Support/i2pd/
|
||||||
* Unix: /var/lib/i2pd/ (system=1) >> ~/.i2pd/ or /tmp/i2pd/
|
* Unix: /var/lib/i2pd/ (system=1) >> ~/.i2pd/ or /tmp/i2pd/
|
||||||
*/
|
*/
|
||||||
void DetectDataDir(const std::string & cmdline_datadir, bool isService = false);
|
void DetectDataDir(const std::string & cmdline_datadir, bool isService = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set certsdir either from cmdline option or using autodetection
|
||||||
|
* @param cmdline_param Value of cmdline parameter --certsdir=<something>
|
||||||
|
*
|
||||||
|
* Examples of autodetected paths:
|
||||||
|
*
|
||||||
|
* Windows < Vista: C:\Documents and Settings\Username\Application Data\i2pd\certificates
|
||||||
|
* Windows >= Vista: C:\Users\Username\AppData\Roaming\i2pd\certificates
|
||||||
|
* Mac: /Library/Application Support/i2pd/ or ~/Library/Application Support/i2pd/certificates
|
||||||
|
* Unix: /var/lib/i2pd/certificates (system=1) >> ~/.i2pd/ or /tmp/i2pd/certificates
|
||||||
|
*/
|
||||||
|
void SetCertsDir(const std::string & cmdline_certsdir);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Create subdirectories inside datadir
|
* @brief Create subdirectories inside datadir
|
||||||
|
@ -99,13 +99,7 @@ namespace data
|
|||||||
|
|
||||||
void Families::LoadCertificates ()
|
void Families::LoadCertificates ()
|
||||||
{
|
{
|
||||||
std::string certDir;
|
std::string certDir = i2p::fs::GetCertsDir() + i2p::fs::dirSep + "family";
|
||||||
std::string certsdir; i2p::config::GetOption("certsdir", certsdir);
|
|
||||||
if (!i2p::config::IsDefault("certsdir"))
|
|
||||||
certDir = certsdir + i2p::fs::dirSep + "family";
|
|
||||||
|
|
||||||
if (certDir.empty() || !i2p::fs::Exists(certDir))
|
|
||||||
certDir = i2p::fs::DataDirPath("certificates", "family");
|
|
||||||
|
|
||||||
std::vector<std::string> files;
|
std::vector<std::string> files;
|
||||||
int numCertificates = 0;
|
int numCertificates = 0;
|
||||||
|
@ -497,13 +497,7 @@ namespace data
|
|||||||
|
|
||||||
void Reseeder::LoadCertificates ()
|
void Reseeder::LoadCertificates ()
|
||||||
{
|
{
|
||||||
std::string certDir;
|
std::string certDir = i2p::fs::GetCertsDir() + i2p::fs::dirSep + "reseed";
|
||||||
std::string certsdir; i2p::config::GetOption("certsdir", certsdir);
|
|
||||||
if (!i2p::config::IsDefault("certsdir"))
|
|
||||||
certDir = certsdir + i2p::fs::dirSep + "reseed";
|
|
||||||
|
|
||||||
if (certDir.empty() || !i2p::fs::Exists(certDir))
|
|
||||||
certDir = i2p::fs::DataDirPath("certificates", "reseed");
|
|
||||||
|
|
||||||
std::vector<std::string> files;
|
std::vector<std::string> files;
|
||||||
int numCertificates = 0;
|
int numCertificates = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user