Added parser class
This commit is contained in:
parent
86531035a8
commit
53a83308de
6 changed files with 105 additions and 17 deletions
|
|
@ -3,10 +3,10 @@
|
|||
/* ::: :::::::: */
|
||||
/* main.cpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: omoudni <omoudni@student.42.fr> +#+ +:+ +#+ */
|
||||
/* By: omoudni <omoudni@student.42paris.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/13 11:03:13 by rparodi #+# #+# */
|
||||
/* Updated: 2025/05/14 23:17:03 by omoudni ### ########.fr */
|
||||
/* Updated: 2025/05/19 15:02:41 by omoudni ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
@ -14,16 +14,12 @@
|
|||
#include <iostream>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc != 3) {
|
||||
std::cerr << CLR_RED << "Usage: " << argv[0] << " <port> <password>" << CLR_RESET << std::endl;
|
||||
return 1;
|
||||
}
|
||||
unsigned short int tmp_port = valid_port(argv[1]);
|
||||
if (tmp_port == 0) {
|
||||
std::cerr << CLR_RED << "Error: Invalid port: " << argv[1] << CLR_RESET << std::endl;
|
||||
return 1;
|
||||
}
|
||||
Server server(tmp_port, argv[2]);
|
||||
Parser parser(argc, argv);
|
||||
if (!parser.isValid()) {
|
||||
std::cerr << CLR_RED << parser.getErrorMsg() << CLR_RESET << std::endl;
|
||||
return 1;
|
||||
}
|
||||
Server server(parser.getPort(), parser.getPassword());
|
||||
server.showInfo();
|
||||
server.start();
|
||||
return 0;
|
||||
|
|
|
|||
43
sources/core/parser.cpp
Normal file
43
sources/core/parser.cpp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* parser.cpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: omoudni <omoudni@student.42paris.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/19 14:48:52 by omoudni #+# #+# */
|
||||
/* Updated: 2025/05/19 15:08:18 by omoudni ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "parser.hpp"
|
||||
#include <iostream>
|
||||
|
||||
Parser::Parser(int argc, char* argv[]) : _port(0), _valid(false) {
|
||||
if (argc != 3) {
|
||||
_errorMsg = "Usage: ./ircserv <port> <password>";
|
||||
return;
|
||||
}
|
||||
_port = valid_port(argv[1]);
|
||||
if (_port == 0) {
|
||||
_errorMsg = "Error: Invalid port: " + std::string(argv[1]);
|
||||
return;
|
||||
}
|
||||
_password = argv[2];
|
||||
if (_password.empty()) {
|
||||
_errorMsg = "Error: Password cannot be empty";
|
||||
return;
|
||||
}
|
||||
for (size_t i = 0; i < _password.size(); ++i) {
|
||||
if (!isprint(_password[i])) {
|
||||
_errorMsg = "Error: Password contains non-printable characters";
|
||||
return;
|
||||
}
|
||||
}
|
||||
_valid = true;
|
||||
}
|
||||
|
||||
bool Parser::isValid() const { return _valid; }
|
||||
unsigned short int Parser::getPort() const { return _port; }
|
||||
const std::string& Parser::getPassword() const { return _password; }
|
||||
const std::string& Parser::getErrorMsg() const { return _errorMsg; }
|
||||
Loading…
Add table
Add a link
Reference in a new issue