mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 18:02:05 -05: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);
|
||||
|
||||
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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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"));
|
||||
|
|
Loading…
Add table
Reference in a new issue