summaryrefslogtreecommitdiff
path: root/Services/ProtocolServer
AgeCommit message (Collapse)Author
2020-08-02ProtocolServer+LibTLS: Pipe certificate requests from LibTLS to clientsAnotherTest
This makes gemini.circumlunar.space (and some more gemini pages) work again :^)
2020-07-06ProtocolServer: Turn this into a multi-instance serviceAndreas Kling
Everyone who connects to ProtocolServer now gets his own instance. This means that different users can no longer talk to the same exact ProtocolServer process, enhanching security and stability.
2020-07-06LibIPC+Services: Make ClientConnection take socket as NonnullRefPtrAndreas Kling
This avoids getting into the awkward situation where the socket is still part-owned by main() in multi-instance service. Also it just reads nicer.
2020-06-13ProtocolServer+LibProtocol: Propagate HTTP status codes to clientsAndreas Kling
Clients now receive HTTP status codes like 200, 404, etc. Note that a 404 with content is still considered a "successful" download from ProtocolServer's perspective. It's up to the client to interpret the status code. I'm not sure if this is the best API, but it'll work for now.
2020-06-07LibIPC+Services: Support URL as a native IPC typeAndreas Kling
2020-05-27ProtocolServer: Forget downloads after they are stoppedAndreas Kling
Stopping means the client no longer cares about the download, so we should just forget about it in the server.
2020-05-21ProtocolServer: Support request headersAndreas Kling
You can now pass a dictionary of request headers when starting a new download in ProtocolServer. The HTTP and HTTPS protocol will include the headers in their requests.
2020-05-17LibGemini: Implement rendering text/gemini documents to HTMLAnotherTest
This also sets Content-Type to whatever 'meta' contains on success, to allow the browser to pick up what the document contains.
2020-05-17ProtocolServer: Put everything in the ProtocolServer namespaceAndreas Kling
2020-05-17ProtocolServer: Attach downloads and their lifecycles to clientsConrad Pankoff
Previously a download lived independently of the client connection it came from. This was the source of several undesirable behaviours, including the potential for clients to influence downloads they didn't start, and downloads living longer than their associated client connections. Now we attach downloads to client connections, which means they're cleaned up automatically when the client goes away, and there's significantly less risk of clients interfering with each other.
2020-05-17ProtocolServer: Integrate LibGemini for simple requestsConrad Pankoff
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-12LibHTTP+ProtocolServer: Use CaseInsensitiveStringTraits for headersAndreas Kling
These are supposed to be interpreted caselessly so let's just use the case insensitive traits throughout. This means we'll understand things like "Content-Length" even when they send "content-length" etc.
2020-05-08Services: Renamed from ServersAndreas Kling
It didn't feel right to have a "DHCPClient" in a "Servers" directory. Rename this to Services to better reflect the type of programs we'll be putting in there.