From 2a69e14db294795c3f05857ca51a8e7ee952ef54 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sun, 31 Jul 2022 12:30:35 +0200 Subject: [PATCH] wip atoi --- {srcs => headers}/ConfigParser.hpp | 0 {srcs => headers}/LocationConfig.hpp | 0 {srcs => headers}/MethodType.hpp | 0 {srcs => headers}/ServerConfig.hpp | 0 {srcs => headers}/utils.hpp | 0 srcs/{Webserv.cpp => Webserv_hugo.cpp} | 0 srcs/ft_itoa.cpp | 9 +++++++++ srcs/utils.cpp | 4 ---- srcs/webserv/init.cpp | 12 ++++++++++++ 9 files changed, 21 insertions(+), 4 deletions(-) rename {srcs => headers}/ConfigParser.hpp (100%) rename {srcs => headers}/LocationConfig.hpp (100%) rename {srcs => headers}/MethodType.hpp (100%) rename {srcs => headers}/ServerConfig.hpp (100%) rename {srcs => headers}/utils.hpp (100%) rename srcs/{Webserv.cpp => Webserv_hugo.cpp} (100%) diff --git a/srcs/ConfigParser.hpp b/headers/ConfigParser.hpp similarity index 100% rename from srcs/ConfigParser.hpp rename to headers/ConfigParser.hpp diff --git a/srcs/LocationConfig.hpp b/headers/LocationConfig.hpp similarity index 100% rename from srcs/LocationConfig.hpp rename to headers/LocationConfig.hpp diff --git a/srcs/MethodType.hpp b/headers/MethodType.hpp similarity index 100% rename from srcs/MethodType.hpp rename to headers/MethodType.hpp diff --git a/srcs/ServerConfig.hpp b/headers/ServerConfig.hpp similarity index 100% rename from srcs/ServerConfig.hpp rename to headers/ServerConfig.hpp diff --git a/srcs/utils.hpp b/headers/utils.hpp similarity index 100% rename from srcs/utils.hpp rename to headers/utils.hpp diff --git a/srcs/Webserv.cpp b/srcs/Webserv_hugo.cpp similarity index 100% rename from srcs/Webserv.cpp rename to srcs/Webserv_hugo.cpp diff --git a/srcs/ft_itoa.cpp b/srcs/ft_itoa.cpp index 1e996a9..364ed65 100644 --- a/srcs/ft_itoa.cpp +++ b/srcs/ft_itoa.cpp @@ -1,4 +1,5 @@ +# include #include static int eval_is_negative(int *n) @@ -28,6 +29,14 @@ static int eval_digit_nbr(int n) char *ft_itoa(int n) { + +// std::stringstream strs; +// std::string s; +// +// strs << n; +// s = strs.str(); +// return ((char*)(s.c_str())); + int i; char *str; int is_negative; diff --git a/srcs/utils.cpp b/srcs/utils.cpp index b66cd62..4061ce3 100644 --- a/srcs/utils.cpp +++ b/srcs/utils.cpp @@ -1,9 +1,6 @@ - #include "Webserv.hpp" - - std::vector split(std::string input, char delimiter) { std::vector answer; @@ -16,4 +13,3 @@ std::vector split(std::string input, char delimiter) return answer; } - diff --git a/srcs/webserv/init.cpp b/srcs/webserv/init.cpp index b773964..4c5956e 100644 --- a/srcs/webserv/init.cpp +++ b/srcs/webserv/init.cpp @@ -24,6 +24,18 @@ void Webserv::init_virtual_servers(std::vector* servers) std::perror("err socket()"); throw std::runtime_error("Socket init"); } + // HUGO ADD + // + // allow socket descriptor to be reuseable + // I just copied it from https://www.ibm.com/docs/en/i/7.2?topic=designs-example-nonblocking-io-select + int on = 1; + if (setsockopt(ret, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)) < 0) + { + ::perror("err setsockopt()"); + throw std::runtime_error("Socket init"); + } + // + // HUGO ADD END _listen_sockets.push_back(ret); _bind(_listen_sockets.back(), std::atoi(it->port.data()), it->host);