#ifndef WEBSERV_HPP # define WEBSERV_HPP # include // cout, cin # include # include # include # include // errno # include // perror # include # include # include // close # include // memset # include # include # include // socket, accept, listen, send, recv, bind, connect, setsockopt, getsockname # include // sockaddr_in // # include // usefull for what ? # include // htonl, htons, ntohl, ntohs, inet_addr # include // epoll # include // fcntl # include "Client.hpp" # include "ServerConfig.hpp" // TODO: A virer # include "ConfigParser.hpp" # include "LocationConfig.hpp" # include "MethodType.hpp" # include "utils.hpp" // TODO: A virer # include // signal # include # include # include # include # include // atoi, itoa # include // ifstream char *ft_itoa(int n); # include // access # include // find extern bool g_run; extern int g_last_signal; void signal_handler(int signum); /* enum // WIP test { SERVER_FD = 1, CLIENT_FD }; struct s // WIP test { int fd; Client *ptr; }; */ // these might only be TMP # define FAILURE -1 # define SUCCESS 1 class Webserv { public: // base.cpp Webserv(); // Webserv(Webserv const &src); // what should it take as arg, *, &, ? // Webserv(std::vector& servers); ~Webserv(); // Webserv &operator=(Webserv const &rhs); // init.cpp void init_virtual_servers(std::vector* servers); // run_loop.cpp void run(); private: int _epfd; std::vector _listen_sockets; std::vector _servers; std::vector _clients; // accept.cpp void _accept_connection(int fd); // request.cpp void _request(Client *client); void _read_request(Client *client); // response.cpp void _response(Client *client); void _send_response(Client *client); void _construct_response(Client *client); void _insert_status_line(Client *client); void _get_ressource(Client *client); // epoll_update.cpp int _epoll_update(int fd, uint32_t events, int op); int _epoll_update(int fd, uint32_t events, int op, void *ptr); // signal.cpp void _handle_last_signal(); // close.cpp void _close_client(int fd); void _close_all_clients(); // init.cpp void _bind(int socket_fd, in_port_t port, std::string host); void _listen(int socket_fd, unsigned int max_connections); }; #endif