summaryrefslogtreecommitdiff
path: root/src/service/smtp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/smtp.cpp')
-rw-r--r--src/service/smtp.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/service/smtp.cpp b/src/service/smtp.cpp
index 3c71161..6c2f1ad 100644
--- a/src/service/smtp.cpp
+++ b/src/service/smtp.cpp
@@ -14,6 +14,10 @@ namespace smtp::service
CreateMessengerInterface( connection );
CreateSettingsManagerInterface( connection );
CreateMailManagerInterface( connection );
+
+ message::Sender sender{mSettingsStorage, mMailTo, mMessageQueue};
+ std::thread sender_message( &message::Sender::Send, std::move(sender) );
+ sender_message.detach();
}
//
@@ -33,9 +37,9 @@ namespace smtp::service
static constexpr char SMTP_INTERFACE_NAME[] = "xyz.openbmc_project.Messenger";
mObjectServer = std::make_shared<sdbusplus::asio::object_server>( connection );
- mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME );
+ mMessengerInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME );
- AddMessengerMethods();
+ AddMessengerMethods();
mMessengerInterface->initialize();
}
@@ -70,10 +74,9 @@ namespace smtp::service
{
static constexpr char SMTP_SEND_MESSAGE_METHOD_NAME[] = "SendMail";
- 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 );});
+ mMessengerInterface->register_method( SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& theme,
+ std::string const& text )
+ { mMessageQueue.Push({theme, text});});
}
void Smtp::AddSettingsManagerMethods()