diff options
author | claiff <claiff@mail.ru> | 2022-09-19 14:03:14 +0300 |
---|---|---|
committer | claiff <claiff@mail.ru> | 2022-09-21 14:28:10 +0300 |
commit | 7a446d48b9270dbe2628b462a54a7a23ff43c572 (patch) | |
tree | 8e677b755c3cb529a40ee17078828bc8cc73bf31 /src/checker/errors/settings/host_number.cpp | |
parent | 629929ebbe386277c25740bc0f4971aac38444d0 (diff) | |
download | obmc-sila-smtp-7a446d48b9270dbe2628b462a54a7a23ff43c572.tar.xz |
temp
Diffstat (limited to 'src/checker/errors/settings/host_number.cpp')
-rw-r--r-- | src/checker/errors/settings/host_number.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
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 <stdexcept> +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; + } +} |