diff options
-rw-r--r-- | CMakeLists.txt | 81 | ||||
-rw-r--r-- | src/file/mail.cpp | 2 | ||||
-rw-r--r-- | src/file/settings.cpp | 18 | ||||
-rw-r--r-- | src/logger/journal.cpp | 11 | ||||
-rw-r--r-- | src/logger/journal.hpp | 17 | ||||
-rw-r--r-- | src/logger/logger_set.cpp | 45 | ||||
-rw-r--r-- | src/logger/logger_set.hpp | 25 | ||||
-rw-r--r-- | src/logger/phosphor.cpp | 15 | ||||
-rw-r--r-- | src/logger/phosphor.hpp | 16 | ||||
-rw-r--r-- | src/logger/types/ilogger.hpp | 15 | ||||
-rw-r--r-- | src/management/logger.cpp | 12 | ||||
-rw-r--r-- | src/management/logger.hpp | 13 | ||||
-rw-r--r-- | src/message/sender.cpp | 246 | ||||
-rw-r--r-- | src/service/smtp.cpp | 18 | ||||
-rw-r--r-- | src/service/smtp.hpp | 12 |
15 files changed, 348 insertions, 198 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a640f3e..9fe6741 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,18 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Os -flto") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") +option ( + ADD_JOURNAL_LOGGING + "All logging write to journalctl" + ON +) + +option ( + ADD_PHOSPHOR_LOGGING + "All logging write to webui" + ON +) + if(NOT ${YOCTO_DEPENDENCIES}) include(ExternalProject) @@ -60,15 +72,18 @@ if(NOT ${YOCTO_DEPENDENCIES}) add_definitions(-DBOOST_NO_TYPEID) add_definitions(-DBOOST_ASIO_DISABLE_THREADS) else() - if(${BOOST_VERSION}) - find_package(Boost ${BOOST_VERSION} EXACT) - else() - find_package(Boost 1.69 REQUIRED COMPONENTS coroutine context) - endif() - message("++ Using Boost version: " ${Boost_VERSION}) - - include_directories(${Boost_INCLUDE_DIRS}) - link_directories(${Boost_LIBRARY_DIRS}) + if(${BOOST_VERSION}) + find_package(Boost ${BOOST_VERSION} EXACT) + else() + find_package(Boost 1.69 REQUIRED COMPONENTS coroutine context) + endif() + message("++ Using Boost version: " ${Boost_VERSION}) + + include_directories(${Boost_INCLUDE_DIRS}) + link_directories(${Boost_LIBRARY_DIRS}) + + find_package (PkgConfig REQUIRED) + pkg_check_modules (LOGGING phosphor-logging REQUIRED) endif() include_directories(src) @@ -81,6 +96,7 @@ set(FILE_DIR src/file) set(PARSER_DIR src/file/parser) set(MANAGER_BUILDER_DIR src/management/builder) set(CONVERTER_DIR src/converter) +set(LOGGER_DIR src/logger) set(CHECKER_DIR src/checker) set(SRC_FILES @@ -111,8 +127,6 @@ set(SRC_FILES ${MANAGEMENT_DIR}/mail.cpp ${MANAGEMENT_DIR}/settings.hpp ${MANAGEMENT_DIR}/settings.cpp - ${MANAGEMENT_DIR}/logger.hpp - ${MANAGEMENT_DIR}/logger.cpp ${MANAGEMENT_DIR}/general.hpp ${FILE_DIR}/mail.hpp @@ -137,6 +151,12 @@ set(SRC_FILES ${MANAGER_BUILDER_DIR}/mail.hpp ${MANAGER_BUILDER_DIR}/mail.cpp + ${LOGGER_DIR}/types/ilogger.hpp + ${LOGGER_DIR}/journal.cpp + ${LOGGER_DIR}/journal.hpp + ${LOGGER_DIR}/logger_set.cpp + ${LOGGER_DIR}/logger_set.hpp + ${CHECKER_DIR}/registrator_mails.hpp ${CHECKER_DIR}/registrator_mails.cpp ${CHECKER_DIR}/registrator_settings.hpp @@ -148,22 +168,37 @@ set(SRC_FILES ${CHECKER_DIR}/errors/types/imails_error.hpp ${CHECKER_DIR}/errors/types/isettings_error.hpp - ) +) + +if( ${ADD_PHOSPHOR_LOGGING} ) + set(PHOSPHOR_LOGGING_FILES + src/logger/phosphor.cpp + src/logger/phosphor.hpp + ) +endif() + +add_executable(${PROJECT_NAME} ${SRC_FILES} ${PHOSPHOR_LOGGING_FILES}) -add_executable(smtp ${SRC_FILES}) if(NOT ${YOCTO_DEPENDENCIES}) - add_dependencies(smtp sdbusplus-project) + add_dependencies(${PROJECT_NAME} sdbusplus-project) +elseif(${ADD_PHOSPHOR_LOGGING}) + target_link_libraries (${PROJECT_NAME} phosphor_logging) endif() -target_link_libraries(smtp boost_context) -target_link_libraries(smtp sdbusplus) -target_link_libraries(smtp systemd) -target_link_libraries(smtp curl) +target_link_libraries(${PROJECT_NAME} boost_context) +target_link_libraries(${PROJECT_NAME} sdbusplus) +target_link_libraries(${PROJECT_NAME} systemd) +target_link_libraries(${PROJECT_NAME} curl) -#target_link_libraries(curl_smtp curl) -#target_link_libraries (${PROJECT_NAME} ${Boost_LIBRARIES}) -#target_link_libraries (${PROJECT_NAME} ${SDBUSPLUSPLUS_LIBRARIES} -# phosphor_logging) -install(TARGETS smtp DESTINATION bin) +install(TARGETS ${PROJECT_NAME} DESTINATION bin) install(FILES ${PROJECT_SOURCE_DIR}/xyz.openbmc_project.SMTP.service DESTINATION /lib/systemd/system/) + +target_compile_definitions ( + ${PROJECT_NAME} PRIVATE $<$<BOOL:${ADD_JOURNAL_LOGGING}>: -DADD_JOURNAL_LOGGING> + +) + +target_compile_definitions ( + ${PROJECT_NAME} PRIVATE $<$<BOOL:${ADD_PHOSPHOR_LOGGING}>: -DADD_PHOSPHOR_LOGGING> +) diff --git a/src/file/mail.cpp b/src/file/mail.cpp index 2b1ff14..cf5fe26 100644 --- a/src/file/mail.cpp +++ b/src/file/mail.cpp @@ -1,7 +1,7 @@ #include <fstream> #include "mail.hpp" -#include "management/logger.hpp" +#include "logger/logger_set.hpp" namespace smtp::file { diff --git a/src/file/settings.cpp b/src/file/settings.cpp index 710b67f..83f8322 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -1,7 +1,7 @@ #include <fstream> #include "settings.hpp" -#include "management/logger.hpp" +#include "logger/logger_set.hpp" namespace smtp::file { @@ -77,12 +77,12 @@ namespace smtp::file return true; } - std::string Settings::BuildParam( std::pair<std::string, std::string> const& data) const - { - std::string result; - result += data.first; - result += '='; - result += data.second; - return result; - } + std::string Settings::BuildParam( std::pair < std::string, std::string > const& data ) const + { + std::string result; + result += data.first; + result += '='; + result += data.second; + return result; + } } diff --git a/src/logger/journal.cpp b/src/logger/journal.cpp new file mode 100644 index 0000000..001e87d --- /dev/null +++ b/src/logger/journal.cpp @@ -0,0 +1,11 @@ +#include <iostream> + +#include "journal.hpp" + +namespace smtp::logger +{ + void Journal::LogError( std::string const& message ) const + { + std::cout << message << std::endl; + } +}
\ No newline at end of file diff --git a/src/logger/journal.hpp b/src/logger/journal.hpp new file mode 100644 index 0000000..1b06b8c --- /dev/null +++ b/src/logger/journal.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "types/ilogger.hpp" + +namespace smtp::logger +{ + class Journal + : public types::ILogger + { + public: + Journal() = default; + ~Journal() override = default; + + void LogError( std::string const& message ) const override; + }; +} + diff --git a/src/logger/logger_set.cpp b/src/logger/logger_set.cpp new file mode 100644 index 0000000..6ea6d58 --- /dev/null +++ b/src/logger/logger_set.cpp @@ -0,0 +1,45 @@ +#include "logger_set.hpp" +#include "journal.hpp" +#include "phosphor.hpp" +#include <iostream> +namespace smtp::logger +{ + std::shared_ptr < LoggerSet > LoggerSet::mInstance = nullptr; + + LoggerSet::LoggerSet( std::list < types::ILoggerPtr > const& logger ) + : mLogger( logger ) + { + + } + + std::shared_ptr < LoggerSet > LoggerSet::GetInstance() + { + if( !mInstance ) + { + BuildLogger(); + } + return mInstance; + } + + void LoggerSet::BuildLogger() + { + std::list < types::ILoggerPtr > loggers; +#ifdef ADD_JOURNAL_LOGGING + loggers.push_back( std::make_shared < Journal >()); +#endif +#ifdef ADD_PHOSPHOR_LOGGING + loggers.push_back( std::make_shared < Phosphor >()); +#endif + mInstance.reset( new LoggerSet( loggers )); + } + + void LoggerSet::LogError( std::string const& message ) + { + for( const auto& logger: mLogger ) + { + logger->LogError( message ); + } + } + + +} diff --git a/src/logger/logger_set.hpp b/src/logger/logger_set.hpp new file mode 100644 index 0000000..fb74e56 --- /dev/null +++ b/src/logger/logger_set.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include <string> +#include <list> + +#include "types/ilogger.hpp" + +namespace smtp::logger +{ + class LoggerSet + { + private: + explicit LoggerSet( std::list < types::ILoggerPtr > const& logger ); + static void BuildLogger(); + + static std::shared_ptr < LoggerSet > mInstance; + std::list < types::ILoggerPtr > mLogger; + public: + LoggerSet( const LoggerSet& ) = delete; + LoggerSet& operator=( LoggerSet& ) = delete; + + void LogError( std::string const& message ); + static std::shared_ptr < LoggerSet > GetInstance(); + }; +} diff --git a/src/logger/phosphor.cpp b/src/logger/phosphor.cpp new file mode 100644 index 0000000..d3c81b0 --- /dev/null +++ b/src/logger/phosphor.cpp @@ -0,0 +1,15 @@ +#include <phosphor-logging/elog-errors.hpp> +#include <phosphor-logging/elog.hpp> +#include <xyz/openbmc_project/Common/error.hpp> + +#include "phosphor.hpp" + +namespace smtp::logger +{ + void Phosphor::LogError( std::string const& message ) const + { + using InternalFailure = + sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; + phosphor::logging::commit<InternalFailure>(message); + } +}
\ No newline at end of file diff --git a/src/logger/phosphor.hpp b/src/logger/phosphor.hpp new file mode 100644 index 0000000..dd536b5 --- /dev/null +++ b/src/logger/phosphor.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "types/ilogger.hpp" + +namespace smtp::logger +{ + class Phosphor + : public types::ILogger + { + public: + Phosphor() = default; + ~Phosphor() override = default; + + void LogError( std::string const& message ) const override; + }; +} diff --git a/src/logger/types/ilogger.hpp b/src/logger/types/ilogger.hpp new file mode 100644 index 0000000..9f88668 --- /dev/null +++ b/src/logger/types/ilogger.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include <memory> + +namespace smtp::logger::types +{ + class ILogger + { + public: + virtual ~ILogger() = default; + + virtual void LogError( std::string const& message ) const = 0; + }; + using ILoggerPtr = std::shared_ptr<ILogger>; +}
\ No newline at end of file diff --git a/src/management/logger.cpp b/src/management/logger.cpp deleted file mode 100644 index 0c55394..0000000 --- a/src/management/logger.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include <iostream> - -#include "logger.hpp" - -namespace smtp::manage -{ - void Logger::LogError( std::string const& message ) - { - std::cout << message << std::endl; - } - -} diff --git a/src/management/logger.hpp b/src/management/logger.hpp deleted file mode 100644 index 315e17e..0000000 --- a/src/management/logger.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include <string> - -namespace smtp::manage -{ - class Logger - { - public: - Logger() = default; - static void LogError( std::string const& message ); - }; -} diff --git a/src/message/sender.cpp b/src/message/sender.cpp index c617a16..5845628 100644 --- a/src/message/sender.cpp +++ b/src/message/sender.cpp @@ -1,4 +1,4 @@ -#include <string.h> +#include <cstring> #include "sender.hpp" #include "builder/date.hpp" @@ -7,128 +7,130 @@ #include "builder/subject.hpp" #include "builder/text.hpp" #include "builder/from.hpp" -#include "management/logger.hpp" +#include "logger/logger_set.hpp" namespace smtp::message { - static std::string mText = ""; - - // - // Constructors/Destructors - // - Sender::Sender( manage::Settings& settings_storage, manage::Mail const& mail_to ) - : mSettingsStorage( settings_storage ), - mMailTo( mail_to ) - { - - } - - // - //Public methods - // - - bool Sender::Send( std::string const& mail_from, std::string const& subject, std::string const& text ) - { - CURLcode result = CURLE_OK; - curl_slist *recipients = NULL; - WriteThis upload_ctx{}; - auto curl = curl_easy_init(); - - //TODO сделать инициализацию через регистратор инициализаторов - mSettingsStorage.ReloadSettings(); - if( !InitCurl( curl, upload_ctx, mail_from ) ) - { - manage::Logger::LogError("Error to initializate curl"); - return false; - } - //TODO раздать mail_to другим методам - auto mail_to = mMailTo.GetMailToSend(); - if( mail_to.empty() ) - { - manage::Logger::LogError("We haven't any mail to"); - return false; - } - FillRecipients( curl, recipients ); - UpdateMailText( mail_from, subject, text); - - result = curl_easy_perform(curl); - - if ( result != CURLE_OK ) - { - std::string message = "Error to send messge: " + std::string( curl_easy_strerror( result )); - manage::Logger::LogError(message); - return false; - } - //TODO сделать деинициализацию через регистратор деинициализаторов - curl_slist_free_all( recipients ); - curl_easy_cleanup( curl ); - return true; - } - - // - //Private methods - // - bool smtp::message::Sender::InitCurl( CURL* curl, WriteThis const& upload_ctx, std::string const& mail_from ) - { - if( !curl ) - { - return false; - } - curl_easy_setopt(curl, CURLOPT_USERNAME, mSettingsStorage.GetUserName().c_str()); - curl_easy_setopt(curl, CURLOPT_PASSWORD, mSettingsStorage.GetPassword().c_str()); - curl_easy_setopt(curl, CURLOPT_URL, GetHostPortData().c_str()); - - curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL); - curl_easy_setopt(curl, CURLOPT_MAIL_FROM, mail_from.c_str()); - - curl_easy_setopt(curl, CURLOPT_READFUNCTION, ReadCallBack); - curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx); - curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - return true; - } - - void Sender::UpdateMailText( std::string const& mail_from, std::string const& subject, std::string const& text ) const - { - auto mail_to = mMailTo.GetMailToSend(); - auto text_decorator = std::make_shared<builder::Text>( text ); - text_decorator->Apply( std::make_shared<builder::Subject>( subject ) ) - .Apply( std::make_shared<builder::Cc>( mail_to ) ) - .Apply( std::make_shared<builder::From>( mail_from ) ) - .Apply( std::make_shared<builder::MailTo>( mail_to ) ) - .Apply( std::make_shared<builder::Date>() ); - mText = text_decorator->Get(); - } - - void Sender::FillRecipients( CURL* curl, curl_slist* recipients ) - { - auto mail_to = mMailTo.GetMailToSend(); - for( const auto& recipient : mail_to ) - { - recipients = curl_slist_append( recipients, recipient.c_str() ); - } - - curl_easy_setopt( curl, CURLOPT_MAIL_RCPT, recipients ); - } - - std::string Sender::GetHostPortData() const - { - auto result = "smtp://" + mSettingsStorage.GetHost(); - if( !mSettingsStorage.GetPort().empty() ) - { - result += ":" + mSettingsStorage.GetPort(); - } - return result; - } - //TODO Надо убрать этот ужас. Без статики!!! - size_t Sender::ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp ) - { - struct WriteThis *pooh = reinterpret_cast<WriteThis*>( userp ); - if( size * nmemb < 1 || pooh->counter++ > 0 ) - { - return 0; - } - memcpy( ptr, mText.c_str(), mText.size() ); - return mText.size(); - } + static std::string mText; + + // + // Constructors/Destructors + // + Sender::Sender( manage::Settings& settings_storage, manage::Mail const& mail_to ) + : mSettingsStorage( settings_storage ) + , mMailTo( mail_to ) + { + + } + + // + //Public methods + // + + bool Sender::Send( std::string const& mail_from, std::string const& subject, std::string const& text ) + { + CURLcode result = CURLE_OK; + curl_slist* recipients = nullptr; + WriteThis upload_ctx{}; + auto curl = curl_easy_init(); + + //TODO сделать инициализацию через регистратор инициализаторов + mSettingsStorage.ReloadSettings(); + if( !InitCurl( curl, upload_ctx, mail_from )) + { + logger::LoggerSet::GetInstance()->LogError( "Error to initializate curl" ); + return false; + } + //TODO раздать mail_to другим методам + auto mail_to = mMailTo.GetMailToSend(); + if( mail_to.empty()) + { + logger::LoggerSet::GetInstance()->LogError( "We haven't any mail to" ); + return false; + } + FillRecipients( curl, recipients ); + UpdateMailText( mail_from, subject, text ); + + result = curl_easy_perform( curl ); + + if( result != CURLE_OK ) + { + std::string message = "Error to send messge: " + std::string( curl_easy_strerror( result )); + logger::LoggerSet::GetInstance()->LogError( message ); + return false; + } + //TODO сделать деинициализацию через регистратор деинициализаторов + curl_slist_free_all( recipients ); + curl_easy_cleanup( curl ); + return true; + } + + // + //Private methods + // + bool smtp::message::Sender::InitCurl( CURL* curl, WriteThis const& upload_ctx, std::string const& mail_from ) + { + if( !curl ) + { + return false; + } + curl_easy_setopt( curl, CURLOPT_USERNAME, mSettingsStorage.GetUserName().c_str()); + curl_easy_setopt( curl, CURLOPT_PASSWORD, mSettingsStorage.GetPassword().c_str()); + curl_easy_setopt( curl, CURLOPT_URL, GetHostPortData().c_str()); + + curl_easy_setopt( curl, CURLOPT_USE_SSL, ( long ) CURLUSESSL_ALL ); + curl_easy_setopt( curl, CURLOPT_MAIL_FROM, mail_from.c_str()); + + curl_easy_setopt( curl, CURLOPT_READFUNCTION, ReadCallBack ); + curl_easy_setopt( curl, CURLOPT_READDATA, &upload_ctx ); + curl_easy_setopt( curl, CURLOPT_UPLOAD, 1L ); + curl_easy_setopt( curl, CURLOPT_VERBOSE, 1L ); + return true; + } + + void + Sender::UpdateMailText( std::string const& mail_from, std::string const& subject, std::string const& text ) const + { + auto mail_to = mMailTo.GetMailToSend(); + auto text_decorator = std::make_shared < builder::Text >( text ); + text_decorator->Apply( std::make_shared < builder::Subject >( subject )) + .Apply( std::make_shared < builder::Cc >( mail_to )) + .Apply( std::make_shared < builder::From >( mail_from )) + .Apply( std::make_shared < builder::MailTo >( mail_to )) + .Apply( std::make_shared < builder::Date >()); + mText = text_decorator->Get(); + } + + void Sender::FillRecipients( CURL* curl, curl_slist* recipients ) + { + auto mail_to = mMailTo.GetMailToSend(); + for( const auto& recipient: mail_to ) + { + recipients = curl_slist_append( recipients, recipient.c_str()); + } + + curl_easy_setopt( curl, CURLOPT_MAIL_RCPT, recipients ); + } + + std::string Sender::GetHostPortData() const + { + auto result = "smtp://" + mSettingsStorage.GetHost(); + if( !mSettingsStorage.GetPort().empty()) + { + result += ":" + mSettingsStorage.GetPort(); + } + return result; + } + + //TODO Надо убрать этот ужас. Без статики!!! + size_t Sender::ReadCallBack( void* ptr, size_t size, size_t nmemb, void* userp ) + { + auto pooh = reinterpret_cast<WriteThis*>( userp ); + if( size * nmemb < 1 || pooh->counter++ > 0 ) + { + return 0; + } + memcpy( ptr, mText.c_str(), mText.size()); + return mText.size(); + } } diff --git a/src/service/smtp.cpp b/src/service/smtp.cpp index 702de2d..7b1ca70 100644 --- a/src/service/smtp.cpp +++ b/src/service/smtp.cpp @@ -11,7 +11,7 @@ namespace smtp::service :mSettingsStorage(settings), mMailTo(mail_to) { CreateService( connection ); - CreateMessagerInterface( connection ); + CreateMessengerInterface( connection ); CreateSettingsManagerInterface( connection ); CreateMailManagerInterface( connection ); } @@ -27,17 +27,17 @@ namespace smtp::service connection->request_name( SMTP_BUS_NAME ); } - void Smtp::CreateMessagerInterface( ConnectionPtr connection ) + void Smtp::CreateMessengerInterface( ConnectionPtr connection ) { static constexpr char SMTP_OBJECT_NAME[] = "/xyz/openbmc_project/SMTP/Messenger"; static constexpr char SMTP_INTERFACE_NAME[] = "xyz.openbmc_project.Messenger"; mObjectServer = std::make_shared<sdbusplus::asio::object_server>( connection ); - mMessagerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); + mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME ); - AddMessagerMethods(); + AddMessengerMethods(); - mMessagerInterface->initialize(); + mMessengerInterface->initialize(); } void Smtp::CreateSettingsManagerInterface(ConnectionPtr connection) @@ -66,13 +66,13 @@ namespace smtp::service mManagerMailInterface->initialize(); } - void Smtp::AddMessagerMethods() + void Smtp::AddMessengerMethods() { static constexpr char SMTP_SEND_MESSAGE_METHOD_NAME[] = "SendMail"; - mMessagerInterface->register_method(SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& mail_from, - std::string const& theme, - std::string const& text ) + mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& mail_from, + std::string const& theme, + std::string const& text ) { return message::Sender{ mSettingsStorage, mMailTo }.Send( mail_from, theme, text );}); } diff --git a/src/service/smtp.hpp b/src/service/smtp.hpp index 1c71acc..47ff209 100644 --- a/src/service/smtp.hpp +++ b/src/service/smtp.hpp @@ -20,21 +20,15 @@ namespace smtp::service Smtp( ConnectionPtr connection, manage::Settings const& settings, manage::Mail const& mail_to ); ~Smtp() = default; private: - void FillStorageByDefault(); void CreateService( ConnectionPtr bus ); - void CreateMessagerInterface( ConnectionPtr connection ); + void CreateMessengerInterface( ConnectionPtr connection ); void CreateSettingsManagerInterface( ConnectionPtr connection ); void CreateMailManagerInterface( ConnectionPtr connection ); - void AddProperties(); - void AddMessagerMethods(); + void AddMessengerMethods(); void AddSettingsManagerMethods(); void AddMailManagerMethods(); - bool RefreshSettings( bool is_need_auth, bool is_need_ssl, - std::string const& user, std::string const& password, - std::string const& host, std::string const& port ); - - InterfacePtr mMessagerInterface; + InterfacePtr mMessengerInterface; InterfacePtr mManagerSettingsInterface; InterfacePtr mManagerMailInterface; |