mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:17:35 +00:00
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:
parent
4abafbbe3c
commit
bb91857885
4 changed files with 15 additions and 14 deletions
|
@ -125,7 +125,7 @@ ErrorOr<bool> Client::handle_request(ReadonlyBytes raw_request)
|
||||||
dbgln_if(WEBSERVER_DEBUG, "Canonical requested path: '{}'", requested_path);
|
dbgln_if(WEBSERVER_DEBUG, "Canonical requested path: '{}'", requested_path);
|
||||||
|
|
||||||
StringBuilder path_builder;
|
StringBuilder path_builder;
|
||||||
path_builder.append(Configuration::the().root_path());
|
path_builder.append(Configuration::the().document_root_path());
|
||||||
path_builder.append(requested_path);
|
path_builder.append(requested_path);
|
||||||
auto real_path = path_builder.to_deprecated_string();
|
auto real_path = path_builder.to_deprecated_string();
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ namespace WebServer {
|
||||||
|
|
||||||
static Configuration* s_configuration = nullptr;
|
static Configuration* s_configuration = nullptr;
|
||||||
|
|
||||||
Configuration::Configuration(DeprecatedString root_path)
|
Configuration::Configuration(DeprecatedString document_root_path)
|
||||||
: m_root_path(move(root_path))
|
: m_document_root_path(move(document_root_path))
|
||||||
{
|
{
|
||||||
VERIFY(!s_configuration);
|
VERIFY(!s_configuration);
|
||||||
s_configuration = this;
|
s_configuration = this;
|
||||||
|
|
|
@ -14,18 +14,18 @@ namespace WebServer {
|
||||||
|
|
||||||
class Configuration {
|
class Configuration {
|
||||||
public:
|
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; }
|
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); }
|
void set_credentials(Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> credentials) { m_credentials = move(credentials); }
|
||||||
|
|
||||||
static Configuration const& the();
|
static Configuration const& the();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DeprecatedString m_root_path;
|
DeprecatedString m_document_root_path;
|
||||||
Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> m_credentials;
|
Optional<HTTP::HttpRequest::BasicAuthenticationCredentials> m_credentials;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -22,19 +22,20 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
{
|
{
|
||||||
DeprecatedString default_listen_address = "0.0.0.0";
|
DeprecatedString default_listen_address = "0.0.0.0";
|
||||||
u16 default_port = 8000;
|
u16 default_port = 8000;
|
||||||
DeprecatedString root_path = "/www";
|
DeprecatedString default_document_root_path = "/www";
|
||||||
|
|
||||||
DeprecatedString listen_address = default_listen_address;
|
DeprecatedString listen_address = default_listen_address;
|
||||||
int port = default_port;
|
int port = default_port;
|
||||||
DeprecatedString username;
|
DeprecatedString username;
|
||||||
DeprecatedString password;
|
DeprecatedString password;
|
||||||
|
DeprecatedString document_root_path = default_document_root_path;
|
||||||
|
|
||||||
Core::ArgsParser args_parser;
|
Core::ArgsParser args_parser;
|
||||||
args_parser.add_option(listen_address, "IP address to listen on", "listen-address", 'l', "listen_address");
|
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(port, "Port to listen on", "port", 'p', "port");
|
||||||
args_parser.add_option(username, "HTTP basic authentication username", "user", 'U', "username");
|
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_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);
|
args_parser.parse(arguments);
|
||||||
|
|
||||||
auto ipv4_address = IPv4Address::from_string(listen_address);
|
auto ipv4_address = IPv4Address::from_string(listen_address);
|
||||||
|
@ -53,16 +54,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
||||||
return 1;
|
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)) {
|
if (!Core::File::exists(real_document_root_path)) {
|
||||||
warnln("Root path does not exist: '{}'", root_path);
|
warnln("Root path does not exist: '{}'", document_root_path);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRY(Core::System::pledge("stdio accept rpath inet unix"));
|
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())
|
if (!username.is_empty() && !password.is_empty())
|
||||||
configuration.set_credentials(HTTP::HttpRequest::BasicAuthenticationCredentials { username, password });
|
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("/etc/timezone", "r"));
|
||||||
TRY(Core::System::unveil("/res/icons", "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::unveil(nullptr, nullptr));
|
||||||
|
|
||||||
TRY(Core::System::pledge("stdio accept rpath"));
|
TRY(Core::System::pledge("stdio accept rpath"));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue