mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* tidy * Automated clang-tidy change: modernize-concat-nested-namespaces * compile test * fix namespace --------- Co-authored-by: Clang Tidy <clang-tidy@users.noreply.github.com>
53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#include <boost/algorithm/string/predicate.hpp> // for istarts_with
|
|
|
|
#include "clib/cfgelem.h"
|
|
#include "clib/cfgfile.h"
|
|
#include "clib/fileutil.h"
|
|
#include "globals/settings.h"
|
|
|
|
|
|
namespace Pol::Core
|
|
{
|
|
|
|
void clear_email_cfg()
|
|
{
|
|
settingsManager.email_cfg.url = "";
|
|
settingsManager.email_cfg.username = "";
|
|
settingsManager.email_cfg.password = "";
|
|
settingsManager.email_cfg.use_tls = false;
|
|
}
|
|
|
|
void load_email_cfg()
|
|
{
|
|
if ( !Clib::FileExists( "config/email.cfg" ) )
|
|
{
|
|
clear_email_cfg();
|
|
return;
|
|
}
|
|
|
|
Clib::ConfigFile cf( "config/email.cfg" );
|
|
Clib::ConfigElem elem;
|
|
|
|
cf.readraw( elem );
|
|
|
|
settingsManager.email_cfg.url = elem.remove_string( "URL" );
|
|
|
|
if ( !boost::algorithm::istarts_with( settingsManager.email_cfg.url, "smtp://" ) &&
|
|
!boost::algorithm::istarts_with( settingsManager.email_cfg.url, "smtps://" ) )
|
|
{
|
|
clear_email_cfg();
|
|
elem.throw_error( "URL must start with 'smtp://' or 'smtps://'." );
|
|
}
|
|
settingsManager.email_cfg.username = elem.remove_string( "Username", "" );
|
|
settingsManager.email_cfg.password = elem.remove_string( "Password", "" );
|
|
settingsManager.email_cfg.use_tls = elem.remove_bool( "UseTLS", false );
|
|
settingsManager.email_cfg.ca_file = elem.remove_string( "CAFile", "" );
|
|
if ( !settingsManager.email_cfg.ca_file.empty() &&
|
|
!Clib::FileExists( settingsManager.email_cfg.ca_file ) )
|
|
{
|
|
clear_email_cfg();
|
|
elem.throw_error(
|
|
fmt::format( "CAFile '{}' does not exist.", settingsManager.email_cfg.ca_file ) );
|
|
}
|
|
}
|
|
} // namespace Pol::Core
|