Something went wrong. Try again.
An HTTP server written in C++98 projects.intra.42.fr/projects/webserv
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/* ************************************************************************** *//* *//* ::: :::::::: *//* delete.cpp :+: :+: :+: *//* +:+ +:+ +:+ *//* By: bcausseq <bcausseq@42angouleme.fr> +#+ +:+ +#+ *//* +#+#+#+#+#+ +#+ *//* Created: 2026/09/27 22:59:15 by bcausseq #+# #+# *//* Updated: 2026/09/27 23:00:27 by bcausseq ### ########.fr *//* *//* ************************************************************************** */
#include "utils.hpp"#include "server/Client.hpp"
#include <cerrno>#include <cstdio>
voidmethod_delete(Header& h, Client& c){ errno = 0;
std::string to_open = get_abs_path(c, h.get_path(), h.get_method());
if (to_open.empty()) { send_error_status(h, c, 405); return ; }
if (std::remove(to_open.c_str()) != 0) { if (errno == EPERM || errno == EACCES || errno == EISDIR) send_error_status(h, c, 403); else if (errno == ENOENT) send_error_status(h, c, 404); else if (errno == ENOTEMPTY) send_error_status(h, c, 409); else send_error_status(h, c, 500); return ; } else c.set_append_out_buffer(h.get_version() + " 204 No Content\r\n\r\n");}