From 7a446d48b9270dbe2628b462a54a7a23ff43c572 Mon Sep 17 00:00:00 2001 From: claiff Date: Mon, 19 Sep 2022 14:03:14 +0300 Subject: temp --- src/checker/errors/settings/host_number.cpp | 36 +++++++++++++++++++++++++++++ src/checker/errors/settings/host_number.hpp | 17 ++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/checker/errors/settings/host_number.cpp create mode 100644 src/checker/errors/settings/host_number.hpp (limited to 'src/checker/errors/settings') diff --git a/src/checker/errors/settings/host_number.cpp b/src/checker/errors/settings/host_number.cpp new file mode 100644 index 0000000..3580265 --- /dev/null +++ b/src/checker/errors/settings/host_number.cpp @@ -0,0 +1,36 @@ +#include "host_number.hpp" +#include "managment/logger.hpp" +#include +namespace smtp::checker::errors::settings +{ + bool HostNumber::Check( const manage::SettingsFileDataType& line ) const + { + //TODO общее использование полей + auto find = line.find("host"); + if(find == line.end()) + { + manage::Logger::LogError("Host doesn't found"); + return false; + } + int host_as_int{}; + auto host_as_string = find->second; + if(host_as_string.empty()) + { + return true; + } + + try + { + host_as_int = std::stoi( host_as_string ); + } + catch( std::invalid_argument const& ex ) + { + manage::Logger::LogError("Host doesn't entered by numbers"); + } + catch( std::out_of_range const& ex ) + { + manage::Logger::LogError("Host out of range"); + } + return host_as_int >= 0 && host_as_int <= 65535; + } +} diff --git a/src/checker/errors/settings/host_number.hpp b/src/checker/errors/settings/host_number.hpp new file mode 100644 index 0000000..1f2bfe7 --- /dev/null +++ b/src/checker/errors/settings/host_number.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "checker/errors/types/isettings_error.hpp" + +namespace smtp::checker::errors::settings +{ + class HostNumber : public types::IErrorSettings + { + public: + HostNumber() = default; + ~HostNumber() override = default; + + virtual bool Check( const manage::SettingsFileDataType& line ) const override; + }; +} + + -- cgit v1.2.3