From b7d316d291f56647894fab3b3039cf48b1712843 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Wed, 26 Jan 2022 22:35:50 +0100 Subject: [PATCH] RequestServer: Make Request::url() virtual Let the Request subclass decide how they store the URL instead of storing it in a Request member. --- Userland/Services/RequestServer/GeminiRequest.h | 2 ++ Userland/Services/RequestServer/HttpRequest.h | 2 ++ Userland/Services/RequestServer/HttpsRequest.h | 2 ++ Userland/Services/RequestServer/Request.h | 3 +-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Userland/Services/RequestServer/GeminiRequest.h b/Userland/Services/RequestServer/GeminiRequest.h index c481da653d..0d9ffe4801 100644 --- a/Userland/Services/RequestServer/GeminiRequest.h +++ b/Userland/Services/RequestServer/GeminiRequest.h @@ -20,6 +20,8 @@ public: Gemini::GeminiJob const& job() const { return *m_job; } + virtual URL url() const override { return m_job->url(); } + private: explicit GeminiRequest(ClientConnection&, NonnullRefPtr, NonnullOwnPtr&&); diff --git a/Userland/Services/RequestServer/HttpRequest.h b/Userland/Services/RequestServer/HttpRequest.h index d2968061c1..3ef9bb206b 100644 --- a/Userland/Services/RequestServer/HttpRequest.h +++ b/Userland/Services/RequestServer/HttpRequest.h @@ -22,6 +22,8 @@ public: HTTP::HttpJob& job() { return m_job; } HTTP::HttpJob const& job() const { return m_job; } + virtual URL url() const override { return m_job->url(); } + private: explicit HttpRequest(ClientConnection&, NonnullRefPtr, NonnullOwnPtr&&); diff --git a/Userland/Services/RequestServer/HttpsRequest.h b/Userland/Services/RequestServer/HttpsRequest.h index 2f26b0d6fe..51187368dd 100644 --- a/Userland/Services/RequestServer/HttpsRequest.h +++ b/Userland/Services/RequestServer/HttpsRequest.h @@ -21,6 +21,8 @@ public: HTTP::HttpsJob& job() { return m_job; } HTTP::HttpsJob const& job() const { return m_job; } + virtual URL url() const override { return m_job->url(); } + private: explicit HttpsRequest(ClientConnection&, NonnullRefPtr, NonnullOwnPtr&&); diff --git a/Userland/Services/RequestServer/Request.h b/Userland/Services/RequestServer/Request.h index 324f027c93..9e83e047ed 100644 --- a/Userland/Services/RequestServer/Request.h +++ b/Userland/Services/RequestServer/Request.h @@ -21,7 +21,7 @@ public: virtual ~Request(); i32 id() const { return m_id; } - URL url() const { return m_url; } + virtual URL url() const = 0; Optional status_code() const { return m_status_code; } Optional total_size() const { return m_total_size; } @@ -50,7 +50,6 @@ private: ClientConnection& m_client; i32 m_id { 0 }; int m_request_fd { -1 }; // Passed to client. - URL m_url; Optional m_status_code; Optional m_total_size {}; size_t m_downloaded_size { 0 };