ladybird/Userland/Services/RequestServer
Ali Mohammad Pur cd4ebc45a0 RequestServer: Avoid multiple connections to incompatible servers
This really only implements a heuristic, assuming that HTTP/1.0 servers
cannot handle having multiple active connections; this assumption has
lots of false positives, but ultimately HTTP/1.0 is an out-of-date HTTP
version and people using it should just switch to a newer standard
anyway.

Specifically, python's "SimpleHTTPRequestHandler" utilises a
single-threaded HTTP/1.0 server, which means no keepalive and more
importantly, hangs and races with more than a single connection present.
This commit makes it so we serialise all requests to servers that are
known to serve only a single request per connection (aka HTTP/1.0 with
our setup, as we unconditionally request keepalive)
2024-01-10 09:39:51 +01:00
..
CMakeLists.txt Everywhere: Mark dependencies of most targets as PRIVATE 2022-11-01 14:49:09 +00:00
ConnectionCache.cpp RequestServer: Avoid multiple connections to incompatible servers 2024-01-10 09:39:51 +01:00
ConnectionCache.h RequestServer: Avoid multiple connections to incompatible servers 2024-01-10 09:39:51 +01:00
ConnectionFromClient.cpp RequestServer: Make pre-connection job refcounted 2024-01-05 04:03:32 +03:30
ConnectionFromClient.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Forward.h Userland: Rename IPC ClientConnection => ConnectionFromClient 2022-02-25 22:35:12 +01:00
GeminiProtocol.cpp RequestServer: Make pre-connection job refcounted 2024-01-05 04:03:32 +03:30
GeminiProtocol.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
GeminiRequest.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
GeminiRequest.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpCommon.h RequestServer: Make pre-connection job refcounted 2024-01-05 04:03:32 +03:30
HttpProtocol.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpProtocol.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpRequest.cpp LibCore: Move Stream-based file into the Core namespace 2023-02-13 00:50:07 +00:00
HttpRequest.h LibCore: Move Stream-based file into the Core namespace 2023-02-13 00:50:07 +00:00
HttpsProtocol.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpsProtocol.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpsRequest.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
HttpsRequest.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
main.cpp RequestServer: Only attach SIGINFO signal handler if SIGINFO is defined 2022-07-06 14:24:23 +02:00
Protocol.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Protocol.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Request.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Request.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
RequestClient.ipc Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
RequestServer.ipc Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30