#include "http_static.h" #include #include HTTP::Static::Static(fs::path directory, std::string index) : directory_(directory), index_(index) { } void HTTP::Static::operator()(Connection::p connection) { fs::path path = directory_; if(connection->path.size()) { for(Connection::PathList::iterator it = connection->path.begin(); it != connection->path.end(); it++) { path /= *it; } } else { path /= index_; } if(fs::is_regular_file(path)) { connection->send_file(path); } else if(fs::exists(path)) { connection->send_error(403); } else { connection->send_error(404); } }