feat: update server configuration and enhance file handling
- Increased client_max_body_size to 1000m in default.conf and location /post_body - Added index.html for YoupiBanane with a welcome message - Created empty other.pouic file - Updated FileHandler to change error response from 404 to 403 for forbidden access - Modified log output to include blue text for status messages - Changed signal handling variable from stop_ to signum_ in Server class - Increased MAX_EVENTS in Server run method from 10 to 1024
This commit is contained in:
parent
0534d07948
commit
0ed0e15e70
@ -117,7 +117,7 @@ server {
|
|||||||
listen 8083;
|
listen 8083;
|
||||||
host 127.0.0.1;
|
host 127.0.0.1;
|
||||||
server_name localhost;
|
server_name localhost;
|
||||||
|
client_max_body_size 1000m;
|
||||||
root ./htdocs/YoupiBanane/;
|
root ./htdocs/YoupiBanane/;
|
||||||
index index.html index2.htm;
|
index index.html index2.htm;
|
||||||
|
|
||||||
@ -134,7 +134,7 @@ server {
|
|||||||
|
|
||||||
location /post_body {
|
location /post_body {
|
||||||
root ./htdocs/YoupiBanane/;
|
root ./htdocs/YoupiBanane/;
|
||||||
client_max_body_size 100;
|
client_max_body_size 1000m;
|
||||||
allowed_methods POST;
|
allowed_methods POST;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
13
htdocs/YoupiBanane/index.html
Normal file
13
htdocs/YoupiBanane/index.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>YoupiBanane</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Welcome to YoupiBanane!</h1>
|
||||||
|
<p>This is the index page.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -39,11 +39,12 @@ void FileHandler::handleFile(const std::string &filepath) const
|
|||||||
|
|
||||||
std::vector<char> fileData = FileUtils::readBinaryFile(filepath);
|
std::vector<char> fileData = FileUtils::readBinaryFile(filepath);
|
||||||
Log::debug("Serving file: " + filepath + " with MIME type: " + mimeType);
|
Log::debug("Serving file: " + filepath + " with MIME type: " + mimeType);
|
||||||
if (fileData.empty())
|
// TODO empty file should not return 404 i guess
|
||||||
{
|
// if (fileData.empty())
|
||||||
ErrorHandler::createErrorResponse(Http::StatusCode::NOT_FOUND, response_, config_);
|
// {
|
||||||
return;
|
// ErrorHandler::createErrorResponse(Http::StatusCode::NOT_FOUND, response_, config_);
|
||||||
}
|
// return;
|
||||||
|
// }
|
||||||
// TODO: annoying: For reading files, vector<char> is preferred, but for http data vector<uint8_t> is preferred
|
// TODO: annoying: For reading files, vector<char> is preferred, but for http data vector<uint8_t> is preferred
|
||||||
response_.setBody(std::vector<uint8_t>{fileData.begin(), fileData.end()});
|
response_.setBody(std::vector<uint8_t>{fileData.begin(), fileData.end()});
|
||||||
response_.setStatus(Http::StatusCode::OK);
|
response_.setStatus(Http::StatusCode::OK);
|
||||||
@ -62,7 +63,7 @@ void FileHandler::handleDirectory(const std::string &dirpath, ResourceType type)
|
|||||||
});
|
});
|
||||||
if (first_matching == possible_indexes.end())
|
if (first_matching == possible_indexes.end())
|
||||||
{
|
{
|
||||||
ErrorHandler::createErrorResponse(Http::StatusCode::FORBIDDEN, response_, config_);
|
ErrorHandler::createErrorResponse(Http::StatusCode::NOT_FOUND, response_, config_);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
handleFile(FileUtils::joinPath(dirpath, *first_matching));
|
handleFile(FileUtils::joinPath(dirpath, *first_matching));
|
||||||
|
|||||||
@ -199,6 +199,7 @@ void Log::status(const std::string &message)
|
|||||||
std::cout << "\033[s" // Save cursor position
|
std::cout << "\033[s" // Save cursor position
|
||||||
<< "\033[999;0H" // Move to bottom row
|
<< "\033[999;0H" // Move to bottom row
|
||||||
<< "\033[2K" // Clear entire line
|
<< "\033[2K" // Clear entire line
|
||||||
|
<< "\033[34m" // Set text color to blue
|
||||||
<< "\033[7m" // Reverse video (inverted colors)
|
<< "\033[7m" // Reverse video (inverted colors)
|
||||||
<< message << "\033[0m" // Reset formatting
|
<< message << "\033[0m" // Reset formatting
|
||||||
<< "\033[u" // Restore cursor position
|
<< "\033[u" // Restore cursor position
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
#include <webserv/server/Server.hpp>
|
|
||||||
|
|
||||||
#include <webserv/client/Client.hpp> // for Client
|
#include <webserv/client/Client.hpp> // for Client
|
||||||
#include <webserv/config/ConfigManager.hpp> // for ConfigManager
|
#include <webserv/config/ConfigManager.hpp> // for ConfigManager
|
||||||
#include <webserv/config/ServerConfig.hpp> // for ServerConfig
|
#include <webserv/config/ServerConfig.hpp> // for ServerConfig
|
||||||
#include <webserv/log/Log.hpp> // for Log, LOCATION
|
#include <webserv/log/Log.hpp> // for Log, LOCATION
|
||||||
|
#include <webserv/server/Server.hpp>
|
||||||
#include <webserv/socket/ASocket.hpp> // for ASocket
|
#include <webserv/socket/ASocket.hpp> // for ASocket
|
||||||
#include <webserv/socket/ClientSocket.hpp> // for ClientSocket
|
#include <webserv/socket/ClientSocket.hpp> // for ClientSocket
|
||||||
#include <webserv/socket/ServerSocket.hpp> // for ServerSocket
|
#include <webserv/socket/ServerSocket.hpp> // for ServerSocket
|
||||||
@ -27,7 +26,7 @@
|
|||||||
#include <sys/socket.h> // for SOMAXCONN
|
#include <sys/socket.h> // for SOMAXCONN
|
||||||
#include <unistd.h> // for close
|
#include <unistd.h> // for close
|
||||||
|
|
||||||
volatile sig_atomic_t Server::stop_ = 0;
|
volatile sig_atomic_t Server::signum_ = 0;
|
||||||
|
|
||||||
Server::Server(const ConfigManager &configManager) : epoll_fd_(epoll_create1(O_CLOEXEC)), configManager_(configManager)
|
Server::Server(const ConfigManager &configManager) : epoll_fd_(epoll_create1(O_CLOEXEC)), configManager_(configManager)
|
||||||
{
|
{
|
||||||
@ -308,9 +307,9 @@ void Server::run()
|
|||||||
{
|
{
|
||||||
Log::trace(LOCATION);
|
Log::trace(LOCATION);
|
||||||
Log::info("Listening...");
|
Log::info("Listening...");
|
||||||
const int MAX_EVENTS = 10;
|
const int MAX_EVENTS = 1024;
|
||||||
struct epoll_event events[MAX_EVENTS]; // NOLINT
|
struct epoll_event events[MAX_EVENTS]; // NOLINT
|
||||||
while (stop_ == 0)
|
while (signum_ == 0)
|
||||||
{
|
{
|
||||||
std::string status = "Active connections: " + std::to_string(clients_.size());
|
std::string status = "Active connections: " + std::to_string(clients_.size());
|
||||||
Log::status(status);
|
Log::status(status);
|
||||||
@ -323,9 +322,8 @@ void Server::run()
|
|||||||
|
|
||||||
void Server::signalHandler(int signum)
|
void Server::signalHandler(int signum)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (signum == SIGINT)
|
if (signum == SIGINT)
|
||||||
{
|
{
|
||||||
stop_ = signum;
|
signum_ = signum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -46,7 +46,7 @@ class Server
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int epoll_fd_;
|
int epoll_fd_;
|
||||||
static volatile sig_atomic_t stop_;
|
static volatile sig_atomic_t signum_;
|
||||||
const ConfigManager &configManager_;
|
const ConfigManager &configManager_;
|
||||||
std::vector<std::unique_ptr<ServerSocket>> listeners_;
|
std::vector<std::unique_ptr<ServerSocket>> listeners_;
|
||||||
std::set<int> listener_fds_;
|
std::set<int> listener_fds_;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user