mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:27:45 +00:00
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).
This commit is contained in:
parent
7a95c451a3
commit
aafc451016
47 changed files with 841 additions and 1157 deletions
|
@ -62,6 +62,9 @@ public:
|
|||
|
||||
private:
|
||||
explicit Request(RequestClient&, i32 request_id);
|
||||
template<typename T>
|
||||
void stream_into_impl(T&);
|
||||
|
||||
WeakPtr<RequestClient> m_client;
|
||||
int m_request_id { -1 };
|
||||
RefPtr<Core::Notifier> m_write_notifier;
|
||||
|
@ -69,28 +72,24 @@ private:
|
|||
bool m_should_buffer_all_input { false };
|
||||
|
||||
struct InternalBufferedData {
|
||||
InternalBufferedData(int fd)
|
||||
: read_stream(fd)
|
||||
{
|
||||
}
|
||||
|
||||
InputFileStream read_stream;
|
||||
DuplexMemoryStream payload_stream;
|
||||
HashMap<String, String, CaseInsensitiveStringTraits> response_headers;
|
||||
Optional<u32> response_code;
|
||||
};
|
||||
|
||||
struct InternalStreamData {
|
||||
InternalStreamData(int fd)
|
||||
: read_stream(fd)
|
||||
InternalStreamData(NonnullOwnPtr<Core::Stream::Stream> stream)
|
||||
: read_stream(move(stream))
|
||||
{
|
||||
}
|
||||
|
||||
InputFileStream read_stream;
|
||||
NonnullOwnPtr<Core::Stream::Stream> read_stream;
|
||||
RefPtr<Core::Notifier> read_notifier;
|
||||
bool success;
|
||||
u32 total_size { 0 };
|
||||
bool request_done { false };
|
||||
Function<void()> on_finish {};
|
||||
bool user_finish_called { false };
|
||||
};
|
||||
|
||||
OwnPtr<InternalBufferedData> m_internal_buffered_data;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue