diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index 90bbc8a..720dbb2 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -1,6 +1,8 @@ #include "Server.hpp" #include #include +#include +#include #define THREAD_NUM 100 #define MAX_EVENTS @@ -76,6 +78,11 @@ void Server::add_to_epoll_list(int fd) epoll_ctl(_epoll_fd, EPOLL_CTL_ADD, fd, &ev); _client++; + std::cerr << RED + << "add client_sock " + << fd + << " to epoll_list" + << RESET << std::endl; } /* void Server::add_to_epoll_list(int fd, unsigned int ep_events) */ @@ -94,14 +101,13 @@ void Server::start(void) Socket server_sock(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1"); char buf[BUFFSIZE + 1] = {0}; Header header[MAX_CLIENT]; + std::map header_map; int fd; /* int n; */ /* int nfds; */ int client_sock; int status; int epoll_ret = 0; - /* int epollfd; */ - /* struct epoll_event ev; */ @@ -116,6 +122,7 @@ void Server::start(void) setNonBlock(_epoll_fd); while (1) { + /* std::cout << RED << "IN MAIN LOOP" << RESET << std::endl; */ client_sock = accept(server_sock.getSocketFd(), server_sock.getSockaddr(), server_sock.getSocklen()); if (client_sock > 0) @@ -123,20 +130,25 @@ void Server::start(void) if (_client > 0) epoll_ret = epoll_wait(_epoll_fd, _events, MAX_CLIENT, -1); if (epoll_ret < 0) + { + perror("epoll_ret"); throw std::logic_error("epoll_ret"); + } for (int i = 0; i < epoll_ret; i++) { /* if (_events[i].events == 0) */ /* continue; */ + + std::cout << TURQ << "IN FOR LOOP" << RESET << std::endl; fd = _events[i].data.fd; - checkError(recv(fd, buf, BUFFSIZE, 0), "Receive msg from client"); + assert(recv(fd, buf, BUFFSIZE, 0) >= 0); header[fd].setRawData(buf); status = header[fd].parseRequest(); header[fd].printInfo(); - header[fd].printInfo(); header[fd].sendResponse(fd); header[fd].clear(); - std::cout << BLUE << header[fd].getReasonPhrase(status) << ZERO_C << std::endl; + std::cout << BLUE << "status is " << Header::getReasonPhrase(status) << RESET << std::endl; + bzero(buf, BUFFSIZE); close(fd); _client--; }