From 7fcd35b7ad0fa2b0a49c5cdd9a62e23412bf8731 Mon Sep 17 00:00:00 2001 From: claiff Date: Fri, 30 Sep 2022 12:21:34 +0300 Subject: Add checking mails Add check server fix add simillar mails --- src/checker/errors/settings/server.cpp | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/checker/errors/settings/server.cpp (limited to 'src/checker/errors/settings/server.cpp') diff --git a/src/checker/errors/settings/server.cpp b/src/checker/errors/settings/server.cpp new file mode 100644 index 0000000..c3f29af --- /dev/null +++ b/src/checker/errors/settings/server.cpp @@ -0,0 +1,39 @@ +#include + +#include "server.hpp" +#include "logger/logger_set.hpp" + +namespace smtp::checker::errors::settings +{ + // + //Public methods + // + bool Server::Check( manage::SettingsFileDataType const& line ) const + { + static const std::string SERVER_FIELD = "host"; + + auto find = line.find( SERVER_FIELD ); + if( find == line.end() ) + { + logger::LoggerSet::GetInstance()->LogError( GetMethodName(), "Host doesn't found" ); + return false; + } + return IsNormalName( find->second ) || IsIpName( find->second ); + } + + // + //Private methods + // + bool Server::IsNormalName( std::string const& line ) const + { + std::string mask = "^[a-zA-Z](?:\.?[a-zA-Z0-9 ]+)+$"; + return std::regex_search( line, std::regex{mask} ); + } + + bool Server::IsIpName( std::string const& line) const + { + std::string mask = "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; + return std::regex_search( line, std::regex{mask} ); + } + +} -- cgit v1.2.3