Newer
Older
minerva / Userland / Services / RequestServer / RequestServer.ipc
@minerva minerva on 13 Jul 1 KB Initial commit
#include <LibHTTP/HeaderMap.h>
#include <LibURL/URL.h>
#include <RequestServer/ConnectionCache.h>

endpoint RequestServer
{
    connect_new_client() => (IPC::File client_socket)

    // Test if a specific protocol is supported, e.g "http"
    is_supported_protocol(ByteString protocol) => (bool supported)

    start_request(i32 request_id, ByteString method, URL::URL url, HTTP::HeaderMap request_headers, ByteBuffer request_body, Core::ProxyData proxy_data) =|
    stop_request(i32 request_id) => (bool success)
    set_certificate(i32 request_id, ByteString certificate, ByteString key) => (bool success)

    ensure_connection(URL::URL url, ::RequestServer::CacheLevel cache_level) =|

    // Websocket Connection API
    websocket_connect(URL::URL url, ByteString origin, Vector<ByteString> protocols, Vector<ByteString> extensions, HTTP::HeaderMap additional_request_headers) => (i32 connection_id)
    websocket_ready_state(i32 connection_id) => (u32 ready_state)
    websocket_subprotocol_in_use(i32 connection_id) => (ByteString subprotocol_in_use)
    websocket_send(i32 connection_id, bool is_text, ByteBuffer data) =|
    websocket_close(i32 connection_id, u16 code, ByteString reason) =|
    websocket_set_certificate(i32 request_id, ByteString certificate, ByteString key) => (bool success)

    dump_connection_info() =|
}