From e379147f642e5c0229be7591efcc4df35caf067a Mon Sep 17 00:00:00 2001 From: DerpyCrabs Date: Fri, 11 Feb 2022 21:53:34 +0300 Subject: [PATCH] LibHTTP: Make reason phrase of HTTP response's status line optional According to rfc2616 section 6.1 the text of reason phrase is not defined and can be replaced by server. Some servers (for example http://linux.org.ru) leave it empty. This change fixes parsing of HTTP responses with empty reason phrase. --- Userland/Libraries/LibHTTP/Job.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibHTTP/Job.cpp b/Userland/Libraries/LibHTTP/Job.cpp index 66ded51f56..bc0104ea34 100644 --- a/Userland/Libraries/LibHTTP/Job.cpp +++ b/Userland/Libraries/LibHTTP/Job.cpp @@ -243,8 +243,8 @@ void Job::on_socket_connected() return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::TransmissionFailed); }); } auto parts = line.split_view(' '); - if (parts.size() < 3) { - dbgln("Job: Expected 3-part HTTP status, got '{}'", line); + if (parts.size() < 2) { + dbgln("Job: Expected 2-part or 3-part HTTP status line, got '{}'", line); return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::ProtocolFailed); }); } auto code = parts[1].to_uint();