From 1602a1ec353d633542b0f8af68a1b648c701485c Mon Sep 17 00:00:00 2001 From: 3lswear Date: Tue, 25 Jan 2022 23:50:42 +0300 Subject: [PATCH] refactor: some refactors --- src/Server/Server.cpp | 116 ++++++++++++++---------------------------- src/Server/Server.hpp | 6 +-- 2 files changed, 40 insertions(+), 82 deletions(-) diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index fb5ef3f..90bbc8a 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -1,5 +1,6 @@ #include "Server.hpp" #include +#include #define THREAD_NUM 100 #define MAX_EVENTS @@ -25,7 +26,7 @@ void Server::readConfig(void) TOMLMap *root = parse(); - TOMLMap *map; + /* TOMLMap *map; */ TOMLMap::iterator it1; TOMLMapArray *arr; TOMLMapArray::iterator it; @@ -34,21 +35,21 @@ void Server::readConfig(void) arr = root->find("server")->second->getMapArray(); it = arr->begin(); - while (it != arr->end()) - { - std::cout << BLUE << *it << std::endl; - map = *it; + /* while (it != arr->end()) */ + /* { */ + /* std::cout << BLUE << *it << std::endl; */ + /* map = *it; */ - it1 = map->begin(); - while (it1 != map->end()) - { - std::cout << TURGUOISE << it1->first << it1->second << ZERO_C << std::endl; - ++it1; - } + /* it1 = map->begin(); */ + /* while (it1 != map->end()) */ + /* { */ + /* std::cout << TURGUOISE << it1->first << it1->second << ZERO_C << std::endl; */ + /* ++it1; */ + /* } */ - ++it; - } + /* ++it; */ + /* } */ @@ -62,12 +63,12 @@ void Server::setupConfig(void) } -void Server::setNonblocking(int fd) +void Server::setNonBlock(int fd) { fcntl(fd, F_SETFL, O_NONBLOCK); } -void Server::newConnection(int fd) +void Server::add_to_epoll_list(int fd) { struct epoll_event ev; ev.events = EPOLLIN | EPOLLOUT | EPOLLET; @@ -77,15 +78,15 @@ void Server::newConnection(int fd) _client++; } -void Server::add_to_epoll_list(int fd, unsigned int ep_events) -{ - struct epoll_event event; - event.data.fd = fd; - event.events = ep_events; - if (epoll_ctl(_epoll_fd, EPOLL_CTL_ADD, fd, &event)) - throw std::logic_error("epoll add"); +/* void Server::add_to_epoll_list(int fd, unsigned int ep_events) */ +/* { */ +/* struct epoll_event event; */ +/* event.data.fd = fd; */ +/* event.events = ep_events; */ +/* if (epoll_ctl(_epoll_fd, EPOLL_CTL_ADD, fd, &event)) */ +/* throw std::logic_error("epoll add"); */ -} +/* } */ void Server::start(void) { @@ -97,43 +98,45 @@ void Server::start(void) /* int n; */ /* int nfds; */ int client_sock; - int code; + int status; int epoll_ret = 0; /* int epollfd; */ - struct epoll_event ev; + /* struct epoll_event ev; */ - ev.events = EPOLLIN | EPOLLOUT | EPOLLET; + /* ev.events = EPOLLIN | EPOLLOUT | EPOLLET; */ /* ev.data.fd */ /* unsigned int ep_events = EPOLLIN | EPOLLOUT | EPOLLET; */ _epoll_fd = epoll_create1(0); checkError(server_sock.init(MAX_CLIENT), "Socket init"); - setNonblocking(server_sock.getSocketFd()); - setNonblocking(_epoll_fd); + setNonBlock(server_sock.getSocketFd()); + setNonBlock(_epoll_fd); while (1) { client_sock = accept(server_sock.getSocketFd(), server_sock.getSockaddr(), server_sock.getSocklen()); if (client_sock > 0) - newConnection(client_sock); + add_to_epoll_list(client_sock); if (_client > 0) epoll_ret = epoll_wait(_epoll_fd, _events, MAX_CLIENT, -1); if (epoll_ret < 0) throw std::logic_error("epoll_ret"); for (int i = 0; i < epoll_ret; i++) { + /* if (_events[i].events == 0) */ + /* continue; */ fd = _events[i].data.fd; checkError(recv(fd, buf, BUFFSIZE, 0), "Receive msg from client"); header[fd].setRawData(buf); - code = header[fd].parseRequest(); - header[fd].printHeaderInfo(); - header[fd].printHeaderInfo(); - header[fd].sendRespons(fd); + status = header[fd].parseRequest(); + header[fd].printInfo(); + header[fd].printInfo(); + header[fd].sendResponse(fd); header[fd].clear(); - std::cout << BLUE << header[fd].getReasonPhrase(code) << ZERO_C << std::endl; + std::cout << BLUE << header[fd].getReasonPhrase(status) << ZERO_C << std::endl; close(fd); _client--; } @@ -143,51 +146,6 @@ void Server::start(void) close(server_sock.getSocketFd()); std::cerr << "end;" << std::endl; - - - - - - // nfds = 0; - // n = 0; - // _epolfd = epoll_create1(0); - // checkError(serverSocket.init(MAX_CLIENT), "Socket init"); - // setNonblocking(serverSocket.getSocketFd()); - // setNonblocking(_epolfd); - // while (true) - // { - // _clientSocket = accept(serverSocket.getSocketFd(), - // serverSocket.getSockaddr(), serverSocket.getSocklen()); - // if (_clientSocket > 0) - // newConnection(_clientSocket); - // if (_client > 0) - // nfds = epoll_wait(_epolfd, _events, MAX_CLIENT, -1); - // while (n < nfds) - // { - // fd = _events[n].data.fd; - // // std::cout << "n = " << n << " nfds = " << nfds << " fd = " << fd << " _clientSize = " << _client << " _clientSocket " << _clientSocket << std::endl; - // checkError(recv(fd, buff, BUFFSIZE, 0), "Receive msg from client"); - // header[fd].setRequest(buff); - // header[fd].parseRequest(); - // header[fd].printHeaderInfo(); - // sendRespons(header[fd], fd); - // header[fd].clearHeader(); - // close(fd); - // _client--; - // n++; - // } - // n = 0; - // nfds = 0; - // _clientSocket = 0; - // } - // close(serverSocket.getSocketFd()); - // - - - - - - /* Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1"); */ /* char buff[BUFFSIZE + 1] = {0}; */ /* Header header; */ diff --git a/src/Server/Server.hpp b/src/Server/Server.hpp index ff03148..61ca6a2 100644 --- a/src/Server/Server.hpp +++ b/src/Server/Server.hpp @@ -19,15 +19,15 @@ private: struct sockaddr_in _addres; std::string _ip; std::vector _configs; - void add_to_epoll_list(int fd, unsigned int ep_events); + /* void add_to_epoll_list(int fd, unsigned int ep_events); */ private: void checkError(int fd, std::string str); void sendFile(std::string str); void sendHeader(Header head, int); void sendRespons(Header head, int); - void setNonblocking(int fd); - void newConnection(int fd); + void setNonBlock(int fd); + void add_to_epoll_list(int fd); public: Server(); Server(std::string path);