summaryrefslogtreecommitdiff
path: root/Libraries/LibProtocol/Client.h
AgeCommit message (Collapse)Author
2020-09-28ProtocolServer+LibWeb: Support more detailed HTTP requestsAndreas Kling
This patch adds the ability for ProtocolServer clients to specify which HTTP method to use, and also to include an optional HTTP request body.
2020-08-02ProtocolServer+LibTLS: Pipe certificate requests from LibTLS to clientsAnotherTest
This makes gemini.circumlunar.space (and some more gemini pages) work again :^)
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-19LibProtocol: Make Protocol::Client constructor privateAndreas Kling
Core::Object derived objects should always have private constructors and use construct() for construction. This prevents accidentally keeping them in non-reference-counting containers.
2020-02-15LibCore: Reduce header dependencies of EventLoopAndreas Kling
2020-02-06IPCCompiler: Put message classes in the Messages namespaceAndreas Kling
2020-02-06LibIPC: Remove leading I from filenamesAndreas Kling
2020-02-05LibIPC: Put all classes in the IPC namespace and remove the leading IAndreas Kling
2020-02-05LibProtocol: Rename namespace LibProtocol => ProtocolAndreas Kling
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2019-12-02LibIPC: Rename base classes to IClientConnection and IServerConnectionAndreas Kling
This matches what we're already calling the server-side subclasses better, though we'll probably want to find some better names for the client-side classes eventually.
2019-12-02LibIPC: Move IPC client/server connection templates to LibIPCAndreas Kling
Move over the CoreIPC::Server and CoreIPC::Client namespace stuff into LibIPC where it will soon becomes LibIPC-style things.
2019-11-24LibProtocol: Add a Download object so users don't have to manage ID'sAndreas Kling
LibProtocol::Client::start_download() now gives you a Download object with convenient hooks (on_finish & on_progress). Also, the IPC handshake is snuck into the Client constructor, so you don't need to perform it after instantiating a Client. This makes using LibProtocol much more pleasant. :^)
2019-11-23ProtocolServer: Send the download payload to clients as a shared bufferAndreas Kling
The DownloadFinished message from the server now includes a buffer ID that can be mapped into the client program. To avoid prematurely destroying the buffer, the server will hang on to it until the client lets it know that they're all good. That's what the ProtocolServer::DisownSharedBuffer message is about. In the future it would be nice if the kernel had a mechanism to allow passing ownership of a shared buffer along with an IPC message somehow.
2019-11-23ProtocolServer+LibProtocol: Introduce a server for handling downloadsAndreas Kling
This patch adds ProtocolServer, a server that handles network requests on behalf of its clients. The first protocol implemented is HTTP. The idea here is to use a plug-in architecture where any number of protocols can be added and implemented without having to mess around with each client program that wants to use the protocol. A simple client API is provided through LibProtocol::Client. :^)