WebServer: Rename {real_}root_path to {real_}document_root_path

The concept of a "document root" seems to be a de-facto industry
standard and doesn't make you wonder what kind of root path is meant.
This commit is contained in:
Thomas Keppler 2022-12-20 15:51:50 +01:00 committed by Andreas Kling
parent 4abafbbe3c
commit bb91857885
4 changed files with 15 additions and 14 deletions

View file

@ -125,7 +125,7 @@ ErrorOr<bool> Client::handle_request(ReadonlyBytes raw_request)
dbgln_if(WEBSERVER_DEBUG, "Canonical requested path: '{}'", requested_path);
StringBuilder path_builder;
path_builder.append(Configuration::the().root_path());
path_builder.append(Configuration::the().document_root_path());
path_builder.append(requested_path);
auto real_path = path_builder.to_deprecated_string();

View file

@ -10,8 +10,8 @@ namespace WebServer {
static Configuration* s_configuration = nullptr;
Configuration::Configuration(DeprecatedString root_path)
: m_root_path(move(root_path))
Configuration::Configuration(DeprecatedString document_root_path)
: m_document_root_path(move(document_root_path))
{
VERIFY(!s_configuration);
s_configuration = this;

View file

@ -14,18 +14,18 @@ namespace WebServer {
class Configuration {
public:
Configuration(DeprecatedString root_path);
Configuration(DeprecatedString document_root_path);
DeprecatedString const& root_path() const { return m_root_path; }
DeprecatedString const& document_root_path() const { return m_document_root_path; }
Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> const& credentials() const { return m_credentials; }
void set_root_path(DeprecatedString root_path) { m_root_path = move(root_path); }
void set_document_root_path(DeprecatedString root_path) { m_document_root_path = move(root_path); }
void set_credentials(Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> credentials) { m_credentials = move(credentials); }
static Configuration const& the();
private:
DeprecatedString m_root_path;
DeprecatedString m_document_root_path;
Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> m_credentials;
};

View file

@ -22,19 +22,20 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
{
DeprecatedString default_listen_address = "0.0.0.0";
u16 default_port = 8000;
DeprecatedString root_path = "/www";
DeprecatedString default_document_root_path = "/www";
DeprecatedString listen_address = default_listen_address;
int port = default_port;
DeprecatedString username;
DeprecatedString password;
DeprecatedString document_root_path = default_document_root_path;
Core::ArgsParser args_parser;
args_parser.add_option(listen_address, "IP address to listen on", "listen-address", 'l', "listen_address");
args_parser.add_option(port, "Port to listen on", "port", 'p', "port");
args_parser.add_option(username, "HTTP basic authentication username", "user", 'U', "username");
args_parser.add_option(password, "HTTP basic authentication password", "pass", 'P', "password");
args_parser.add_positional_argument(root_path, "Path to serve the contents of", "path", Core::ArgsParser::Required::No);
args_parser.add_positional_argument(document_root_path, "Path to serve the contents of", "path", Core::ArgsParser::Required::No);
args_parser.parse(arguments);
auto ipv4_address = IPv4Address::from_string(listen_address);
@ -53,16 +54,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return 1;
}
auto real_root_path = Core::File::real_path_for(root_path);
auto real_document_root_path = Core::File::real_path_for(document_root_path);
if (!Core::File::exists(real_root_path)) {
warnln("Root path does not exist: '{}'", root_path);
if (!Core::File::exists(real_document_root_path)) {
warnln("Root path does not exist: '{}'", document_root_path);
return 1;
}
TRY(Core::System::pledge("stdio accept rpath inet unix"));
WebServer::Configuration configuration(real_root_path);
WebServer::Configuration configuration(real_document_root_path);
if (!username.is_empty() && !password.is_empty())
configuration.set_credentials(HTTP::HttpRequest::BasicAuthenticationCredentials { username, password });
@ -99,7 +100,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
TRY(Core::System::unveil("/etc/timezone", "r"));
TRY(Core::System::unveil("/res/icons", "r"));
TRY(Core::System::unveil(real_root_path, "r"sv));
TRY(Core::System::unveil(real_document_root_path, "r"sv));
TRY(Core::System::unveil(nullptr, nullptr));
TRY(Core::System::pledge("stdio accept rpath"));