diff options
author | Ali Mohammad Pur <ali.mpfard@gmail.com> | 2022-02-02 19:21:55 +0330 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-02-06 13:10:10 +0100 |
commit | aafc451016b342886f7f1d0d51794f064f313e04 (patch) | |
tree | db1d8931ea335c87b508149e0f46c916bc6dbb3c /Userland/Libraries/LibCore | |
parent | 7a95c451a3bc4eb379e12c8243b878f73a3dd03d (diff) | |
download | serenity-aafc451016b342886f7f1d0d51794f064f313e04.zip |
Userland: Convert TLS::TLSv12 to a Core::Stream::Socket
This commit converts TLS::TLSv12 to a Core::Stream object, and in the
process allows TLS to now wrap other Core::Stream::Socket objects.
As a large part of LibHTTP and LibGemini depend on LibTLS's interface,
this also converts those to support Core::Stream, which leads to a
simplification of LibHTTP (as there's no need to care about the
underlying socket type anymore).
Note that RequestServer now controls the TLS socket options, which is a
better place anyway, as RS is the first receiver of the user-requested
options (though this is currently not particularly useful).
Diffstat (limited to 'Userland/Libraries/LibCore')
-rw-r--r-- | Userland/Libraries/LibCore/NetworkJob.cpp | 4 | ||||
-rw-r--r-- | Userland/Libraries/LibCore/NetworkJob.h | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/Userland/Libraries/LibCore/NetworkJob.cpp b/Userland/Libraries/LibCore/NetworkJob.cpp index 4dcc927ca0..03efac0069 100644 --- a/Userland/Libraries/LibCore/NetworkJob.cpp +++ b/Userland/Libraries/LibCore/NetworkJob.cpp @@ -10,7 +10,7 @@ namespace Core { -NetworkJob::NetworkJob(OutputStream& output_stream) +NetworkJob::NetworkJob(Core::Stream::Stream& output_stream) : m_output_stream(output_stream) { } @@ -19,7 +19,7 @@ NetworkJob::~NetworkJob() { } -void NetworkJob::start(NonnullRefPtr<Core::Socket>) +void NetworkJob::start(Core::Stream::Socket&) { } diff --git a/Userland/Libraries/LibCore/NetworkJob.h b/Userland/Libraries/LibCore/NetworkJob.h index e2eda0b407..e17f531796 100644 --- a/Userland/Libraries/LibCore/NetworkJob.h +++ b/Userland/Libraries/LibCore/NetworkJob.h @@ -8,7 +8,9 @@ #include <AK/Function.h> #include <AK/Stream.h> +#include <LibCore/Forward.h> #include <LibCore/Object.h> +#include <LibCore/Stream.h> namespace Core { @@ -39,8 +41,9 @@ public: DetachFromSocket, CloseSocket, }; - virtual void start(NonnullRefPtr<Core::Socket>) = 0; + virtual void start(Core::Stream::Socket&) = 0; virtual void shutdown(ShutdownMode) = 0; + virtual void fail(Error error) { did_fail(error); } void cancel() { @@ -49,16 +52,16 @@ public: } protected: - NetworkJob(OutputStream&); + NetworkJob(Core::Stream::Stream&); void did_finish(NonnullRefPtr<NetworkResponse>&&); void did_fail(Error); void did_progress(Optional<u32> total_size, u32 downloaded); - size_t do_write(ReadonlyBytes bytes) { return m_output_stream.write(bytes); } + ErrorOr<size_t> do_write(ReadonlyBytes bytes) { return m_output_stream.write(bytes); } private: RefPtr<NetworkResponse> m_response; - OutputStream& m_output_stream; + Core::Stream::Stream& m_output_stream; Error m_error { Error::None }; }; |