intermediate

This commit is contained in:
3lswear
2022-01-25 08:00:36 +03:00
parent a16d22aa87
commit 53ebb0ddfe
6 changed files with 212 additions and 31 deletions

6
.ccls
View File

@@ -1,7 +1,9 @@
clang++
-Iincludes
%cpp
%hpp --include=./includes/webserv.hpp
-Isrc/Header/
-Isrc/Autoindex/
-Isrc/Server/
-Isrc/config/
-Wall
-Wextra
-Werror

167
Session.vim Normal file
View File

@@ -0,0 +1,167 @@
let SessionLoad = 1
let s:so_save = &g:so | let s:siso_save = &g:siso | setg so=0 siso=0 | setl so=-1 siso=-1
let v:this_session=expand("<sfile>:p")
silent only
silent tabonly
cd ~/work/2_ecole/webserv
if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
let s:wipebuf = bufnr('%')
endif
set shortmess=aoO
argglobal
%argdel
tabnew
tabrewind
edit src/config/TOMLParser.cpp
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 94 + 95) / 190)
exe 'vert 2resize ' . ((&columns * 95 + 95) / 190)
argglobal
balt includes/TOMLParser.hpp
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal nofen
silent! normal! zE
let &fdl = &fdl
let s:l = 165 - ((11 * winheight(0) + 23) / 46)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 165
normal! 09|
wincmd w
argglobal
if bufexists("src/config/TOMLParser.cpp") | buffer src/config/TOMLParser.cpp | else | edit src/config/TOMLParser.cpp | endif
if &buftype ==# 'terminal'
silent file src/config/TOMLParser.cpp
endif
balt src/config/parse.cpp
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal nofen
silent! normal! zE
let &fdl = &fdl
let s:l = 420 - ((38 * winheight(0) + 23) / 46)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 420
normal! 0
wincmd w
exe 'vert 1resize ' . ((&columns * 94 + 95) / 190)
exe 'vert 2resize ' . ((&columns * 95 + 95) / 190)
tabnext
edit includes/TOMLParser.hpp
let s:save_splitbelow = &splitbelow
let s:save_splitright = &splitright
set splitbelow splitright
wincmd _ | wincmd |
vsplit
1wincmd h
wincmd w
let &splitbelow = s:save_splitbelow
let &splitright = s:save_splitright
wincmd t
let s:save_winminheight = &winminheight
let s:save_winminwidth = &winminwidth
set winminheight=0
set winheight=1
set winminwidth=0
set winwidth=1
exe 'vert 1resize ' . ((&columns * 94 + 95) / 190)
exe 'vert 2resize ' . ((&columns * 95 + 95) / 190)
argglobal
balt includes/TOMLNode.hpp
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal nofen
silent! normal! zE
let &fdl = &fdl
let s:l = 23 - ((20 * winheight(0) + 23) / 46)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 23
normal! 063|
wincmd w
argglobal
if bufexists("src/config/TOMLParser.cpp") | buffer src/config/TOMLParser.cpp | else | edit src/config/TOMLParser.cpp | endif
if &buftype ==# 'terminal'
silent file src/config/TOMLParser.cpp
endif
balt includes/TOMLParser.hpp
setlocal fdm=manual
setlocal fde=0
setlocal fmr={{{,}}}
setlocal fdi=#
setlocal fdl=0
setlocal fml=1
setlocal fdn=20
setlocal nofen
silent! normal! zE
let &fdl = &fdl
let s:l = 303 - ((8 * winheight(0) + 23) / 46)
if s:l < 1 | let s:l = 1 | endif
keepjumps exe s:l
normal! zt
keepjumps 303
normal! 0
wincmd w
exe 'vert 1resize ' . ((&columns * 94 + 95) / 190)
exe 'vert 2resize ' . ((&columns * 95 + 95) / 190)
tabnext 1
badd +7 Makefile
badd +18 src/config/TOMLParser.hpp
badd +37 src/config/parse.cpp
badd +1 src/config/Tokenizer.hpp
badd +0 src/config/TOMLNode.hpp
badd +182 src/config/TOMLParser.cpp
badd +23 includes/TOMLParser.hpp
badd +37 includes/TOMLNode.hpp
if exists('s:wipebuf') && len(win_findbuf(s:wipebuf)) == 0 && getbufvar(s:wipebuf, '&buftype') isnot# 'terminal'
silent exe 'bwipe ' . s:wipebuf
endif
unlet! s:wipebuf
set winheight=1 winwidth=20 shortmess=filnxtToOFc
let &winminheight = s:save_winminheight
let &winminwidth = s:save_winminwidth
let s:sx = expand("<sfile>:p:r")."x.vim"
if filereadable(s:sx)
exe "source " . fnameescape(s:sx)
endif
let &g:so = s:so_save | let &g:siso = s:siso_save
set hlsearch
nohlsearch
doautoall SessionLoadPost
unlet SessionLoad
" vim: set ft=vim :

View File

@@ -53,4 +53,4 @@ public:
~Header();
};
#endif
#endif

View File

@@ -75,33 +75,44 @@ void Server::newConnection(int fd)
void Server::start(void)
{
Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1");
char buff[BUFFSIZE + 1] = {0};
Header header;
int fd_accept;
int code;
/* Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1"); */
/* char buff[BUFFSIZE + 1] = {0}; */
/* Header header; */
/* int fd_accept; */
/* int code; */
/* checkError(serverSocket.init(MAX_CLIENT), "Socket init"); */
/* fd_accept = accept(serverSocket.getSocketFd(), */
/* serverSocket.getSockaddr(), serverSocket.getSocklen()); */
/* checkError(fd_accept, "Initialize client socket"); */
/* checkError(recv(fd_accept, buff, BUFFSIZE, 0), "Receive msg from client"); */
/* std::cout << TURGUOISE << "Receive Header" << ZERO_C << std::endl; */
/* header.setRawData(buff); */
/* code = header.parseRequest(); */
/* header.printHeaderInfo(); */
/* header.sendRespons(fd_accept); */
/* std::cout << BLUE << header.getReasonPhrase(code) << ZERO_C << std::endl; */
/* close(fd_accept); */
/* close(serverSocket.getSocketFd()); */
Socket server_sock(AF_INET, SOCK_STREAM, 0, _port, "127.0.0.1");
char buf[BUFFSIZE + 1] = {0};
Header header[MAX_CLIENT];
int fd;
int n;
int nfds;
int client_sock;
int epollfd;
#define THREAD_NUM 100
epollfd = epoll_create1(0);
struct epoll_event ev;
ev.events = EPOLLIN | EPOLLOUT | EPOLLET;
checkError(serverSocket.init(MAX_CLIENT), "Socket init");
fd_accept = accept(serverSocket.getSocketFd(),
serverSocket.getSockaddr(), serverSocket.getSocklen());
checkError(fd_accept, "Initialize client socket");
checkError(recv(fd_accept, buff, BUFFSIZE, 0), "Receive msg from client");
std::cout << TURGUOISE << "Receive Header" << ZERO_C << std::endl;
header.setRawData(buff);
code = header.parseRequest();
header.printHeaderInfo();
header.sendRespons(fd_accept);
std::cout << BLUE << header.getReasonPhrase(code) << ZERO_C << std::endl;
close(fd_accept);
close(serverSocket.getSocketFd());
//-----------------------------------------------попытка добавить epoll------------------
// Socket serverSocket(AF_INET, SOCK_STREAM, 0, _port);
// char buff[BUFFSIZE + 1] = {0};
// Header header[MAX_CLIENT];
// int fd;
// int n;
// int nfds;
// int _clientSocket;
// nfds = 0;
// n = 0;

View File

@@ -63,6 +63,7 @@ namespace config
if (file.eof())
{
std::cout << "Tokens exhausted" << std::endl;
throw std::logic_error("Tokens exhausted");
}
prev_pos = file.tellg();
c = getWithoutWhiteSpace();

View File

@@ -10,8 +10,8 @@ int main(int argc, char **argv)
Server server;
server.readConfig();
// server.setupConfig();
// server.start();
server.setupConfig();
server.start();
return (0);