feat(parsing): adding the check of the port
This commit is contained in:
parent
6525941cdd
commit
cbb11f1822
1 changed files with 45 additions and 0 deletions
45
sources/core/check.cpp
Normal file
45
sources/core/check.cpp
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* check.cpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/13 11:25:04 by rparodi #+# #+# */
|
||||
/* Updated: 2025/05/13 11:59:01 by rparodi ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "core.hpp"
|
||||
#include <cerrno>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
|
||||
/**
|
||||
* @brief function to check if the port is valid
|
||||
*
|
||||
* @param input input given bu the user
|
||||
* @return value between 1 and 65535 if valid, 0 if not
|
||||
*/
|
||||
unsigned short int valid_port(char *input)
|
||||
{
|
||||
if (input == NULL)
|
||||
return (0);
|
||||
for (size_t i = 0; input[i]; i++) {
|
||||
if (!isdigit(input[i])) {
|
||||
if (DEBUG)
|
||||
std::cerr << LOG << CLR_RED << "Error: Not only number in port: " << input << std::endl;
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
errno = 0;
|
||||
int port = strtol(input, NULL, 10);
|
||||
if (errno == ERANGE) {
|
||||
if (DEBUG)
|
||||
std::cerr << LOG << CLR_RED << "Error: Port out of range: " << input << std::endl;
|
||||
return (0);
|
||||
}
|
||||
if (port < 1 || port > 65535)
|
||||
return (0);
|
||||
return (port);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue