summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreportnov <eportnov@ibs.ru>2022-09-09 12:47:21 +0300
committereportnov <eportnov@ibs.ru>2022-09-09 12:48:14 +0300
commit11ecce5d84de881233342847faae24b9be314a47 (patch)
tree5f9d9f998b1227a64f5b5549771e6fee1ada2b52
parentb4ee6951877dda289ad12adaf3cc470d8a27190e (diff)
downloadopenbmc-11ecce5d84de881233342847faae24b9be314a47.tar.xz
add smtp to git
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb2
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/CMakeLists.txt118
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/main.cpp14
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.cpp31
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.hpp21
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.cpp16
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.hpp17
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.cpp22
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.hpp19
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.cpp23
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.hpp21
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.cpp21
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.hpp19
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.cpp24
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.hpp19
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/idecorator.hpp82
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/imessage_build.hpp14
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.cpp123
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.hpp48
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/settings_storage.hpp14
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.cpp96
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.hpp36
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/files/xyz.openbmc_project.SMTP.service9
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-support/smtp/smtp.bb43
24 files changed, 12 insertions, 840 deletions
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb
index 4e4d0f3107..b44f5ddd6c 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb
@@ -7,7 +7,7 @@ PV = "1.0+git${SRCPV}"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-SRC_URI = "git://git@git.sila.ru/srv/pub/scm/git/openbmc/obmc-sila-snmp.git;branch=master;protocol=ssh"
+SRC_URI = "http://git.sila.ru/openbmc/obmc-sila-smtp.git/;branch=master"
SRCREV = "a7db2279b461f7aa6659e262962fc50ca98eb901"
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/CMakeLists.txt b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/CMakeLists.txt
deleted file mode 100644
index 4d93f95770..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/CMakeLists.txt
+++ /dev/null
@@ -1,118 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-
-project(smtp LANGUAGES CXX)
-
-cmake_policy(SET CMP0054 NEW)
-
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fno-rtti")
-# Silence sdbusplus warnings
-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")
-
-if(NOT ${YOCTO_DEPENDENCIES})
- include(ExternalProject)
-
- ExternalProject_Add(
- Boost
- URL "https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2"
- URL_MD5 "33334dd7f862e8ac9fe1cc7c6584fb6d"
- SOURCE_DIR ${CMAKE_BINARY_DIR}/src/boost
- BINARY_DIR ${CMAKE_BINARY_DIR}/libs/boost
- CONFIGURE_COMMAND cd <SOURCE_DIR> && ./bootstrap.sh
- BUILD_COMMAND cd <SOURCE_DIR> && ./b2 --exec-prefix=<BINARY_DIR>
- --prefix=<BINARY_DIR> --with-system --with-coroutine install
- INSTALL_COMMAND ""
- UPDATE_COMMAND "")
-
- set(CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/libs/boost/ ${CMAKE_PREFIX_PATH})
- include_directories(SYSTEM ${CMAKE_BINARY_DIR}/libs/boost/include)
- link_directories(SYSTEM ${CMAKE_BINARY_DIR}/libs/boost/lib)
-
- ExternalProject_Add(
- sdbusplus-project
- PREFIX ${CMAKE_BINARY_DIR}/sdbusplus-project
- GIT_REPOSITORY https://github.com/openbmc/sdbusplus.git
- GIT_TAG afe80cf2e5dc4aefe3b041adeb0230e61929bf12
- SOURCE_DIR ${CMAKE_BINARY_DIR}/sdbusplus-src
- BINARY_DIR ${CMAKE_BINARY_DIR}/sdbusplus-build
- CONFIGURE_COMMAND ""
- BUILD_COMMAND cd ${CMAKE_BINARY_DIR}/sdbusplus-src && ./bootstrap.sh &&
- ./configure --enable-transaction && make -j libsdbusplus.la
- INSTALL_COMMAND ""
- LOG_DOWNLOAD ON
- UPDATE_COMMAND "")
-
- include_directories(${CMAKE_BINARY_DIR}/sdbusplus-src)
- link_directories(${CMAKE_BINARY_DIR}/sdbusplus-src/.libs)
-
- # Boost related definitions
- add_definitions(-DBOOST_COROUTINES_NO_DEPRECATION_WARNING)
- add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
- add_definitions(-DBOOST_SYSTEM_NO_DEPRECATED)
- add_definitions(-DBOOST_ALL_NO_LIB)
- add_definitions(-DBOOST_NO_RTTI)
- add_definitions(-DBOOST_NO_TYPEID)
- add_definitions(-DBOOST_ASIO_DISABLE_THREADS)
-else()
- # Include Boost library. This allows specify exact version of BOOST to be
- # used, especially important while using valgrind, to point BOOST that is
- # compiled with valgrind support
- 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})
-endif()
-
-include_directories(src)
-
-set(SRC_DIR src)
-set(SRC_FILES
- ${SRC_DIR}/main.cpp
- ${SRC_DIR}/smtp_service.cpp
- ${SRC_DIR}/smtp_service.hpp
- ${SRC_DIR}/message_sender.hpp
- ${SRC_DIR}/message_sender.cpp
- ${SRC_DIR}/settings_storage.hpp
-
- ${SRC_DIR}/message_builder/date.hpp
- ${SRC_DIR}/message_builder/date.cpp
- ${SRC_DIR}/message_builder/mail_to.hpp
- ${SRC_DIR}/message_builder/mail_to.cpp
- ${SRC_DIR}/message_builder/cc.hpp
- ${SRC_DIR}/message_builder/cc.cpp
- ${SRC_DIR}/message_builder/subject.hpp
- ${SRC_DIR}/message_builder/subject.cpp
- ${SRC_DIR}/message_builder/text.hpp
- ${SRC_DIR}/message_builder/text.cpp
- ${SRC_DIR}/message_builder/from.hpp
- ${SRC_DIR}/message_builder/from.cpp
-
- ${SRC_DIR}/message_builder/types/idecorator.hpp
- )
-
-add_executable(smtp ${SRC_FILES})
-if(NOT ${YOCTO_DEPENDENCIES})
- add_dependencies(smtp sdbusplus-project)
-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(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(FILES ${PROJECT_SOURCE_DIR}/xyz.openbmc_project.SMTP.service
- DESTINATION /lib/systemd/system/)
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/main.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/main.cpp
deleted file mode 100644
index ba2848da3e..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/main.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <sdbusplus/asio/connection.hpp>
-
-#include "smtp_service.hpp"
-
-int main()
-{
- boost::asio::io_service io_context;
-
- auto connection = std::make_shared<sdbusplus::asio::connection>( io_context );
- smtp::SmtpService smtp{ connection };
-
- io_context.run();
- return 0;
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.cpp
deleted file mode 100644
index c686ef2057..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "cc.hpp"
-
-namespace smtp::message_builder
-{
- Cc::Cc( std::list<std::string> const& mail_to )
- : mMailTo( mail_to )
- {
-
- }
-
- std::string Cc::Get() const
- {
- std::string result;
- if( mBase )
- {
- result = mBase->Get();
- }
-
- if( mMailTo.empty() )
- {
- return result;
- }
-
- for(const auto& cc : mMailTo)
- {
- result += "Cc: " + cc + "\r\n";
- }
-
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.hpp
deleted file mode 100644
index 5062c370ad..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/cc.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-#include <list>
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class Cc : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- explicit Cc( std::list<std::string> const& mail_to );
- ~Cc() override = default;
-
- std::string Get() const override;
- private:
- std::list<std::string> const& mMailTo;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.cpp
deleted file mode 100644
index 96ee2e155d..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "date.hpp"
-
-namespace smtp::message_builder
-{
- std::string Date::Get() const
- {
- std::string result;
-
- if( mBase )
- {
- result = mBase->Get();
- }
- result += "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n";
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.hpp
deleted file mode 100644
index 00fb6cbb15..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/date.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class Date : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- Date() = default;
- ~Date() override = default;
-
- std::string Get() const override;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.cpp
deleted file mode 100644
index 094e1a2fa4..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "from.hpp"
-
-namespace smtp::message_builder
-{
-
- From::From( std::string const& mail_to )
- :mMailTo( mail_to )
- {
-
- }
-
- std::string From::Get() const
- {
- std::string result;
- if( mBase )
- {
- result = mBase->Get();
- }
- result += "From: " + mMailTo + "\r\n";
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.hpp
deleted file mode 100644
index 4605469b87..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/from.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class From : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- explicit From( std::string const& mail_to );
- ~From() override = default;
-
- std::string Get() const override;
- private:
- std::string const& mMailTo;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.cpp
deleted file mode 100644
index c73e2a7888..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "mail_to.hpp"
-
-namespace smtp::message_builder
-{
- MailTo::MailTo( std::string const& mail_to)
- : mMailTo( mail_to )
- {
-
- }
-
- std::string MailTo::Get() const
- {
- std::string result;
- if( mBase )
- {
- result = mBase->Get();
- }
-
- result += "To: " + mMailTo +"\r\n";
-
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.hpp
deleted file mode 100644
index 0245fd69a6..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/mail_to.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-#include <list>
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class MailTo : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- explicit MailTo( std::string const& mail_to );
- ~MailTo() override = default;
-
- std::string Get() const override;
- private:
- std::string const& mMailTo;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.cpp
deleted file mode 100644
index 84e7e43e07..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "subject.hpp"
-
-namespace smtp::message_builder
-{
- Subject::Subject( std::string const& subject )
- : mSubject(subject)
- {
-
- }
-
- std::string Subject::Get() const
- {
- std::string result;
- if( mBase )
- {
- result = mBase->Get();
- }
- result += "Subject: " + mSubject + "\r\n";
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.hpp
deleted file mode 100644
index bf8bfab591..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/subject.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class Subject : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- explicit Subject( std::string const& subject );
- ~Subject() override = default;
-
- std::string Get() const override;
- private:
- std::string const& mSubject;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.cpp
deleted file mode 100644
index e5e6bf069c..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "text.hpp"
-
-namespace smtp::message_builder
-{
- Text::Text( std::string const& text)
- : mText( text )
- {
-
- }
-
- std::string Text::Get() const
- {
- std::string result;
- if( mBase )
- {
- result = mBase->Get();
- }
-
- result += "\r\n";
- result += mText + "\r\n";
-
- return result;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.hpp
deleted file mode 100644
index 4df90e15c9..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/text.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "types/idecorator.hpp"
-#include "types/imessage_build.hpp"
-
-namespace smtp::message_builder
-{
- class Text : public types::IDecorator<types::IMessageBuilder>
- {
- public:
- explicit Text( std::string const& text );
- ~Text() override = default;
-
- std::string Get() const override;
- private:
- std::string const& mText;
- };
-}
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/idecorator.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/idecorator.hpp
deleted file mode 100644
index 3fabcd4902..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/idecorator.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#pragma once
-
-#include <memory>
-
-namespace smtp::message_builder::types
-{
-
-/**
- * @brief Базовый интерфейс описания декоратора
- * @details См. https://refactoring.guru/ru/design-patterns/decorator
- * @tparam T Тип декорируемого класса, T должен обладать возможностью наследования (в том числе виртуальный деструктор)
- */
- template < typename T, typename TPointerType = std::shared_ptr<T> > class IDecorator : public T
- {
- public:
- using PointerType = TPointerType;
- using Type = IDecorator<T, TPointerType>;
-
- ~IDecorator() override = default;
-
- /**
- * @brief Установить указатель на декорируемый класс
- * @details По возможности используйте метод Apply() как наиболее универсальный
- * @param base Указатель на декорируемый класс
- */
- void SetBase( PointerType const& base ) noexcept
- {
- mBase = base;
- }
-
- void SetBase( PointerType&& base ) noexcept
- {
- mBase = std::move( base );
- }
-
- /**
- * @brief Установить указатель на декорируемый класс (цепочка обязанностей)
- * @details См. https://refactoring.guru/ru/design-patterns/chain-of-responsibility/cpp/example
- * @details Цепь вызовов: декоратор1 -> декоратор2 -> базовый класс
- * @param base_or_decorator Указатель на декорируемый класс или целевой декоратор
- */
- Type& Apply( PointerType const& base_or_decorator ) noexcept
- {
- if( !base_or_decorator )
- {
- return *this;
- }
-
- SetBase( base_or_decorator );
- return GetApplyResult();
- }
-
- Type& Apply( PointerType&& base_or_decorator ) noexcept
- {
- if( !base_or_decorator )
- {
- return *this;
- }
-
- SetBase( std::move( base_or_decorator ) );
- return GetApplyResult();
- }
-
- private:
- Type& GetApplyResult() noexcept
- {
- auto as_decorator = dynamic_cast< Type * >( mBase.get() );
- if( as_decorator )
- {
- return *as_decorator;
- }
-
- return *this;
- }
-
- protected:
- PointerType mBase;
- };
-
- template < typename T, typename TDeleter = std::default_delete<T> > using IDecoratorUnique = IDecorator<T, std::unique_ptr<T, TDeleter> >;
-
-} // namespace sbis::devices::generic::types
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/imessage_build.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/imessage_build.hpp
deleted file mode 100644
index 4c4f1b8be1..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_builder/types/imessage_build.hpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#include <string>
-
-namespace smtp::message_builder::types
-{
- class IMessageBuilder
- {
- public:
- virtual ~IMessageBuilder() = default;
-
- virtual std::string Get() const = 0;
- };
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.cpp
deleted file mode 100644
index 5b2950ca7f..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include <string.h>
-
-#include "message_sender.hpp"
-#include "message_builder/date.hpp"
-#include "message_builder/mail_to.hpp"
-#include "message_builder/cc.hpp"
-#include "message_builder/subject.hpp"
-#include "message_builder/text.hpp"
-#include "message_builder/from.hpp"
-
-namespace smtp
-{
- static std::string mText = "";
-
- //
- // Constructors/Destructors
- //
- MessageSender::MessageSender( SettingsStorage const& settings_storage )
- : mSettingsStorage( settings_storage )
- {
-
- }
-
- //
- //Public methods
- //
- bool MessageSender::Send( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc,
- std::string const& subject, std::string const& text )
- {
- CURLcode result = CURLE_OK;
-
- struct curl_slist *recipients = NULL;
- struct WriteThis upload_ctx;
-
- upload_ctx.counter = 0;
-
- auto curl = curl_easy_init();
-
- if( !curl )
- {
- //Error
- return false;
- }
- mText = GetText( mail_from, mail_to, cc, subject, text);
- FillRecipients( curl, mail_to, cc, recipients );
-
- curl_easy_setopt(curl, CURLOPT_USERNAME, mSettingsStorage.username.c_str());
- curl_easy_setopt(curl, CURLOPT_PASSWORD, mSettingsStorage.password.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);
-
- result = curl_easy_perform(curl);
-
- if (result != CURLE_OK)
- {
- fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(result));
- return false;
- }
-
- curl_slist_free_all(recipients);
- curl_easy_cleanup(curl);
- return true;
- }
-
- //
- //Private methods
- //
- std::string MessageSender::GetText( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc,
- std::string const& subject, std::string const& text ) const
- {
- auto text_decorator = std::make_shared<message_builder::Text>( text );
- text_decorator->Apply( std::make_shared<message_builder::Subject>( subject ) )
- .Apply( std::make_shared<message_builder::Cc>( cc ) )
- .Apply( std::make_shared<message_builder::From>( mail_from ) )
- .Apply( std::make_shared<message_builder::MailTo>( mail_to ) )
- .Apply( std::make_shared<message_builder::Date>() );
- return text_decorator->Get();
- }
-
- void MessageSender::FillRecipients( CURL* curl, std::string const& mail_to, std::list<std::string> const& cc, curl_slist* recipients )
- {
- recipients = curl_slist_append( recipients, mail_to.c_str() );
-
- for( const auto& recipient : cc )
- {
- recipients = curl_slist_append( recipients, recipient.c_str() );
- }
-
- curl_easy_setopt( curl, CURLOPT_MAIL_RCPT, recipients );
- }
-
- std::string MessageSender::GetHostPortData() const
- {
- auto result = "smtp://" + mSettingsStorage.host;
- if( !mSettingsStorage.port.empty() )
- {
- result += ":" + mSettingsStorage.port;
- }
- return result;
- }
-
- size_t MessageSender::ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp )
- {
- struct WriteThis *pooh = reinterpret_cast<WriteThis*>( userp );
- if( size * nmemb < 1 )
- {
- return 0;
- }
- if( pooh->counter++ > 0 )
- {
- return 0;
- }
- memcpy( ptr, mText.c_str(), mText.size() );
- return mText.size();
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.hpp
deleted file mode 100644
index 0728f0ee1f..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/message_sender.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#pragma once
-
-#include <list>
-#include <memory>
-
-#include <curl/curl.h>
-
-#include "settings_storage.hpp"
-
-namespace smtp
-{
- struct WriteThis
- {
- int counter;
- };
-
- class MessageSender
- {
- public:
- MessageSender( SettingsStorage const& settings_storage );
- ~MessageSender() = default;
-
- bool Send( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc,
- std::string const& subject, std::string const& text );
- private:
- std::string GetText( std::string const& mail_from, std::string const& mail_to, std::list<std::string> const& cc,
- std::string const& subject, std::string const& textt ) const;
- void InitSenders( std::string const& mail_from, std::list<std::string> const& mail_to );
- void FillRecipients( CURL* curl, std::string const& mail_to, std::list<std::string> const& cc, curl_slist* recipients );
- std::string GetHostPortData() const;
- void ProcessSending(const std::string &mail_from, const std::list<std::string> &mail_to, const std::string &subject, const std::string &text);
- timeval GetNowTime() const noexcept;
- bool IsTimeOut( timeval const& start_time ) const noexcept;
- long GetTimeDiff( timeval const& left, timeval const& right ) const noexcept;
- timeval GetTimeout() const;
- int ProcessHandle( timeval& timeout ) const;
- void ClearPtrs();
- static size_t ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp );
-
-// CURL *curl;
-// CURLM *mcurl;
- struct WriteThis pooh;
- struct curl_slist* recipients = NULL;
- SettingsStorage const& mSettingsStorage;
- };
-}
-
-
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/settings_storage.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/settings_storage.hpp
deleted file mode 100644
index d442d6ff1f..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/settings_storage.hpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#include <string>
-
-namespace smtp
-{
- struct SettingsStorage
- {
- std::string username;
- std::string password;
- std::string host;
- std::string port;
- };
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.cpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.cpp
deleted file mode 100644
index 6235e4c8ca..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#include "smtp_service.hpp"
-#include "message_sender.hpp"
-
-namespace smtp
-{
- static constexpr char HOST_PROPERTY[] = "Host";
- static constexpr char USER_PROPERTY[] = "User";
- static constexpr char PORT_PROPERTY[] = "Port";
-
- //
- // Constructors
- //
-
- SmtpService::SmtpService( ConnectionPtr connection )
- {
- FillStorageByDefault();
- CreateService( connection );
- CreateInterface( connection );
- }
-
- //
- // Private methods
- //
-
- void SmtpService::FillStorageByDefault()
- {
- mStorage.host = "";
- mStorage.username = "";
- mStorage.password = "";
- mStorage.port = "";
- }
-
- void SmtpService::CreateService( ConnectionPtr connection )
- {
- static constexpr char SMTP_BUS_NAME[] = "xyz.openbmc_project.SMTP";
-
- connection->request_name( SMTP_BUS_NAME );
- }
-
- void SmtpService::CreateInterface( ConnectionPtr connection )
- {
- static constexpr char SMTP_OBJECT_NAME[] = "/xyz/openbmc_project/SMTP";
- static constexpr char SMTP_INTERFACE_NAME[] = "xyz.openbmc_project.SMTP";
-
- mObjectServer = std::make_shared<sdbusplus::asio::object_server>( connection );
- mInterface = mObjectServer->add_interface( SMTP_OBJECT_NAME, SMTP_INTERFACE_NAME );
-
- AddProperties();
- AddMethods();
-
- mInterface->initialize();
- }
-
- void SmtpService::AddProperties()
- {
- mInterface->register_property( HOST_PROPERTY, mStorage.host, sdbusplus::asio::PropertyPermission::readOnly );
- mInterface->register_property( USER_PROPERTY, mStorage.username, sdbusplus::asio::PropertyPermission::readOnly );
- mInterface->register_property( PORT_PROPERTY, mStorage.port, sdbusplus::asio::PropertyPermission::readOnly );
- }
-
- void SmtpService::AddMethods()
- {
- static constexpr char SMTP_SEND_MESSAGE_METHOD_NAME[] = "SendMail";
- static constexpr char SMTP_CHANGE_PARAMETERS_METHOD_NAME[] = "ChangeParameters";
-
- mInterface->register_method(SMTP_SEND_MESSAGE_METHOD_NAME, [this]( std::string const& mail_from,
- std::string const& mail_to,
- std::list<std::string> const& cc,
- std::string const& theme,
- std::string const& text )
- { return MessageSender{ mStorage }.Send( mail_from, mail_to, cc, theme, text );});
-
-
- mInterface->register_method(SMTP_CHANGE_PARAMETERS_METHOD_NAME, [this]( std::string const& user,
- std::string const& password,
- std::string const& host,
- std::string const& port )
- { return RefreshSettings(user, password, host, port);});
- }
-
- bool SmtpService::RefreshSettings(std::string const& user,
- std::string const& password,
- std::string const& host,
- std::string const& port)
- {
- mStorage.username = user;
- mStorage.password = password;
- mStorage.host = host;
- mStorage.port = port;
-
- mInterface->set_property(HOST_PROPERTY, host);
- mInterface->set_property(USER_PROPERTY, user);
- mInterface->set_property(PORT_PROPERTY, port);
- return true;
- }
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.hpp b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.hpp
deleted file mode 100644
index 7149e3aef6..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/src/smtp_service.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include <boost/asio/io_service.hpp>
-
-#include <sdbusplus/asio/connection.hpp>
-#include <sdbusplus/asio/object_server.hpp>
-
-#include "settings_storage.hpp"
-
-namespace smtp
-{
- using ConnectionPtr = std::shared_ptr<sdbusplus::asio::connection>;
- using InterfacePtr = std::shared_ptr<sdbusplus::asio::dbus_interface>;
- using ObjectServerPtr = std::shared_ptr<sdbusplus::asio::object_server>;
-
- class SmtpService
- {
- public:
- SmtpService( ConnectionPtr connection );
- ~SmtpService() = default;
- private:
- void FillStorageByDefault();
- void CreateService( ConnectionPtr bus );
- void CreateInterface( ConnectionPtr connection );
- void AddProperties();
- void AddMethods();
- bool RefreshSettings(std::string const& user,
- std::string const& password,
- std::string const& host,
- std::string const& port);
-
- InterfacePtr mInterface;
- ObjectServerPtr mObjectServer;
- SettingsStorage mStorage;
- };
-}
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/xyz.openbmc_project.SMTP.service b/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/xyz.openbmc_project.SMTP.service
deleted file mode 100644
index a7c89ef9c0..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/files/xyz.openbmc_project.SMTP.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=SMTP client
-
-[Service]
-ExecStart=/usr/bin/smtp
-Type=oneshot
-
-[Install]
-WantedBy=basic.target
diff --git a/meta-ibs/meta-cp2-5422/recipes-support/smtp/smtp.bb b/meta-ibs/meta-cp2-5422/recipes-support/smtp/smtp.bb
index 13df29f92d..ffa29826bb 100644
--- a/meta-ibs/meta-cp2-5422/recipes-support/smtp/smtp.bb
+++ b/meta-ibs/meta-cp2-5422/recipes-support/smtp/smtp.bb
@@ -1,39 +1,18 @@
-SUMMARY = "Simple SMTP client"
-DESCRIPTION = "Simple SMTP client"
-
-S = "${WORKDIR}"
+SUMMARY = "Simple SMTP manager"
+DESCRIPTION = "Simple SMTP manager"
+PR = "r1"
+PV = "1.0+git${SRCPV}"
LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "\
- file://${IBSBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658 \
- "
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
-SYSTEMD_SERVICE:${PN} = "xyz.openbmc_project.SMTP.service"
+SRC_URI = "git://git@git.sila.ru/srv/pub/scm/git/openbmc/obmc-sila-smtp.git;branch=master;protocol=ssh"
+SRCREV = "9fa4addff6f90a8b5697a594e034f5517d64dd25"
-DEPENDS = "boost systemd sdbusplus curl"
+S = "${WORKDIR}/git"
inherit cmake systemd
-SRC_URI = "file://xyz.openbmc_project.SMTP.service \
- file://CMakeLists.txt \
- file://src/main.cpp \
- file://src/smtp_service.cpp \
- file://src/smtp_service.hpp \
- file://src/message_sender.cpp \
- file://src/message_sender.hpp \
- file://src/settings_storage.hpp \
- file://src/message_builder/cc.hpp \
- file://src/message_builder/cc.cpp \
- file://src/message_builder/date.hpp \
- file://src/message_builder/date.cpp \
- file://src/message_builder/mail_to.hpp \
- file://src/message_builder/mail_to.cpp \
- file://src/message_builder/from.hpp \
- file://src/message_builder/from.cpp \
- file://src/message_builder/subject.hpp \
- file://src/message_builder/subject.cpp \
- file://src/message_builder/text.hpp \
- file://src/message_builder/text.cpp \
- file://src/message_builder/types/idecorator.hpp \
- file://src/message_builder/types/imessage_build.hpp \
- "
+DEPENDS = "boost systemd sdbusplus curl"
+
+SYSTEMD_SERVICE:${PN} = "xyz.openbmc_project.SMTP.service"