diff --git a/config/tester.toml b/config/tester.toml new file mode 100644 index 0000000..30f4cf8 --- /dev/null +++ b/config/tester.toml @@ -0,0 +1,29 @@ +[[server]] + name = "pohek1.org" + host = "127.0.0.1" + port = 8080 + [[server.location]] + location = "/" + root = "www/tester/" + methods = ["GET"] + autoindex = true + directory_file = "index.html" + [[server.location]] + location = "/put_test/*" + root = "www/tester/" + methods = ["PUT]"] + autoindex = true + upload_dir = "/www/tester/upload_here/" + [[server.location]] + location = "*.bla" + cgi_pass = "~/.local/bin/cgi-test" + [[server.location]] + location = "/post_body" + root = "www/tester/" + methods = ["POST"] + body_size_limit = 100 + [[server.location]] + location = "/directory/" + methods = ["GET"] + root = "www/tester/YoupiBanane/" + directory_file = "youpi.bad_extension" diff --git a/src/Client/Request.cpp b/src/Client/Request.cpp index 06996f9..aedc783 100644 --- a/src/Client/Request.cpp +++ b/src/Client/Request.cpp @@ -185,18 +185,27 @@ void Request::splitData(std::string &data) if (!_head_ok) { pos = str.find("\r\n\r\n"); + /* if (pos == -1) */ + /* { */ + /* _ret = 400; */ + /* return; */ + /* } */ + DBOUT << RED << "pos is " << pos << ENDL; if (pos == -1) { - _ret = 400; - return; + _head += str; + } + else + { + _head += str.substr(0, pos) + "\n"; + _headerSize = _head.size() + 3; + data.erase(0, pos + 4); + _head_ok = true; + + parseHeader(); + if (_contentLength == 0 && !_chunked) + _body_ok = true; } - _head = str.substr(0, pos) + "\n"; - _headerSize = _head.size() + 3; - data.erase(0, pos + 4); - _head_ok = true; - parseHeader(); - if (_contentLength == 0 && !_chunked) - _body_ok = true; } if (badCode(_ret)) return ; @@ -336,6 +345,8 @@ bool Request::badCode(int code) bool Request::ok(void) { + DBOUT << "_head_ok " << _head_ok << ENDL; + DBOUT << "_body_ok " << _body_ok << ENDL; return (_head_ok && _body_ok); } diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index 75b1fc5..2ca1231 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -96,18 +96,25 @@ void Server::readSocket(Client &client, int fd) bytes_read = recv(fd, &stringBUF[0], BUFFSIZE, 0); if (bytes_read == 0) { + DBOUT << RED << "bytes_read = 0" << ENDL; client.allRead = true; + throw std::logic_error("JOPA CLIENTU"); return; } + /* else if (bytes_read == -1) */ + /* throw std::logic_error("JOPA CLIENTU"); */ // buf[bytes_read + 1] = '\0'; + DBOUT << stringBUF << ENDL; stringBUF.erase(bytes_read, stringBUF.size()); + /* DBOUT << "after erase" <isEmpty()) - delete_client(client_map, fd); + /* if (client_map[fd]->isEmpty()) */ + /* delete_client(client_map, fd); */ } else if (events & EPOLLOUT) { /* DBOUT << GREEN << "doing sendData" << ENDL; */ - /* client_map[fd].printClientInfo(); */ + client_map[fd]->printClientInfo(); sendData(*client_map[fd], fd); if (client_map[fd]->allSended()) { diff --git a/src/config/parse.cpp b/src/config/parse.cpp index 8e16c4d..7f9adae 100644 --- a/src/config/parse.cpp +++ b/src/config/parse.cpp @@ -40,7 +40,7 @@ namespace config TOMLMap *parse(void) { - std::string filename = "config/real.toml"; + std::string filename = "config/tester.toml"; config::TOMLParser parser(filename); TOMLMap *root = parser.parse(); /* config::display(root); */ diff --git a/ubuntu_tester b/ubuntu_tester new file mode 100755 index 0000000..6b8730e Binary files /dev/null and b/ubuntu_tester differ diff --git a/www/tester/YoupiBanane/Yeah/not_happy.bad_extension b/www/tester/YoupiBanane/Yeah/not_happy.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/www/tester/YoupiBanane/nop/other.pouic b/www/tester/YoupiBanane/nop/other.pouic new file mode 100644 index 0000000..e69de29 diff --git a/www/tester/YoupiBanane/nop/youpi.bad_extension b/www/tester/YoupiBanane/nop/youpi.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/www/tester/YoupiBanane/youpi.bad_extension b/www/tester/YoupiBanane/youpi.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/www/tester/YoupiBanane/youpi.bla b/www/tester/YoupiBanane/youpi.bla new file mode 100644 index 0000000..e69de29