summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCore
diff options
context:
space:
mode:
authorAli Mohammad Pur <ali.mpfard@gmail.com>2022-02-02 19:21:55 +0330
committerAndreas Kling <kling@serenityos.org>2022-02-06 13:10:10 +0100
commitaafc451016b342886f7f1d0d51794f064f313e04 (patch)
treedb1d8931ea335c87b508149e0f46c916bc6dbb3c /Userland/Libraries/LibCore
parent7a95c451a3bc4eb379e12c8243b878f73a3dd03d (diff)
downloadserenity-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.cpp4
-rw-r--r--Userland/Libraries/LibCore/NetworkJob.h11
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 };
};