diff --git a/Server.cpp b/Server.cpp index 3669fd5..4decd3b 100644 --- a/Server.cpp +++ b/Server.cpp @@ -1,5 +1,7 @@ #include "Server.hpp" +bool Server::_signal = false; + Server::Server() {} Server::~Server() {} @@ -22,3 +24,16 @@ void Server::parseArgs(int ac, char **av) { this->_port = _port; this->_password = pwd; } + +void Server::receiveSignal(int signum) { + _signal = true; + (void)signum; +} + +void Server::init() { + signal(SIGINT, receiveSignal); + signal(SIGQUIT, receiveSignal); + + std::cout << ">>> SERVER STARTED <<<" << std::endl; + std::cout << "Waiting for connections..." << std::endl; +} \ No newline at end of file diff --git a/Server.hpp b/Server.hpp index f26087b..6af01cc 100644 --- a/Server.hpp +++ b/Server.hpp @@ -1,19 +1,23 @@ #ifndef SERVER_HPP #define SERVER_HPP - #include #include +#include class Server { private: int _port; + static bool _signal; std::string _password; public: Server(); ~Server(); void parseArgs(int ac, char **av); + static void receiveSignal(int signum); + void init(); + }; #endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index 83d8881..f41f02b 100644 --- a/main.cpp +++ b/main.cpp @@ -6,6 +6,7 @@ int main(int ac, char **av) try { server.parseArgs(ac, av); + server.init(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; return 1;