/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* delete.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: bcausseq +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 #include void method_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"); }