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.
This commit is contained in:
DerpyCrabs 2022-02-11 21:53:34 +03:00 committed by Ali Mohammad Pur
commit e379147f64
Notes: sideshowbarker 2024-07-17 18:59:44 +09:00

View file

@ -243,8 +243,8 @@ void Job::on_socket_connected()
return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::TransmissionFailed); }); return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::TransmissionFailed); });
} }
auto parts = line.split_view(' '); auto parts = line.split_view(' ');
if (parts.size() < 3) { if (parts.size() < 2) {
dbgln("Job: Expected 3-part HTTP status, got '{}'", line); dbgln("Job: Expected 2-part or 3-part HTTP status line, got '{}'", line);
return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::ProtocolFailed); }); return deferred_invoke([this] { did_fail(Core::NetworkJob::Error::ProtocolFailed); });
} }
auto code = parts[1].to_uint(); auto code = parts[1].to_uint();