/
isachkov
/
crypto_server
Обзор
Документация
Войти
/
isachkov
/
crypto_server
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/server_main.cpp
48 строк
1 KB
Ivan Sachkov
CryptoServer
15 май 2024, 20:26
15 май 2024, 20:26
9de0f1f
Код
Авторство
О чём код?
#include <crypto_chat/server.hpp> #include <boost/program_options.hpp> #include <iostream> namespace po = boost::program_options; int main(int argc, char** argv) { po::variables_map variables; po::options_description desc("Usage"); std::string address, port, cert, key; // clang-format off desc.add_options() ("server", po::value<std::string>(&address)->required(), "Crypto server address") ("port", po::value<std::string>(&port)->required(), "Server port") ("cert", po::value<std::string>(&cert)->required(), "Server certificate for TLS exchange") ("key", po::value<std::string>(&key)->required(), "Key paired with the certificate"); // clang-format on try { po::store(po::command_line_parser(argc, argv).options(desc).run(), variables); po::notify(variables); } catch (po::required_option& exc) { std::cout << "Missing argument: " << exc.what() << std::endl; desc.print(std::cout); return EXIT_FAILURE; } Executor executor; if (!executor.init()) { std::cerr << "Could not init epoll executor!" << std::endl; return EXIT_FAILURE; } SSLProvider provider; if(!provider.init(std::move(cert), std::move(key))) { std::cerr << "Could not init ssl provider!" << std::endl; return EXIT_FAILURE; } Server server{executor, provider}; server.set_location(std::move(address), std::move(port)); std::cout << "CryptoChat server is up and running!\n"; return server.run(); }